徒然日々草(改×2)

生きものネタを時々あっぷ。ほぼ昆虫。ときどき植物。たまに背骨のある動物。

今日のしっぱい。

2005-02-16 16:55:50 | メモ
 今日は恥ずかしい失敗をしたのでメモ。

 ファイルメーカーのデータをタブ区切りテキストにして出力したのをPostgreSQLにコピっている私ですが、ここで問題が。ファイルメーカーはフィールド内での改行ができるのだけど、その情報が出力したテキスト書類に反映されない。が、何も見えなくても、ファイルメーカーのフィールド内の改行コード"0x0b"が文字の間に埋め込まれているらしい。ならば、それをHTMLの改行タグ"<br>"にすればいいじゃん、と思ったがそんなに簡単じゃなかった。教えてもらったのは、こんなかんじ。(ファイル名はフルパスでよろしく。)

出力はターミナルのみ。
cat ファイル名.txt | perl -n -e 's/0b/<br>/g;print'


新しいファイルに出力
cat ファイル名.txt | perl -n -e 's/\x0b/<br>/g;print'>新しいファイル名.txt


hoge.txt を処理して、結果を hoge.txt に格納しつつ、元ファイルを hoge.txt.bak に保存
perl -i.bak -n -e 's/\x0b/<br>/g;print'ファイル名.txt


 とまあ、教えてもらったとおりにしたら、見事!、謎の改行コードは"<br>"になったわけですが・・・。

 ・・・HTMLに出力するときにPHPで"htmlspechialchars()"を混ぜてたので、見事!、特殊文字("<"とか">")は実態参照("&lt;"や"&gt;")とやらに変換されてしまったという・・・。ステキにバッチリ"<br>"(ソース的には"&lt;br&gt;")と出力されてますよ、奥さん。がっくし。(ああ、消え入りたい・・・。)

 ちなみに、このブログを書いているときも、逆にタグが全部認識されちゃうから大変っすよ。特殊文字は全部手で実態参照とかいうのを打ってます。ちなみに、Macからは改行以外はタグを挿入してくれないので、フォント設定もあいかわらず手でタグ打ってます(笑)。ソースを見ていただけたら、私がどれだけ苦労しているかが垣間見えると思います。くそー。

 続き。結局、PHPで出力するときに、
str_replace("\x0b", "<br>", htmlspecialchars($hoge))
としたらうまくいきました。難しく考えすぎだったのかなぁ。




最新の画像もっと見る