如何在PHP中从带有preg_match_all的字符串返回JavaScript?
我想用preg_match_all从字符串中读取JavaScript的所有内容 结果现在也包含脚本标记。 我想排除这个标签 我的示例和示例代码。Regex是解析XML/HTML的错误工具。您应该改用DOM解析器。XPath表达式是一种专门用于解析DOM结构的语言如何在PHP中从带有preg_match_all的字符串返回JavaScript?,php,regex,preg-match-all,Php,Regex,Preg Match All,我想用preg_match_all从字符串中读取JavaScript的所有内容 结果现在也包含脚本标记。 我想排除这个标签 我的示例和示例代码。Regex是解析XML/HTML的错误工具。您应该改用DOM解析器。XPath表达式是一种专门用于解析DOM结构的语言 $html = <<<_EOS_ <script>alert("Hallo Welt 1");</script> <div>Hallo Welt</div> <sc
$html = <<<_EOS_
<script>alert("Hallo Welt 1");</script>
<div>Hallo Welt</div>
<script type ="text/javascript">alert("Hallo Welt 2");</script>
<div>Hallo Welt 2</div>
<script type ="text/javascript">
alert("Hallo Welt 2");
</script>
_EOS_;
$doc = new DOMDocument();
$doc->loadHTML("<!DOCTYPE html><html>$html</html>");
$xpath = new DOMXPath($doc);
$scripts = $xpath->query('//script/text()');
foreach ($scripts as $script)
var_dump($script->data);
最有可能的是经典正则表达式不是您的工具。请在内部添加一个真正的捕获组…并使用结果集[1]。感谢这一切实可行的解决方案…我认为这是最好的方法。。。
$html = <<<_EOS_
<script>alert("Hallo Welt 1");</script>
<div>Hallo Welt</div>
<script type ="text/javascript">alert("Hallo Welt 2");</script>
<div>Hallo Welt 2</div>
<script type ="text/javascript">
alert("Hallo Welt 2");
</script>
_EOS_;
$doc = new DOMDocument();
$doc->loadHTML("<!DOCTYPE html><html>$html</html>");
$xpath = new DOMXPath($doc);
$scripts = $xpath->query('//script/text()');
foreach ($scripts as $script)
var_dump($script->data);