如何在PHP中解析像這樣的CSV(在value 8
附近有雙引號)?解析格式錯誤的CSV文件
"03720108";"value 8"";"";"219";"03720108";"value";"value";"value";"";"";"";"";"";"";"value";"";"";"value";"value";
我試着用fgetscv($pointer, 4096, ';', '"');
如何在PHP中解析像這樣的CSV(在value 8
附近有雙引號)?解析格式錯誤的CSV文件
"03720108";"value 8"";"";"219";"03720108";"value";"value";"value";"";"";"";"";"";"";"value";"";"";"value";"value";
我試着用fgetscv($pointer, 4096, ';', '"');
是。注意額外的報價。
「值8」「;
你的數據似乎開始於前行,您有沒有結束引號開口報價被畸形
是更具體的編輯:只有一行 – razorxan
我正在查看你的原來的版本在@ Macmade的編輯之前,它似乎有兩行 – phatfingers
我的不好!不能使用這個s ** t – razorxan
你可能仍然能夠。解析這個字符串,雖然:
$str = '"03720108";"value 8"";"";"219";"03720108";"value";"value";"value";"";"";"";"";"";"";"value";"";"";"value";"value";';
$parsed = array_map(
function($str) { return substr($str, 1, -1); },
explode(';', $str)
);
var_export($parsed);
/*
array (
0 => '03720108',
1 => 'value 8"',
2 => '',
3 => '219',
4 => '03720108',
5 => 'value',
6 => 'value',
7 => 'value',
8 => '',
9 => '',
10 => '',
11 => '',
12 => '',
13 => '',
14 => 'value',
15 => '',
16 => '',
17 => 'value',
18 => 'value',
19 => false,
)
*/
事情變得更加複雜一點,不過,如果有包含;
字符元素(正常通過將引號中的值加上引號將它們轉義出來......),上面的代碼假設你只需要解析一行代碼(儘管如果你使用fgets()
來讀取輸入流,你應該沒問題)。
你自己用'價值8'附近有一個雙引號' – webbiedave
來回答它,所以我是對的:(那個額外的引號是邪惡的, – razorxan