我正在使用已转义字符序列的mysqldump文件。我需要知道字符串的长度作为其数据库值,但转储中包含转义字符,这会增加字符串的长度。
我使用了stripslashes()
,它正确地取消了单引号和双引号,但它没有触及\r\n
。
我担心那里还有其他逃脱的字符序列,我不知道。是否有一个我可以使用的函数,它将给我字符串的真实长度,就像它在数据库中一样?如果我必须构建自己的函数,它应该处理哪些其他序列?
答案 0 :(得分:13)
strip c slashes()函数就是这样:
stripcslashes('foo\r\n');
答案 1 :(得分:2)
您可以使用substr_count()
计算字符串中的字符数。只需计算字符串中反斜杠的数量:
$string = "... mysqldump string here ...";
$backslashes = substr_count($string, '\\');
那会给你一个粗略的数字。为了100%准确,您必须计算有多少双反斜杠,以计算字面反斜杠,并根据需要调整计数。