如何使用< - with strip_tags?我试过前后转换符号没有运气

时间:2011-04-12 22:06:34

标签: php str-replace strip-tags

好的......我知道< - 不能使用每个说的允许标签从strip_tags中排除,但我试图使用一个解决方法。这种解决方法适用于无法开始使用HTML的字符集,例如<<或者<〜但是,当我使用下面的代码转换< - 或 - >处理strip_tags之前的数字,然后从数字返回到< - 和 - >后。但是,只要这些符号显示从那里开始的所有HTML都被删除,那或不处理。我明白我不能通过允许的标签单独留下这就是为什么我在strip_Tags之前转换它然后回来...但它几乎就像strip_Tags仍然删除它,即使它在strip_tags所在的行之后转换回来,因为它的删除< - 把一切都放在它的右边......任何想法或其他尝试方法?我也尝试将< - 作为<—进行定义,并尝试将其替换为其他符号,例如# - 但无论我有什么相同的结果。

我还应该提及< - 和 - >不是一起使用,它们用于指向文本中的东西。就像internt< - 在那里拼错了。

`<?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);`

1 个答案:

答案 0 :(得分:2)

<强>更新

$string = "<div>words words wrods <- words words</div>";
$string = str_replace('<-', '&lt;-', $string);
echo strip_tags($string);

输出(来源):

words words wrods &lt;- words words

输出(HTML):

words words wrods <- words words