gpt4 book ai didi

php - 在 php 中使用 xpath 创建 preg_match

转载 作者:行者123 更新时间:2023-12-03 16:01:47 25 4
gpt4 key购买 nike

我正在尝试在 php 中使用 XPATH 获取内容。

<div class='post-body entry-content' id='post-body-37'>
<div style="text-align: left;">
<div style="text-align: center;">
Hi
</div></div></div>

我正在使用下面的 php 代码来获取输出。

 $dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$xpath->registerPhpFunctions('preg_match');
$regex = 'post-(content|[a-z]+)';
$items = $xpath->query("div[ php:functionString('preg_match', '$regex', @class) > 0]");
dd($items);

返回结果如下

DOMNodeList {#580 
+length: 0
}

最佳答案

这是一个工作版本,其中包含您在评论中获得的不同建议:

libxml_use_internal_errors(true);

$dom = new DOMDocument;
$dom->loadHTML($html);

$xpath = new DOMXPath($dom);
// you need to register the namespace "php" to make it available in the query
$xpath->registerNamespace("php", "http://php.net/xpath");
$xpath->registerPhpFunctions('preg_match');

// add delimiters to your pattern
$regex = '~post-(content|[a-z]+)~';

// search your node anywhere in the DOM tree with "//"
$items = $xpath->query("//div[php:functionString('preg_match', '$regex', @class)>0]");

var_dump($items);

显然,这种模式是无用的,因为您可以使用可用的 XPATH 字符串函数(如 contains)获得相同的结果。

关于php - 在 php 中使用 xpath 创建 preg_match,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33409244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com