【发布时间】:2023-03-22 02:22:01
【问题描述】:
所以现在我有这段代码,效果很好:
这需要 xpath 中的任何内容并打印。
<?php
$parent_title = get_the_title( $post->post_parent );
$html_string = file_get_contents('http://www.weburladresshere.com');
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($html_string);
libxml_clear_errors();
$xpath = new DOMXpath($dom);
$values = array();
$row = $xpath->query('myquery');
foreach($row as $value) {
print($value->nodeValue);
}
?>
我需要在代码中插入两件事(如果可能的话):
- 要检查内容是否超过 x 个字符,则不要打印。
- 要检查内容中是否包含http,则不要打印。
如果以上两个都是否定的 - 把它打印出来。
如果其中一个是肯定的 - 跳过,然后检查同一页面上的第二个查询:
$row = $xpath->query('secondquery');
如果这也包含上述之一,则检查第三个查询(来自同一页面),依此类推。 直到匹配为止。
任何帮助将不胜感激。
【问题讨论】:
-
对于上述 #1 - 内容为完整 HTML 内容或
print($value->nodeValue);内容大小? -
这是个好问题。我认为任何一个都可以,只要它更容易实现并且能够显示所需的结果。
-
虽然他们会有两个完全不同的答案。您为整个 HTML 中找到的所有字符设置的阈值将与单行的阈值大不相同。这就是我在那里问的原因
-
在一行中。所以我猜是 print($value->nodeValue);内容大小。