从php中的字符串中删除转义序列

时间:2011-08-24 15:47:02

标签: php string escaping

我正在使用已转义字符序列的mysqldump文件。我需要知道字符串的长度作为其数据库值,但转储中包含转义字符,这会增加字符串的长度。

我使用了stripslashes(),它正确地取消了单引号和双引号,但它没有触及\r\n

我担心那里还有其他逃脱的字符序列,我不知道。是否有一个我可以使用的函数,它将给我字符串的真实长度,就像它在数据库中一样?如果我必须构建自己的函数,它应该处理哪些其他序列?

2 个答案:

答案 0 :(得分:13)

strip c slashes()函数就是这样:

stripcslashes('foo\r\n');

答案 1 :(得分:2)

您可以使用substr_count()计算字符串中的字符数。只需计算字符串中反斜杠的数量:

$string = "... mysqldump string here ...";
$backslashes = substr_count($string, '\\');

那会给你一个粗略的数字。为了100%准确,您必须计算有多少双反斜杠,以计算字面反斜杠,并根据需要调整计数。