我有两个字符串是从文件中提取的行。我试图首先通过执行str_replace并用空格替换它们来剥离它们的标签(例如)。不幸的是,这似乎不起作用,因为当我在表格中回显结果时,我仍然看到标签。
有什么想法吗?
# Trim the title and description of their tags. Keep only text.
$title_new = $file_lines[$title_line];
str_replace("<title>"," ", $title_new);
str_replace("</title>"," ", $title_new);
$desc_new = $file_lines[$desc_line];
str_replace("<description>"," ", $desc_new);
str_replace("</description>"," ", $desc_new);
# Echo out the HTML form
echo "<form action=\"rewrite.php\" method=\"post\">";
echo "Title: <input type=\"text\" name=\"new_title\" size=\"84\" value=\"".$title_new."\">";
echo "</input>";
echo "<br>Article Body:<br>";
echo "<textarea rows=\"20\" cols=\"100\" wrap=\"hard\" name=\"new_desc\">".$desc_new."</textarea><br>";
echo "<input type=\"hidden\" name=\"title_line\" value=\"".$title_line."\">";
echo "<input type=\"hidden\" name=\"title_old\" value=\"".$file_lines[$title_line]."\">";
echo "<input type=\"hidden\" name=\"desc_line\" value=\"".$desc_line."\">";
echo "<input type=\"hidden\" name=\"desc_old\" value=\"".$file_lines[$desc_line]."\">";
echo "<input type=\"submit\" value=\"Modify\" name=\"new_submit\">";
答案 0 :(得分:4)
str_replace()返回修改后的字符串。所以你需要分配它:
$title_new = str_replace("<title>"," ", $title_new);
与$desc_new
相同。阅读文档了解更多详情。
答案 1 :(得分:2)
str_replace返回字符串,所以你应该这样做:
$title_new = str_replace("<title>"," ", $title_new);
$title_new = str_replace("</title>"," ", $title_new);
$desc_new = str_replace("<description>"," ", $desc_new);
$desc_new = str_replace("</description>"," ", $desc_new);
答案 2 :(得分:1)
使用PHP时剥离标记的最佳方法是HTMLPurifier
我不会尝试使用str_replace做类似的事情。很可能一个人犯了错误。
答案 3 :(得分:1)
$title_new = str_replace(array("<title>", "</title>")," ", $file_lines[$title_line]);
$desc_new = str_replace(array("<description>","</description>")," ", $file_lines[$desc_line]);
或使用
用strip_tags
答案 4 :(得分:1)
正如其他答案所提到的,您需要指定返回值$title_new = str_replace("<title>"," ", $title_new);
,但我强烈建议您将strip_tags()
用于其预期用途。
$buffer = strip_tags($buffer, '<title><description>')
此外,可能无需逐行解析文件。使用file_get_contents()
之类的东西一次读取整个文件会快很多倍,然后使用正则表达式或xml解析器。