[英]PHP Parse Comma Separated String with double quotes
我有一个名为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
)
提前致谢!
我会在生成该网址时说urlencode双引号。 因为<a href="localhost/index.php?data=val1,val2,val3,"val4","val5",val6">link</a>
将导致您只进入localhost/index.php?data=val1,val2,val3,
的网址localhost/index.php?data=val1,val2,val3,
像这样:
echo '<a href="localhost/index.php?data=' . urlencode('val1,val2,val3,"val4","val5",val6') . '">link</a>';
您是否尝试过使用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']));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.