【问题标题】:PHP stripslashes eating too many backslashesPHP stripslashes 吃太多反斜杠
【发布时间】:2013-02-05 06:24:57
【问题描述】:

我正在尝试使用传统的 stripslashes 函数去除一些斜线并且得到奇怪的结果:

echo stripslashes('\\\\');

这给了我:\

echo stripslashes('\\\\\\\\\\\\');
// there should be 12 slashes above

这给了我:\\\(这里应该有三个斜线。即使这样也很奇怪)

它正在吃双斜线>.

但是,当我将相同的输入插入http://www.tools4noobs.com/online_php_functions/stripslashes/ 时,结果是否正常?

有人知道发生了什么吗?我怎样才能控制 stripslashes 的胃口,让它不再吞食这些 sloshes?

【问题讨论】:

  • php 将在单引号中转义双反斜杠
  • 我明白你对 SO 很奇怪的意思。
  • @leftclickben 是的。在 cmets 中输入大量反斜杠真的很难。

标签: php stripslashes


【解决方案1】:

反斜杠\ 转义它后面的一个字符。为了打印反斜杠,您需要两个:

\\

\\\\ 给你两个反斜杠,因为每个反斜杠都会转义它后面的一个。

stripslashes('\\\\'); 从剩下的两个中去掉一个反斜杠。

【讨论】:

  • 你也应该解释一下单引号和双引号
  • 实际上,单引号中的反斜杠只会转义后面的单引号 (\') 或另一个反斜杠 (\\ )。见php.net/manual/en/language.types.string.php
  • 问题是,我只得到一个反斜杠。我希望得到两个,但不知何故我的 php 是 idk .. 双重剥离它并给我一个反斜杠而不是两个
  • @2unco 你有 4 个反斜杠,转义后给你 2 个。进一步的条纹会给你一个。
  • @2unco 试试echo '\\\\';,你会看到你所期望的两个反斜杠。
猜你喜欢
  • 2010-12-04
  • 1970-01-01
  • 1970-01-01
  • 2016-09-20
  • 1970-01-01
  • 2010-10-29
  • 1970-01-01
  • 2010-09-11
  • 1970-01-01
相关资源
最近更新 更多