- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有谁知道如何防止 FILTER_SANITIZE_SPECIAL_CHARS 将换行符 (\n) 转换为 ( )。
我正在为我的网站开发一个简单的评论系统,我发现 php 过滤器将\n 转换为 所以当使用 nl2br() 时没有换行符。
请帮忙。
谢谢:)
最佳答案
filter_var
与 FILTER_SANITIZE_SPECIAL_CHARS
选项正在做它应该做的事情:
HTML-escape '"<>& and characters with ASCII value less than 32, optionally strip or encode other special characters.
换行符 ( \n
) 的 ASCII 值小于 32,因此将被转换为
.因此,您可以使用 html_entity_decode将它们转换回原来的字符:
$string = "line 1\nline 2";
$filtered = filter_var($string, FILTER_SANITIZE_SPECIAL_CHARS);
echo "$filtered\n";
echo(html_entity_decode($filtered));
输出:
line 1 line 2
line 1
line 2
但我想这违背了使用 FILTER_SANITIZE_SPECIAL_CHARS
的目的。首先。
如果只是换行导致问题,您可以在使用
之前用换行符替换 HTML 字符实体 ( nl2br()
) :
echo str_replace(' ', "\n", $filtered);
输出:
line 1
line 2
或者更好的是,跳过中间步骤,将 HTML 字符实体 (
) 替换为 <br />
:
echo str_replace(' ', '<br />', $filtered);
输出:
line 1<br />line 2
...但我不是 100% 确定您要做什么。
关于php - FILTER_SANITIZE_SPECIAL_CHARS 换行问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3150413/
有谁知道如何防止 FILTER_SANITIZE_SPECIAL_CHARS 将换行符 (\n) 转换为 ( )。 我正在为我的网站开发一个简单的评论系统,我发现 php 过滤器将\n 转换为 所以当
这是一个简单的问题,但我是新手所以请原谅我的简单问题。 是否有一种简单的方法可以逆转 FILTER_SANITIZE_SPECIAL_CHARS 过滤器的影响?如果不是,你将如何扭转它。请不要只说正则
我是一名优秀的程序员,十分优秀!