2011-03-09 176 views
2

我有一个数据的字符串是这样的:PHP爆炸排除

8487613 1298296324 1a6ad892e547da07f35221fdfe6f70dd “| MODO |” 178.211.28.126 “战地叛逆连队2”, “公元前的东西,并命名为” “冲突(AIMBOT)#50246”

在我的PHP我使用爆炸这样的:

$more_info = explode(' ', $banned_players); 

但它在空间分离“战地坏公司2”,我不希望这样的事情发生。

那么有没有什么办法用空格爆炸,但不能在“”字符之间爆炸?

回答

4

尝试。。它适用于制表符或逗号分隔值,但它工作得很好,只是空间分隔符:

print_r(str_getcsv('8487613 1298296324 1a6ad892e547da07f35221fdfe6f70dd "|MoDo|" 178.211.28.126 "Battlefield Bad Company 2"', " ")); 

结果:

Array 
(
    [0] => 8487613 
    [1] => 1298296324 
    [2] => 1a6ad892e547da07f35221fdfe6f70dd 
    [3] => |MoDo| 
    [4] => 178.211.28.126 
    [5] => Battlefield Bad Company 2 
    [6] => BC Stuff and name 
    [7] => Violation (AIMBOT) #50246 
) 
+0

这正是我所需要的,我会尽快测试代码。 – Karlo 2011-03-09 18:49:09

+0

或者如果<5.3.0,则为'fgetcsv','fseek'和'php:// temp'。 – netcoder 2011-03-09 19:08:06

0

爆“字,你就会有3个数组,然后爆炸第一阵列,并用空格字符最后一个数组,并使用array_push()array_merge()合并他们。

1

使用preg_split,而不是

+0

嗯,我不是正则表达式,我真的好想要快速完成此代码。 ^^ – Karlo 2011-03-09 18:47:54

0

你可以使用str_getcsv一个空格做为分隔

注意:这仅适用,如果你只有一个字符分隔符