- ベストアンサー
文字列の検索について
こんにちわ。文字列の検索について質問があります。 ↓のコードは、 「$str という文字列の中に"<!>" という文字列が含まれていたら、その都度その位置を 知らせる」と意図したものです。 $str の中に "<!>" が3つ含まれていたら、3回それらの位置を知らせるはずです。 しかし、実際は、最後の $iの位置だけ出力されます。 どこに問題があるのでしょうか? よろしくお願いいたします。 -------コード(ココカラ)------- for ($i=1; $i<length; $i++) { $strsub=substr($str, $i, $i+2); if ($strsub == "<!>") { echo $i; echo "\r\n"; } } -------ココマデ-------
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
たとえば、こんなかんじ <? $str="0<!>123<!>456<!>789<!>abc"; for ($i=0; $i<strlen($str); $i++){ $strsub=substr($str, $i, 3); if ($strsub == "<!>"){ echo $i; echo "\r\n"; } } ?> 元ソースのlengthってなに? substrの引数がちがいますね。 マニュアルみながらやりましょう。
その他の回答 (1)
- auty
- ベストアンサー率58% (284/486)
phpに関しては分からないものですが、 substr($str, $i, $i+2) は、 substr($str, $i, 3) ではありませんか。(切り出す長さ)
お礼
ありがとうございます。 当方の勘違いで、SUBSTRの引数を間違っていました。
お礼
ありがとうございました。 当方の勘違いでした。 SUBSTRの引数を間違っていました。