preg_replace 仅返回捕获的内容

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

现在我正在为我的网站开发一个引擎。它被设置为使用元标记,然后 PHP 处理并创建页面,从而使创建页面变得简单。我知道很多人可能认为这是一种糟糕的处理方式。但它使用动态分页来加载页面,因此它本质上会加载诸如

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

问题是,我现在正在使用

preg_replace
来获取元标记包含的值。这将返回页面的 PHP 代码。我想做的就是得到结果,然后将结果作为变量。我尝试过
preg_filter
,但似乎没有任何作用。

php preg-replace
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.