问题描述
|
好的...我知道<-不能使用允许的标签每条被排除在strip_tags之外,但是我正试图解决。变通方法可以在字符集上正常工作,这些字符集最初不是有效的HTML,例如<<或<〜,但是当我使用下面的代码在处理strip_tags之前将<-或->转换为数字然后从数字返回到<-和->之后。但是,只要这些符号显示在那里的所有HTML都将被删除,即不进行处理。我知道我不能通过允许的标记单独留下它,这就是为什么我在strip_Tags之前转换它,然后在之后转换回来...但是,即使它在strip_tags所在的行之后转换回去,它几乎就像strip_Tags仍将其删除一样,因为它已删除<-并将所有内容都放在它的右边。...有什么想法或其他尝试方法吗?我也尝试将<-定义为
<—
,并尝试将其替换为其他符号,例如#-,但是无论我得到的结果如何。
我还应该提到<-和-> arent一起使用,它们用于指向文本中的内容。就像实习生<-在这里拼写错误。
`<?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,一切都会很好,结果发现如果我自己剥离实际的HTML注释(例如<!-- Header //-->
),转换就可以了,所以我将寻找正则表达式匹配项删除转换前的HTML注释和删除标记。
更新资料
我使用下面的代码首先删除了HTML注释,这成功了。谢谢你的帮助。
`$data = preg_replace(\'/<!--(.*)-->/\',\'\',$data);`
解决方法
更新:
$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