Php str_getcsv未正确解析数据

Php str_getcsv未正确解析数据,php,string,csv,explode,fgetcsv,Php,String,Csv,Explode,Fgetcsv,我对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

我对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
    [4] =>  mp4a.40.34"
)
因为它忽略了最后一个参数:codecks的封装,并且正在拆分该信息。我使用str_getcsv而不是仅仅执行explode(“,”,$string)正是出于这个原因(该函数应该尊重附件),但它的工作原理与explode的工作原理相同

正在执行的代码:

enclosure(第三个)参数没有那么大的效果。仅当外壳字符出现在分隔符旁边时,才会将其视为这样

要获得所需的输出,需要输入

#EXT-X-STREAM-INF:PROGRAM-ID=1,...,"CODECS=avc1.77.30, mp4a.40.34"

enclosure(第三个)参数没有太大的影响。仅当外壳字符出现在分隔符旁边时,才会将其视为这样

要获得所需的输出,需要输入

#EXT-X-STREAM-INF:PROGRAM-ID=1,...,"CODECS=avc1.77.30, mp4a.40.34"

谢谢你的回答。我从一个m3u8文件中收到了这些信息。有什么简单的方法可以得到我想要的信息吗?@AbrahamSustaita:
str_replace('CODECS=“”,“'CODECS=”,$line)
会让你早点回家。不纯洁的地狱,但你们不能争辩的实用性。谢谢你们的回答。我从一个m3u8文件中收到了这些信息。有什么简单的方法可以得到我想要的信息吗?@AbrahamSustaita:
str_replace('CODECS=“”,“'CODECS=”,$line)
会让你早点回家。不纯的地狱,但你们不能争辩的实用性。