我不确定术语,敬请谅解。
我正在尝试创建一个PHP模板引擎,它将查询一个字符串是否包含<ZONE header>
和</ZONE header>
之间的内容,并运行一个PHP函数来查看标题是否存在。如果标题存在,它将显示中间的内容,如果标题不存在,它将删除中间的内容。
这是一个示例:
$string = "
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<ZONE header><img src="images/header.jpg" /></ZONE header>
<p>Nam sollicitudin mattis nisi, eu convallis mi tincidunt vitae.</p>
";
该函数理想情况下应该移除
<ZONE header><img src="images/header.jpg" /></ZONE header>
,然后运行我创建的php函数header()
。该函数会检查数据库中是否存在“header”,如果存在,则会显示<ZONE header></ZONE header>
内的所有内容;如果不存在,则会从字符串中删除它。
如果“header”存在:
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<img src="images/header.jpg" />
<p>Nam sollicitudin mattis nisi, eu convallis mi tincidunt vitae.</p>
如果"header"不存在:
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Nam sollicitudin mattis nisi, eu convallis mi tincidunt vitae.</p>
以下是我正在处理但遇到困难的内容:
以下是我正在处理但遇到困难的内容:
preg_match_all("|\<ZONE_header>(.*)\<\/ZONE_header>|isU", $string, $zone, PREG_SET_ORDER);
if (isset($zone) && is_array($zone)) {
foreach ($zone as $key => $zoneArray) {
if ($key == 0) {
$html = $zoneArray[1];
if ($html != "") {
if (header() != "") {
$html = str_replace($zoneArray[0], NULL, $html);
}
}
}
}
}
echo $html;
有什么想法、思路、建议吗? 感谢您的所有帮助!
<img />
标签在src属性中使用双引号。此外,header()
是PHP函数,因此您可能需要重命名该函数。 - flowfree