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

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で展開した場合改行が含まれてしまいエラーが出てしまう。
意外な落とし穴です。
関連記事


【 忘却板/忘れた事を貼れます 】

コメント

非公開コメント