- ベストアンサー
PHPで文字を検索して取り込む方法
- PHPで文字を検索して取り込む方法について解説します。
- %の文字が含まれるソースから、全角の%の数値を取り込む方法をご紹介します。
- 具体的なコード例も記載していますので、初心者の方でも分かりやすくなっています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
すみません、ちょっと勘違いしました。 数だけ抜き出せばいいんですね? こんなかんじでどうでしょう? <? $str=<<<eof 80% すべて半角 82% すべて半角 85% すべて全角 88% すべて全角 XX% 不正なデータ 92% まぜこぜ 95% まぜこぜ eof; $pattern="/[0-9]+(?=%)/u"; mb_internal_encoding("UTF8"); preg_match_all($pattern,$str,$matches); foreach((array) $matches[0] as $val){ //print $val."<br>\n"; //全角のまま表示 print mb_convert_kana($val,"a")."<br>\n"; //半角にして表示 } ?>
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
全角数字+%をカウントするということでいいですか? pregのチェックは基本はUTF8ですので、それ以外の文字コードだと誤動作する可能性が あるので気を付けてください。 <? $str=<<<eof 80% すべて半角 82% すべて半角 85% すべて全角 88% すべて全角 92% まぜこぜ 95% まぜこぜ eof; $pattern="/[0-9]%/u"; mb_internal_encoding("UTF8"); preg_match_all($pattern,$str,$matches); print count($matches[0]); ?>
お礼
各データを印字したいのですが なぜか動作しません^^ 色々試行錯誤しています。 <?php $str=<<<eof 80% すべて半角 82% すべて半角 85% すべて全角 88% すべて全角 92% まぜこぜ 95% まぜこぜ eof; $pattern="/[0-9]%/u"; mb_internal_encoding("UTF8"); preg_match_all($pattern,$str,$matches); print $matches[0]; ?>
お礼
完璧に動きました。 ありがとうございます。 URLより、文字列を抜き出すのに苦労してます。 新たに質問させていただきましたので http://oshiete.goo.ne.jp/qa/6002533.html 目に留まられたら、またご指導お願いいたします。