我需要统计php文件中script标签之间的行内JavaScript代码行数。我该怎么做?grep linux命令足够吗,还是我需要使用一些工具来完成?请帮忙。
我需要统计php文件中script标签之间的行内JavaScript代码行数。我该怎么做?grep linux命令足够吗,还是我需要使用一些工具来完成?请帮忙。
您可以使用正则表达式来提取文件中每个SCRIPT标签的内容,然后计算内容中\n出现的次数。
以下正则表达式应该可以匹配所有的script标签,包括开头和结尾标签:
/<script[^>]*?>(.*)?</script>/sm
alert('</script>');
这个怎么办? - hsz<?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>
如果你需要从处理过的 HTML 页面中执行此操作,请使用 DOM
获取所有没有 src
属性的脚本标签。然后对于每个找到的节点,通过换行符拆分子 TextNode 或简单地计数它们。
如果你需要从实际的 PHP 源代码中抓取这个信息,使用 Tokenizer
查找 T_STRINGS
和类似的解析器标记 并分析它们的 <script>
块,但请注意,如果存在以下代码,则可能无法找到它们全部:
echo '<' . $scriptTag . '>' . $code . '</' . $scriptTag . '>';
因为在 PHP 处理之前,它不能被解析为 JavaScript 字符串。
<script type="text/javascript">alert('hello');</script>
和<script type="text/javascript">\nalert('hello');\n</script>
? - bcosca