PHP:不使用str_replace将转义字符转为纯文本的方法
保留转义字符为文本内容的实现方法
需求:从数据库获取的数据包含\n、\v、\e、\t等转义字符,需将这些转义字符作为纯文本保留,且不能使用str_replace、preg_replace方法,最终执行echo $abc;后输出Abc\n\tasd这类字面形式的转义字符。
方法一:利用json_encode处理
json_encode会自动将字符串中的反斜杠转义为双反斜杠,再通过截取去掉首尾的引号即可得到目标文本:
// 假设$dbData是从数据库取出的原始数据 $dbData = 'Abc\n\tasd'; $abc = substr(json_encode($dbData), 1, -1); echo $abc; // 输出:Abc\n\tasd
方法二:利用var_export处理
var_export会生成字符串的可解析PHP表示,其中转义字符会以字面形式保留,同样截取掉首尾引号即可:
$dbData = 'Abc\n\tasd'; $abc = substr(var_export($dbData, true), 1, -1); echo $abc; // 输出:Abc\n\tasd
这两种方法都无需使用替换类函数,直接通过内置函数的特性实现转义字符的文本保留。
内容的提问来源于stack exchange,提问作者Arun Kumar
相关产品推荐
相关产品推荐

