fopen と fgetcsv で読み取った csv があります。
ini_set('auto_detect_line_endings', true);
$handle = fopen($uploadDir.$fileName,"r");
while (($aCell = fgetcsv($handle, 1000, ";")) !== FALSE) {
//GO THROUGH ROWS
}
私の問題は、Windows の csv に改行文字として CRLF (\r\n) または LF (\n) があることです。時々、CRLF と時々 CR を使用する Mac からの csv があります (ほとんどの場合、st.html テキストのテキスト列にあります)。
CR は fgetcsv を壊して、「定義された」ヘッダー列のように列と行の正しい構造を取得しないようにします。
行を通過する前に、その csv で CR (\r) を LF (\n) に置き換えるにはどうすればよいですか?
編集 通行人のアイデアを試してみました。ヒントをありがとう
$file_contents = file_get_contents($uploadDir.$fileName);
$file_cont_tmp = str_replace("\r","\r\n",$file_contents);
$file_cont_new = str_replace("\r\n\n","\r\n",$file_cont_tmp);
file_put_contents($uploadDir.$fileName,$file_cont_new);