Как посчитать количество строк JavaScript в файлах PHP? - PullRequest
5 голосов
/ 04 августа 2010

Мне нужно сосчитать нет. строк встроенного сценария Java между тегами сценария в файлах php. Как мне это сделать? Подойдет ли команда grep linux или я смогу получить какой-нибудь инструмент для этого? Пожалуйста, помогите.

Ответы [ 3 ]

3 голосов
/ 04 августа 2010

Вы можете использовать регулярное выражение, например, для извлечения содержимого каждого тега SCRIPT в ваших файлах, а затем подсчитывать вхождения \ n в содержимом.

Это регулярное выражение должно соответствовать всем тегам сценария, включая открывание и закрываниеtag:

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

Вам следует удалить теги и строки без кода, чтобы считать реальные строки кода JavaScript.

0 голосов
/ 04 августа 2010

Если вам нужно сделать это с обработанной HTML-страницы, используйте DOM, чтобы получить все теги сценария без атрибута src.Затем для каждого найденного узла разделите дочерний TextNode на разрыв строки или просто подсчитайте их.Готово.

Если вам нужно извлечь это из фактического исходного кода PHP, используйте Tokenizer, чтобы найти T_STRINGS и аналогичные токены синтаксического анализатора и проанализировать их для<script> блокирует, но учтите, что найти их все невозможно, если есть такой код:

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

, потому что он не будет анализироваться как строка JavaScript до того, как PHP его обработает.

0 голосов
/ 04 августа 2010

Пожалуйста, посмотрите на следующий код, он работает, но вам может потребоваться обновление в соответствии с вашими требованиями

<?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>

сохраните этот файл php как thisfile.php, затем попробуйте

Хорошего дня

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...