【问题标题】:remove escape sequences from string in php从php中的字符串中删除转义序列
【发布时间】:2011-11-02 22:50:43
【问题描述】:

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

我使用了stripslashes(),它可以正确地取消转义单引号和双引号,但它不会触及\r\n

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

【问题讨论】:

  • 实际上,stripslashes 将\r\n 更改为rn。这会将字符串的长度加 2,这是一个正确的值,因为 \r\n` are actually two characters in the string, even though they aren't literally rn`。嗯……

标签: php string escaping


【解决方案1】:

strip c slashes() 函数正是这样做的:

stripcslashes('foo\r\n');

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-07
      • 1970-01-01
      • 1970-01-01
      • 2013-01-19
      相关资源
      最近更新 更多