PHPによる文字列処理
WordressのPHPを使用可能にするプラグインによって、同じこと書いても挙動が違う。
1 2 3 4 5 6 7 8 9 10 |
$file = fopen("/home/****/sample.txt", 'r'); $size = filesize("/home/****/sample.txt"); $data = fread($file,$size); fclose($file); $data = str_replace(array("\r\n", "\r", "\n"), "\n", $data); $data = explode( "\n", $data ); $data = wptexturize( $data[ mt_rand( 0, count( $data ) - 1 ) ] ); echo "$data"; |
sample.txtの中身はこんなかんじ。
1 2 3 |
大吉 小吉 凶 |
ものによっては、意図したとおり改行コードで分割して「大吉」とかを返すのに、ものによっては「大吉小吉凶」となる。
試しに「吉」で分割すると、「大」「小」「凶」がランダムで表示される。
どうも改行コードでの分割ができてない。プラグインによって。
なんだこれ。なんかPHPの書式ミスってるのか。
2020/02/03追記。
1 |
$data = explode( "\\n", $data ); |
“\\n” にしたら解決した。なんで二重エスケープがいるのか再確認必要だけど、解決策はわかった。