使用PHP,我试图给每个特定的文本赋予自己的变量。我相信这可以通过在php中使用爆炸列表功能来实现。类似于下面代码的东西:
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
但是,上面的代码使用冒号(:
)分隔文本。我想要分开的文字在引号内,例如"WORD"
。我想分开的示例文本如下:
“AULLAH1”“01/07/2010 15:28”“55621454”“123456”“123456.00”
我希望文本/数字AULLAH1
,01/07/2010 15:28
,55621454
,123456
,123456.00
都具有特定的PHP变量。如果可能,我希望PHP爆炸功能通过开头引号(“)和结束引号(”)来分隔内容。
答案 0 :(得分:3)
更好的方法是使用preg_match_all
:
$s = '"AULLAH1" "01/07/2010 15:28 " "55621454" "123456" "123456.00"';
preg_match_all('/"([^"]*)"/', $s, $matches);
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = $matches[1];
最相似的方式是使用preg_split
:
list($user, $pass, $uid, $gid, $gecos, $home, $shell) =
preg_split('/"(?: ")?/', $s, -1, PREG_SPLIT_NO_EMPTY);
答案 1 :(得分:1)
这是最简单的解决方案,但肯定不是最健壮的:
$data = '"AULLAH1" "01/07/2010 15:28 " "55621454" "123456" "123456.00"';
list($user, $pass, $uid, $gid, $gecos, $home, $shell)
= explode('" "', trim($data, '"'));
var_dump(array($user, $pass, $uid, $gid, $gecos, $home, $shell));
// gives:
array(7) {
[0]=>
string(7) "AULLAH1"
[1]=>
string(17) "01/07/2010 15:28 "
[2]=>
string(8) "55621454"
[3]=>
string(6) "123456"
[4]=>
string(9) "123456.00"
[5]=>
NULL
[6]=>
NULL
}
答案 2 :(得分:1)
这应该用正则表达式完成。请参阅preg_match功能。
答案 3 :(得分:0)
explode('-', str_replace('"', '', str_replace('" "', '"-"', $data)));