好的......我知道&lt; - 不能使用每个说的允许标签从strip_tags中排除,但我试图使用一个解决方法。这种解决方法适用于无法开始使用HTML的字符集,例如&lt;&lt;或者&lt;〜但是,当我使用下面的代码转换&lt; - 或 - &gt;处理strip_tags之前的数字,然后从数字返回到&lt; - 和 - &gt;后。但是,只要这些符号显示从那里开始的所有HTML都被删除,那或不处理。我明白我不能通过允许的标签单独留下这就是为什么我在strip_Tags之前转换它然后回来...但它几乎就像strip_Tags仍然删除它,即使它在strip_tags所在的行之后转换回来,因为它的删除&lt; - 把一切都放在它的右边......任何想法或其他尝试方法?我也尝试将&lt; - 作为<—
进行定义,并尝试将其替换为其他符号,例如# - 但无论我有什么相同的结果。
我还应该提及&lt; - 和 - &gt;不是一起使用,它们用于指向文本中的东西。就像internt&lt; - 在那里拼错了。
`<?php
$data = file_get_contents("test.html");
$data = str_replace("<-", "999", $data);
$data = str_replace("->", "998", $data);
$data = strip_tags($data, '');
$data = str_replace("999", "<-", $data);
$data = str_replace("998", "->", $data);
echo $data;
?>`
我正在收集示例数据并意识到如果我删除了一大块示例HTML,一切正常,事实证明,如果我自己删除<!-- Header //-->
这样的实际HTML注释,转换就可以了,所以我要去查找正则表达式匹配以在转换和条带标记之前删除HTML注释。
更新
我使用下面的代码首先删除HTML注释,这会导致成功。谢谢你的帮助。
`$data = preg_replace('/<!--(.*)-->/', '', $data);`
答案 0 :(得分:2)
<强>更新强>
$string = "<div>words words wrods <- words words</div>";
$string = str_replace('<-', '<-', $string);
echo strip_tags($string);
输出(来源):
words words wrods <- words words
输出(HTML):
words words wrods <- words words