是有办法或删除许多附加功能斜杠像下面使用stripslashes()函数PHP函数删除许多和addslashes
\\\\\\\"Oracle DBA\\\\\\\"
将只删除一个斜杠,
我是否必须使用preg_replace?像这样
preg_replace(/^\\(.*)/,"",$subject);
与这项工作?
是有办法或删除许多附加功能斜杠像下面使用stripslashes()函数PHP函数删除许多和addslashes
\\\\\\\"Oracle DBA\\\\\\\"
将只删除一个斜杠,
我是否必须使用preg_replace?像这样
preg_replace(/^\\(.*)/,"",$subject);
与这项工作?
你不需要一个正则表达式来做到这一点。只要使用此:
$string = str_replace(array('/', '\\'), '', $string);
为什么要删除正斜杠? – mario 2012-07-22 02:33:42
如果真的所有你想要做的就是替换反斜杠,那么所有你需要的是:
$str = "\\\\\\\"Oracle DBA\\\\\\\"";
$str = str_replace("\\", "", $str);
如果你也想斜线删除:
$str = str_replace(array("\\", "/"), "", $str);
不过,从这里可以得出一个很好的观点:删除所有斜杠可能会破坏你的逃跑。
在这种情况下,负前瞻可能做的伎俩:
$str = preg_replace("/\\\(?!\")/", "", $str);
应导致`\ “的Oracle DBA \”
编辑:由woopsie。 x2
微观优化:有点整洁的使用硬引号的模式''/ \\\(?!“)/'' – Geo 2012-12-21 20:07:41
如果您知道需要删除多少级别的转义,则可以多次运行字符串stripslashes
。
如果你不那么我不确定你能否完全正确地做到这一点 - 你可以删除所有斜线,但显然你会打破任何应该在那里的斜线。
”如果暴力无法解决问题,那么您的使用不够“ – Roberto 2012-07-22 02:31:01
你的第二个例子是无效的PHP语法。缺少引号。反斜杠是字符串元字符,需要被屏蔽两次,以便PCRE看到它。 – mario 2012-07-22 02:34:38