通过反斜杠\拆分文本?

15

我搜寻了几个小时。如何通过反斜杠 "\" 分离字符串?

我需要将 HORSE\COW 分成两个单词并去掉反斜杠。


3
请阅读关于转义字符串的部分:http://php.net/manual/zh/language.types.string.php - Wesley Murch
3个回答

44
$array = explode("\\",$string);

这将为您提供一个数组,对于"HORSE\COW",它将给出$array[0] = "HORSE"$array[1] = "COW"。对于"HORSE\COW\CHICKEN"$array[2] 将是 "CHICKEN"

由于反斜杠是转义字符,所以必须用另一个反斜杠进行转义。


我尝试使用 \,它只返回两个值:HORSE\COW和“blank”。 - user723220
我假设该字符串是从某个地方(如数据库)中提取的,如果不是,则字符串中的 \ 也必须进行转义,例如:"HORSE\COW"。 - Phoenix

8
您可以使用explode()函数,并转义转义字符 (\)。
$str = 'HORSE\COW';

$parts = explode('\\', $str);

var_dump($parts);

CodePad.

Output

array(2) {
  [0]=>
  string(5) "HORSE"
  [1]=>
  string(3) "COW"
}

7

只需使用explode()函数:

$text = 'foo\bar';

print_r(explode('\\', $text)); // You have to backslash your
                               // backslash. It's used for
                               // escaping things, so you
                               // have to be careful when
                               // using it in strings.

反斜杠用于转义引号和表示特殊字符:

  • \n 表示换行。
  • \t 表示制表符。
  • \" 表示引号。你需要对它进行转义,否则 PHP 会将其视为字符串的结尾。
  • \' 同样适用于单引号。
  • \\ 表示反斜杠。由于它用于转义其他字符,因此你需要对其进行转义。有点奇怪。

所有这些工作,如果简单地阅读文档就可以轻松解决的话,那就太不值得了。好吧,我们都从中学到了一课 :) - Wesley Murch
我用 \ 运行了上面的代码,得到了 HORSE\COW 和 [0] 作为数组元素。一定是个 bug。 - user723220
我可以确认上面的print_r(explode)示例是有效的,但是您忘记了在末尾加上一个")"。 - user723220
你使用的是哪个PHP版本?这个链接可以完美运行:http://codepad.viper-7.com/IqKhfU - Blender
哈哈,太好了。我也遇到过这种情况,但是我的情况是一开始忘记了分隔符。所有的内容都在一行里... - Blender
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接