繁体   English   中英

PHP解析逗号分隔的字符串,带双引号

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM