【问题标题】:Remove all backslashes from a string - php - regex [closed]从字符串中删除所有反斜杠 - php - 正则表达式 [关闭]
【发布时间】:2012-12-03 22:47:59
【问题描述】:

我的字符串是

$str = '<img src="\"images/hai.jpg\"" alt="" /> Text <img src="\"images/hai.jpg\"" alt="" />';

我想从字符串中删除所有“\”。

【问题讨论】:

  • 使用stripslashes($str)
  • 简单的str_replace怎么样? str_replace('\"', '', $str) 就完成了。
  • 这个问题没有建设性。 OP 没有研究。

标签: php regex str-replace


【解决方案1】:

我认为您不是在寻找正则表达式,而是在寻找 stripslashes($str) 方法。

编辑:从 cmets,我了解到您只会用任何内容替换 \",您应该在这里使用简单的 str_replace,正如 @Gumbo 所说:

$str = ...;
$newStr = str_replace('\"', '', $str);

echo $newStr;

你可以为此使用正则表达式,但 pReg 库并不快,如果你能找到一个 str_* 或数组变体,我总是建议使用它而不是 preg_*

【讨论】:

  • 他真的想删除\"而不仅仅是\
  • 他只想删除\",而不是所有\‍
  • @Michael 谢谢你,我已经编辑了问题
  • @WouterJ :但我想替换所有 \" 。 $str 是动态的,它可能包含许多 \"。
  • @FrancisMV123 我认为这正是我的代码的作用?
【解决方案2】:

使用stripslashes($str) 不会总是从字符串中删除所有\s。如果存在\\ 存在的实例,它将变为一个斜线,而不是0。要摆脱它们,最好的办法可能是使用str_replace

正如 OP 所说,他希望删除 /",这需要使用 str_replace 来完成

【讨论】:

    【解决方案3】:

    这看起来像是一种经过多个转义序列的数据字符串。您可能需要查找反斜杠和重复引号的根本原因。在 PHP 中,魔术引号会导致这种事情。如果您可以阅读本文,它将解释这些问题。

    http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_6630-Magic-Quotes-a-bad-idea-from-day-one.html

    HTH,~雷

    【讨论】:

    • 这即将成为仅链接的答案。您能否从链接的文章中提供一些额外的背景信息?此外,虽然双重转义和/或魔术引号确实会导致一般问题,但从 OP 的实际问题来看,这里似乎并非如此。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 2010-11-01
    • 2020-07-23
    • 2011-01-15
    • 2015-03-28
    相关资源
    最近更新 更多