• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPで文字を検索して取り込みたい。)

PHPで文字を検索して取り込む方法

このQ&Aのポイント
  • PHPで文字を検索して取り込む方法について解説します。
  • %の文字が含まれるソースから、全角の%の数値を取り込む方法をご紹介します。
  • 具体的なコード例も記載していますので、初心者の方でも分かりやすくなっています。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.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"; //半角にして表示 } ?>

kei396
質問者

お礼

完璧に動きました。 ありがとうございます。 URLより、文字列を抜き出すのに苦労してます。 新たに質問させていただきましたので http://oshiete.goo.ne.jp/qa/6002533.html 目に留まられたら、またご指導お願いいたします。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

全角数字+%をカウントするということでいいですか? 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]); ?>

kei396
質問者

お礼

各データを印字したいのですが なぜか動作しません^^ 色々試行錯誤しています。 <?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]; ?>