• ベストアンサー

指定した文字列まで取得したい

指定した文字列以降はあったのですが http://www.php-ref.com/bapi/02_strstr.html 指定した文字列までを見つけれません… 例えば あいうえお と、あった場合 「う」を指定すれば あい と出るようにしたい 宜しくお願いします

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

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

1以上の4つまでをとればいいなら以下でどうでしょう? $pattern="/^(.*?<\/a>){1,4}/isu"; preg_match($pattern,$str,$match); print htmlspecialchars($match[0]); //print $match[0];

shirouto999
質問者

お礼

例えば2つあった場合、1つしか表示されません。。。 $pattern="/^(.*?<\/a>){4}/isu"; の場合、3つしかない場合は、1つも表示されません 難しいでしょうか。。。

shirouto999
質問者

補足

何も表示されず、真っ白になっちゃいました、、、

その他の回答 (3)

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

>4つ目の</a>まで表示(取り出し)させたい場合 意味がよくわかりません・・・ こういうこと? <?PHP $str=<<<eof test <a href="1.jpg">1</a> <a href="2.jpg">2</a> <a href="3.jpg">3</a> <a href="4.jpg">4</a> <a href="5.jpg">5</a> test eof; $pattern="/^(.*?<\/a>){4}/isu"; preg_match($pattern,$str,$match); print htmlspecialchars($match[0]); ?>

shirouto999
質問者

補足

ご回答ありがとうございます $abc = file_get_contents("xxx.html"); $abc = mb_convert_encoding($abc, "UTF-8", "Shift_JIS"); echo $abc; 上記 $abc で 4つ目の</a>まで表示(取り出し)させたいです 3つまでしかない場合3つ目までとか、、、、 厳しいでしょうか

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.2

日本語という事でマルチバイトなのが少し気になってみたり。( ̄∇ ̄;A <?php $str = "あいうえお"; $needle = "う"; print mb_substr($str , 0 , mb_strpos($str , $needle)); ?> http://php.net/manual/ja/function.mb-substr.php http://www.php.net/manual/ja/function.mb-strpos.php

shirouto999
質問者

お礼

ありがとうございます 新たな問題が発生しました 4つ目の</a>まで表示(取り出し)させたい場合はどのようにすればよろしいでしょうか

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

(1)PHP5.3以降であれば第3引数にtrueを指定する。 http://www.php.net/manual/ja/function.strstr.php (2)preg_matchで処理する。 <?PHP $str="あいうえお"; $pattern="/^.*(?=う)/u"; preg_match($pattern,$str,$match); print $match[0]; ?> (3)分割して先頭をとる <?PHP $str="あいうえお"; print array_shift(explode("う",$str)); ?> (4)さいあくstrstrして残りをとる <?PHP $str="あいうえお"; print str_replace(strstr($str,"う"),"",$str); ?>

shirouto999
質問者

お礼

ありがとうございます 新たな問題が発生しました 4つ目の</a>まで表示(取り出し)させたい場合はどのようにすればよろしいでしょうか

関連するQ&A

専門家に質問してみよう