PHPでjavascriptを出力しCSVを展開する際の注意 [javascript・CSVの改行の罠]

Posted by boukyaku on 25.2008 プログラムの知識   0 comments
  • このエントリーをはてなブックマークに追加
    PHPでjavascriptを出力しCSVを展開する際の注意 [javascript・CSVの改行の罠]

    拡張子がhtmlだが、PHPを動かせたいときがある。
    .htaccessで拡張子をPHPにしてしまえば良いことだが、
    あえて、javascriptを活用してCSVの出力をPHPを動かしてみた。

    罠があった・・・
    [スポンサードリンク]


    ---

    <script type="text/javascript" src="../sozai/a/a.php"></script>

    上記のようにjavascriptでPHPを呼び出す。


    <?
    $em = file("展開したい.csv");

    echo <<document.write('\
    <div id="baiphot">\
    $em[0]\
    $em[1]\
    $em[2]\
    </div>\
    ');
    EOF;
    }
    ?>

    このように、ヒアドキュメントで展開したCSVデータを出力すると・・・
    エラーになる。

    なぜなら、

    CSVの最後には改行コードが入っている

    からだ!

    最後の列の値をjvascriptで出力すると改行がされてしまい
    エラーになるということ。

    ---

    それを回避させるべく、CSVで出力した最後の文字列の
    端の改行をPHPで削除します!

    補足:
    何故最後の行に改行が入るかというと・・・
    CSVをメモ帳などをで見てみると、2列目に移動する時改行されていますね。
    これが目に見えない・・・改行コードってやつです(;^ω^)


    ltrim(文字列[,削除文字]) ←左端のスペースや特殊文字を削除
    rtrim(文字列[,削除文字]) ←右端のスペースや特殊文字を削除


    削除文字を省略した場合は下記が削除される。
    ・半角スペース
    ・タブ
    ・ラインフィード
    ・改行
    ・ヌル文字
    ・垂直タブ

    ---

    これで解決!


    CSVを展開して表示させる場合
    CSVは最後の文字列に改行コードをつけていることに注意。
    それをjavascriptで展開した場合改行が含まれてしまいエラーが出てしまう。
    意外な落とし穴です。
    関連記事


    • password
    • 管理者にだけ表示を許可する

    スポンサードリンク

    リンク