[英]Detect text between some tags
我正在尝试检测3个或4个标签之间的文本,但我不知道如何-使用PHP。 我知道我应该使用正则表达式,但是那对我来说太难了:X
如果您能向我解释如何做/给我我所需要的示例,那就太好了!
我正在尝试检测<script>
标记>之间的代码,这意味着如果得到<script type="text/javascript">
它也将进行检测。 如果存在<script src="...">
则它将不会检测到之间的文本(不应为之间的文本)。
与脚本^相同,如果有<style type="text/css">
它也会检测到之间的文本
而且我还想在artitube中检测样式为“在此处检测文本”之间的文本。
我之间要发送文本的最后一个标签是<?php ?>
。 (PHP也可以是大写,因此我不希望正则表达式区分大小写)。
谢谢帮手!!!
使用正则表达式,您可以编写如下内容:
<?php
$html = <<<EOF
<script type="text/javascript">
function xyz() { alert('some alert'); }
</script>
EOF;
preg_match('/<script.*>(.*)<\/script>/sU', $html, $matches);
var_dump($matches)
?>
正则表达式并非最适合解析HTML。 有充分的理由,请参阅问题。您能否提供一些示例,说明为什么使用正则表达式很难解析XML和HTML?
您将可以更轻松地将HTML加载到DOM XML类中,然后可以执行XPath查询以提取所需的标签。
例如,尝试这样的操作以获取所有没有src属性的<script>
标记...
$doc = new DOMDocument();
$doc->loadHTMLFile("myfile.html");
$xpath=new DOMXPath($doc);
//find script elements which don't have a src attribute
$scriptNodes=$xpath->query("script[not(@src)]");
foreach ($scriptNodes as $scriptNode) {
//do something here...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.