1

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);
4

0 に答える 0