我对PHP的str_getcsv函数有问题。
我有这段代码:
<?php
$string = '#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=714000,RESOLUTION=640x480,CODECS="avc1.77.30, mp4a.40.34"';
$array = str_getcsv($string, ",", '"');
print_r($array);
应返回:
Array
(
[0] => #EXT-X-STREAM-INF:PROGRAM-ID=1
[1] => BANDWIDTH=714000
[2] => RESOLUTION=640x480
[3] => CODECS=avc1.77.30, mp4a.40.34
)
但相反,它正在回归:
Array
(
[0] => #EXT-X-STREAM-INF:PROGRAM-ID=1
[1] => BANDWIDTH=714000
[2] => RESOLUTION=640x480
[3] => CODECS="avc1.77.30
[4] => mp4a.40.34"
)
因为它忽略了最后一个参数的外壳:CODECS并且还在分割该信息。我正在使用str_getcsv而不是仅仅因为这个原因而爆炸(“,”,$ string)(该函数应该尊重机箱)但它的工作原理与爆炸相同。
正在执行的代码:http://eval.in/17471
答案 0 :(得分:3)
enclosure (第三个)参数没有那么多效果。仅当外壳字符出现在分隔符旁边时,才会将其视为外壳字符。
要获得所需的输出,输入必须是
#EXT-X-STREAM-INF:PROGRAM-ID=1,...,"CODECS=avc1.77.30, mp4a.40.34"
<强> See it in action 强>