家・車以外で、人生で一番奮発した買い物

指定した文字列以降はあったのですが
http://www.php-ref.com/bapi/02_strstr.html
指定した文字列までを見つけれません…


例えば

あいうえお

と、あった場合
「う」を指定すれば

あい

と出るようにしたい

宜しくお願いします

A 回答 (4件)

1以上の4つまでをとればいいなら以下でどうでしょう?



$pattern="/^(.*?<\/a>){1,4}/isu";
preg_match($pattern,$str,$match);
print htmlspecialchars($match[0]);
//print $match[0];

この回答への補足

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

補足日時:2011/02/09 13:02
    • good
    • 0
この回答へのお礼

例えば2つあった場合、1つしか表示されません。。。

$pattern="/^(.*?<\/a>){4}/isu";
の場合、3つしかない場合は、1つも表示されません

難しいでしょうか。。。

お礼日時:2011/02/15 17:20

>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]);
?>

この回答への補足

ご回答ありがとうございます

$abc = file_get_contents("xxx.html");
$abc = mb_convert_encoding($abc, "UTF-8", "Shift_JIS");
echo $abc;

上記 $abc で 4つ目の</a>まで表示(取り出し)させたいです
3つまでしかない場合3つ目までとか、、、、

厳しいでしょうか

補足日時:2011/02/09 11:24
    • good
    • 0

日本語という事でマルチバイトなのが少し気になってみたり。

( ̄∇ ̄;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. …
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/02/08 17:52

(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);
?>
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/02/08 17:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!