我正在嘗試決議 CSV 檔案。
<?php
$url = 'https://flux.netaffiliation.com/feed.php?maff=3E9867FCP3CB0566CA125F7935102835L51118FV4';
$csv = array_map('str_getcsv', file($url), ["|"]);
echo '<pre>'; echo print_r ($csv); echo '</pre>';
?>
這是我得到的示例:
[1] => Array
(
[0] => 5016488133494|Ary And The Secret Of Seasons PS4|100001|9.99||Jeu > PS4|https://xht.micromania.fr/?P3CB0566CA125FS1UD41282b0253295V4|https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/BCRB_STG/on/demandware.static/-/Sites-masterCatalog_Micromania/default/dw65159733/images/high-res/100001.jpg?sw=1000|JUST FOR GAMES|JUST FOR GAMES|Explorez le monde merveilleux de Valdi !||new|4.99|||||||2
)
顯然,決議器不會接受每個“|” 考慮到。
uj5u.com熱心網友回復:
如果您檢查您的輸出,您會注意到拆分適用于您的第一行。這是因為(奇怪的是)PHP 每次迭代只使用一次額外的引數,所以你需要為每一行指定它們:
array_map('str_getcsv', file($url), ["|", "|", "|", ...]);
...這對我來說沒有多大意義,因為你不知道你有多少行。我只是像這樣明確地稱呼它:
$csv = array_map(fn($line) => str_getcsv($line, '|'), file($file));
或較舊的樣式:
$csv = array_map(function($line) { return str_getcsv($line, '|'); }, file($file));
uj5u.com熱心網友回復:
這是我建議的腳本。結果它組裝了 csvArray,我希望你能進一步處理:
<?php
$url='https://flux.netaffiliation.com/feed.php?maff=3E9867FCP3CB0566CA125F7935102835L51118FV4';
$file_name = 'csvToParse.csv';
$arrContextOptions=array(
"ssl"=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
);
file_put_contents($file_name, file_get_contents($url, false,
stream_context_create($arrContextOptions)));
$fopenCSVHandle=fopen($file_name, 'r');
$csvArray=array();
if ($fopenCSVHandle !== false){
while (($data = fgetcsv($fopenCSVHandle, 1000, "|")) !== FALSE) {
//echo('<br />single row $data=<br />');
//print_r($data);
$csvArray[]=$data;
}
//echo('<br />We got this $data from CSV:<br />');
//print_r($csvArray);
}
?>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/453176.html
