开发者

How to Count number of lines of javascript in php files?

I need to count the no. of lines of inline java script between script tags in php files. How do I do it? Will grep开发者_开发百科 linux command suffice or I can get some tool to do it? Please help.


You might use a regular expression like to extract the content of each SCRIPT tag in your files and than count the \n occurrences within the content.

This regex should match all script tag including the opening and closing tag:

 /<script[^>]*?>(.*)?</script>/sm

You should than remove the tags and lines without any code to count the real lines of JavaScript code.


Please take a look on the following code,it works but you may need to updates as per your requirements

<?php
$file = file('thisfile.php');
for($i=0;$i<count($file);$i++)
{
    if(trim($file[$i]) == "<script language=\"javascript\">")
    {
        $start = $i.'<br>';
    }
    if(trim($file[$i]) == "</script>")
    {
        $end = $i.'<br>';
    }

}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="javascript">
var a = 10;
var b = 10;
var c = 10;
var d = 10;
var e = 10;
var e = 10;
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php echo ($end - $start)-1; ?>
</body>
</html>

save this php file as thisfile.php then try

Have a nice day


If you need to do this from a processed HTML page, use DOM to get all script tags without a src attribute. Then for each found node split the child TextNode by the linebreak or simple count them. Done.

If you need to grab this from actual PHP source code, use the Tokenizer to find T_STRINGS and similar parser tokens and analyze them for <script> blocks, but note that it might be impossible to find them all, if there is code like:

 echo '<' . $scriptTag . '>' . $code . '</' . $scriptTag . '>';

because that wont be analyzable as a JavaScript String before PHP processed it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜