在PHP中分解复杂字符串


Exploding a complex string in PHP

我在php.net上发现了这一点,我想澄清一下:

示例2(爆炸函数)

$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

中间有两个冒号,这是否意味着$gecos没有价值?

你的问题和困惑并没有那么糟糕,你的免责声明就是!

你可以简单地打印爆炸的所有输出来找出答案

<?php
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
print_r(explode(":", $data));

输出

Array
(
    [0] => foo
    [1] => *
    [2] => 1023
    [3] => 1000
    [4] => 
    [5] => /home/foo
    [6] => /bin/sh
)

是的,正如您所想,list中的第五个变量将没有值,因为在那个位置的冒号之间没有任何内容。