解析具有指定属性的<meta>标签并提取另一个属性的值

问题描述 投票:0回答:2

我正在为我的网站开发引擎。它被设置为使用元标记,然后 PHP 代码处理并创建页面,从而使创建页面变得简单。我知道很多人可能认为这是一种不好的处理方式,但它使用动态分页来加载页面。例如,它基本上会加载类似

load.php?url=home
的内容。然后,如果服务器上存在该页面,则 load.php 会构造该页面,如果不存在,我们将终止该页面并导致 404。

问题是,我现在正在使用

preg_replace()
来获取元标记中包含的值。这将返回页面的 PHP 代码。

我想做的就是获取结果,然后将结果设为变量。我尝试过

preg_filter()
,但似乎没有任何作用。

php attributes html-parsing preg-replace meta-tags
2个回答
1
投票

您可能需要

preg_match
并使用
$matches
数组。


0
投票

如果您正在处理有效/可解析的 HTML,请避免使用正则表达式模式并使用 DOM 感知方法。 DOMDocument 与 XPath 配对将可靠地提取所需的属性值。

代码:(演示

$html = <<<HTML
<meta name="rows" content="barry" session="fooey" />
HTML;
$zs = 'fooey';

$dom = new DOMDocument; 
$dom->loadHTML($html);
echo (new DOMXPath($dom))->evaluate('string(//meta[@session="' . $zs. '"]/@content)');
// barry
© www.soinside.com 2019 - 2024. All rights reserved.