0

strpos正しく使用できません。私がそれを検索すれば<br />それを見つけるでしょう。<br /><br /><br />間にスペースがある場合とない場合を検索しても、検索されません。使用htmlspecialcharsすると、文字列がスペースでいっぱいになっていることがわかります。

   <?php
   $picArray = glob('projectData/' . $data['folder'] . '/*.jpg',GLOB_BRACE);

    $text = nl2br($data['definition']).'<br />';

    $cutP = 0;
    foreach($picArray AS $insert) {

        if(strpos($text,'<br /> <br /> <br />',$cutP) !== FALSE){
            $cutP = strpos($text,'<br /> <br /> <br />',$cutP)+6;
            echo $cutP.'_';
            $str_to_insert = '<img class="inTextImg" title="int" src="'.$insert.'" />';
            $text = substr($text, 0, $cutP) . $str_to_insert . substr($text, $cutP);
        }
        else {
            echo 'haha';
            $text .= '<img class="inTextImg" title="outText!" src="'.$insert.'" />';
        }
    }
    ?>

あなたのアイデアをありがとう。

4

2 に答える 2

2

これはnl2br、の直後に元の改行文字が保持されるため'<br />'です。検索するには、文字列に改行文字を含める必要があります。これにはいくつかの異なるパターンが存在する可能性があるため、正規表現を使用してそれに一致させるのが最も簡単です。

$text = preg_replace('/(?:<br \/>\r?\n?){3}/', $str_to_insert, $text);
于 2012-11-28T15:58:00.263 に答える
0

preg_match()を使用してみましたか?

if(preg_match("\(<br />)+\",$text) > 0){
    // code
}

正規表現では100%ではありませんが、1つ以上のbrタグをチェックする正規表現が必要です。

于 2012-11-28T15:50:55.457 に答える