PHPで文字列を1文字ずつチェックする方法
PHPでCSVを読み込むときの話。CSV読み込みなんて一行ごとに explode(“,”, $hogehoge); でいい気もするんですけれど、そうではなくて、カンマごとに要素を取得する、なんて言うことをしたかったんです。要はPHPで文字列処理ですね。次のカンマまで文字数を取って、カンマが来たら substr する、みたいな。
「カンマが来たら」なんて一文字ごとにチェックしなければならないんですけど、いちいち substr($hogehoge, 0, 1); なんてやってたら遅そうだし・・・。
なんとかC言語のポインタみたく、一文字ごとにトレースするような方法ないのかなぁ・・・。
そんなときはGoogle先生!ということで調べてみると、このサイトにたどり着きました。
zuraraさん — http://blog.zuzara.com/2006/06/17/88/
なぬ?配列のように $hogehoge[0] とかすると1文字だけとれるとな?!試しに書いたプログラムがこちら。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #!/usr/bin/php -q <?php $a = "Hello World!"; echo $a[0]."\n"; // // 結果 // H // e // l // l // o // // w // o // r // l // d // ! // ?> |
おお、できた。なるほど、1文字ずつチェックするにはこの方法が良さそうです。