我有一个名为data的url参数,其中包含逗号分隔的字符串,其中一些用双引号括起来,如下所示:
localhost/index.php?data=val1,val2,val3,"val4","val5",val6
我正在尝试解析字符串并将其放入数组中。使用str_getcsv($_GET['data'],',','"');
可以得到如下输出:
Array
(
[0] => val1
[1] => val2
[2] => val3
[3] =>
)
我希望数组看起来像这样:
Array
(
[0] => val1
[1] => val2
[2] => val3
[3] => val4
[4] => val5
[5] => val6
)
提前致谢!
答案 0 :(得分:1)
我会说在生成该url时urlencode双引号。由于<a href="localhost/index.php?data=val1,val2,val3,"val4","val5",val6">link</a>
会产生网址,因此您只会localhost/index.php?data=val1,val2,val3,
所以喜欢:
echo '<a href="localhost/index.php?data=' . urlencode('val1,val2,val3,"val4","val5",val6') . '">link</a>';
答案 1 :(得分:0)
您是否尝试过使用explode?它会使用您指定的任何分隔符将字符串分隔为数组。
使用您的示例,
$_GET['data'] = 'val1,val2,val3,"val4","val5",val6';
$testarr = explode(",", $_GET['data']);
var_dump($testarr);
输出:
array(6) {
[0]=>
string(4) "val1"
[1]=>
string(4) "val2"
[2]=>
string(4) "val3"
[3]=>
string(6) ""val4""
[4]=>
string(6) ""val5""
[5]=>
string(4) "val6"
}
再次查看您的问题,您似乎可能要完全从$ _GET ['data']中删除"
?如果是这样,请执行以下操作:
$testarr = explode(",", str_replace('"','',$_GET['data']));