我需要算不上。 php文件中脚本标记之间的内联java脚本行。我该怎么做?请问grep linux命令是否足够,或者我可以使用一些工具来做到这一点?请帮忙。
答案 0 :(得分:3)
您可以使用正则表达式来提取文件中每个SCRIPT标记的内容,而不是计算内容中的\ n个出现次数。
此正则表达式应匹配所有脚本标记,包括开始和结束标记:
/<script[^>]*?>(.*)?</script>/sm
您应该删除没有任何代码的标记和行来计算JavaScript代码的真实行。
答案 1 :(得分:0)
请查看以下代码,它可以运行,但您可能需要根据您的要求进行更新
<?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,然后尝试
度过愉快的一天
答案 2 :(得分:0)
如果您需要从已处理的HTML页面执行此操作,请使用DOM
获取所有不带src
属性的脚本标记。然后,对于每个找到的节点,通过换行符拆分子TextNode或简单计算它们。完成。
如果你需要从实际的PHP源代码中获取它,请使用Tokenizer
查找T_STRINGS
and similar parser tokens并分析它们<script>
块,但请注意,可能无法找到它们全部,如果有代码如:
echo '<' . $scriptTag . '>' . $code . '</' . $scriptTag . '>';
因为在PHP处理它之前,它不能被分析为JavaScript字符串。