【发布时间】:2013-11-19 13:53:46
【问题描述】:
我目前正在分离 HTML 和 PHP 代码,这是我目前正在为我工作的代码。
code.php
<?php
$data['#text#'] = 'A';
$html = file_get_contents('test.html');
echo $html = str_replace(array_keys($data),array_values($data),$html);
?>
test.html
<html>
<head>
<title>TEST HTML</title>
</head>
<body>
<h1>#text#</h1>
</body>
</html>
输出:A
它搜索并将 #text# 值更改为 array_value A 它适用于我。
现在我正在编写代码来搜索 html 文件上的 "id" 标记。如果它在 ".html" 文件中搜索 "id",它会将 array_values 放在 >
的中间例如:<div id="test"> **aray_values here** </div>
test.php
<?php
$data['id="test"'] = 'A';
$html = file_get_contents('test.html');
foreach ($data as $search => $value)
{
if (strpos($html , $search))
{
echo 'FOUND';
echo $value;
}
}
?>
test.html
<html>
<head>
<title>TEST</title>
</head>
<body>
<div id="test" ></div>
</body>
</html>
我的问题是我不知道如何将 array_values 放在 .html 文件中每个 ></ 搜索的中间。
所需输出:<div id="test" >A</div>
【问题讨论】:
-
使用 PHP 模板引擎 (smarty.net) 或按原样设置 PHP DOMDocument (php.net/manual/en/class.domdocument.php) 可能更容易。
-
我不想使用任何第三方
-
如果总是这样,您可以将
id="test" ><替换为id="test" >VALUE<。但我根本不会将自己与 HTML 结构联系在一起。在实践中,您可能需要输出的不仅仅是元素内部的值。有时您可能需要根据上下文添加额外的元素或元素的属性。 -
好的,那么 DOMDocument 或(更随意的)str_replace() 或 preg_replace() 是选项。 DOMDocument->loadHTML("
"),getElementById,更新值,DOMDocument->saveHTML。非第三方,自 PHP 4.1 起有效 -
好主意,但我想弄清楚我刚开始是什么^_^
标签: php file-get-contents key-value array-key