PHP에서 가져온 잘못된 CSV 문제에 대한 해결 방법: 1. 구문 분석 함수 "function tb_str_getcsv($string, $delimiter=',', $enclosure='"') {...}"를 구성합니다. 2. 읽기 3. "substr($s,2)"를 통해 BOM 헤더를 제거합니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 8.1, Dell G3 컴퓨터
php import csv. 잘못된 코드 문제를 해결하려면 어떻게 해야 하나요?
PHP를 사용하여 Taobao Assistant로 가져온 CSV 파일을 분석하면 특히 Taobao Assistant를 가져올 때 중국어 문자가 깨질 수 있습니다. 데이터 패키지를 인터넷에서 많이 확인했는데 어떤 방법으로도 문제가 해결되지 않습니다.
우선 Taobao Assistant에서 내보낸 csv 파일이 드물게 UTF-16LE로 인코딩되어 있습니다.
두 번째로 csv 파일은 쉼표로 구분되지 않지만 t.Split입니다.
csv 파일 구문 분석 기능은 다음 코드를 통해 구현할 수 있습니다
/** * 构造一个解析函数 * (php内置的str_getcsv不知为何会出现局部乱码,原因不详) */ function tb_str_getcsv($string, $delimiter=',', $enclosure='"') { $fp = fopen('php://temp/', 'r+'); fputs($fp, $string); rewind($fp); while($t = fgetcsv($fp, strlen($string), $delimiter, $enclosure)) { $r[] = $t; } if(count($r) ==1) return current($r); return $r; } $s = file_get_contents($path); //读取文件到变量 $s = iconv('UTF-16LE', 'utf-8', substr($s,2));//转码,substr($s,2)的作用是去掉 BOM 头 FFFE //有的第三方数据包很不规范,控制符没有用空双引号 //可能导致列数不对应,在此加上空双引号 $s = str_replace("\t\t", "\t\"\"\t", $s); $s = str_replace("\t\t", "\t\"\"\t", $s); $csv_data = tb_str_getcsv($s, "\t");//读取到数组
추천 학습: "
PHP 비디오 튜토리얼위 내용은 PHP가 잘못된 CSV 문자를 가져오면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!