0

以下を使用して、ページの削除されたコンテンツをサーバー上の csv ファイルに保存しています。

$strippedpage = str_replace('<br>',' ', $semistrippedpage);
    file_put_contents('yourpage.csv', $strippedpage);

このコードの前に、基本的に str_replace を使用してすべての html を削除し、csv ファイルのようにフォーマットします。

    1-Do you like Science?,
    5,2
    1,6
    3,7
    6,8
    7,9
    85,Love
    6,Ok
    15,Strongly Dislike
    2- Do you enjoy science lessons at school?,
    1,3
    1,4
    5,7
    4,8
    2,9
    78,Love
    21,Ok
    16,Strongly Dislike
    3-How often do you use ICT in Science Lessons? (E.g. microscopes digital cameras easi-speak mics.),
    29,2
    8,3
    11,4
    20,6
    4,7
    27,In Some Lessons
    29,Not At All

文字列に残っている唯一の html は、行を区切るための BR タグです。

上記の出力をブラウザからメモ帳のドキュメントにコピーして貼り付け、csv として保存すると、正常に開き、各行が個別の行として表示されます。

私が抱えている問題は、サーバー上で生成された「yourpage.csv」ファイルを開くと、次のようになることです。

1-Do you like Science?, 5,2 1,6 3,7 6,8 7,9 85,Love 6,Ok 15,Strongly Dislike 2- Do you enjoy science lessons at school?, 1,3 1,4 5,7 4,8 2,9 78,Love 21,Ok 16,Strongly Dislike 3-How often do you use ICT in Science Lessons? (E.g. microscopes  digital cameras  easi-speak mics.), 29,2 8,3 11,4 20,6 4,7 27,In Some Lessons 29,Not At All 4-How often do you get to do practical Science in lessons?, 1,No Answer 17,2 8,3 14,4 4,6 8,7 5,8 1,9 11,In Every Lesson 56,In Some Lessons 3,

何らかの理由で、すべてを 1 行にまとめるだけです。上記の例のように、各結果が別の行に表示されるように、改行に相当する csv をコードに追加する方法がわかりません。

4

3 に答える 3

2
$strippedpage = str_replace('<br>',"\n", $semistrippedpage); //for new line
file_put_contents('yourpage.csv', $strippedpage);
于 2013-06-26T14:08:35.520 に答える
1

br を削除する代わりに、改行タグに置き換えることをお勧めします。

IE>$nl = preg_replace('#<br\s*/?>#i', "\n", $html);

正しい方向に向かうかもしれませんか?

于 2013-06-26T14:10:04.587 に答える
1

PHP では通常、改行文字は ですが\n\r\nほとんどの Windows プログラム (メモ帳など) では が使用されます。

そのため、Windows のメモ帳は改行を識別しません。

CSV ファイルを別のエディター (たとえば、Notepad++ ) で開いてみて、同じ結果が得られるかどうかを確認してください。

fputcsvまた、単純な の代わりに を使用して CSV ファイルを生成することをお勧めします。str_replaceより安全です (たとえば、特殊文字を処理できます)。

于 2013-06-26T14:12:41.620 に答える