PHP dom替换
我已经找了一段时间了,没有找到任何东西。我有一个包含html和php的页面PHP dom替换,php,html,dom,Php,Html,Dom,我已经找了一段时间了,没有找到任何东西。我有一个包含html和php的页面 <div>%%replace_me%%</div> <? replaceStr("replace_me", "foobar"); ?> %%替换\u me%% 我需要一个将上述%%字符串更改为foobar的函数,以使html如下所示: <div>foobar</div> foobar 文本将始终用百分号包围,但不总是用div括起来。页面上会有php以
<div>%%replace_me%%</div>
<? replaceStr("replace_me", "foobar"); ?>
%%替换\u me%%
我需要一个将上述%%字符串更改为foobar的函数,以使html如下所示:
<div>foobar</div>
foobar
文本将始终用百分号包围,但不总是用div括起来。页面上会有php以及%%vars,因此将页面存储在$var和str替换中对我不起作用。听起来你在寻找模板引擎。这是一个流行的PHP。也有 要理解,在服务器端代码(PHP)的上下文中,没有所谓的“DOM”,甚至没有真正意义上的“HTML”。.php文件中有HTML,但您不能像那样与它进行真正的交互。它只是文件中的文本,在PHP引擎解释PHP代码后,等待向下提供给客户端
一旦内容交付给客户端,即在服务器端代码运行之后,DOM解析和所有这些都会在浏览器中发生。也有,但它们是用于在PHP代码中使用HTML并对其进行操作的,而不是用于与同一.PHP文件中PHP代码之外的HTML标记进行交互。您必须添加
ob_start()
在页面开头附近,以确保输出已缓冲,并且在您有机会对其进行分析之前不会发送给用户。然后,我将尝试收集对replaceStr()
的所有调用,直到所有可能的%%
标记都已输出,并且您可以一次性替换它们。那么,这应该可以做到:
function replace_str(&$body, $tag, $replace) {
str_replace('%%'.$tag.'%%', $replace, $body);
}
$body = ob_get_clean();
replaceStr($body, 'replace_me', 'foobar');
// other calls to replaceStr...
echo $body
ob_end_flush();
我不知道你在问什么。你不能用
而不是%%replace\u me%%
?@mtahmed“我需要一个函数,可以将上面的%%string更改为foobar,使html看起来像这样”@even no;我需要这个函数,因为它会根据您所在的页面而变化。您不可以只回显一个变量,并在页面顶部设置该变量的值吗?或者在包含文件中使用?还是像埃文说的那样只是附和必要的东西?我不明白为什么你需要一个函数来完成这项工作,除非你试图加载并处理某种模板系统的现有HTML文件。没问题。很乐意帮忙。虽然如果你在寻找更强大的东西,我肯定还是会看大卫的答案。