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% 的正则表达式,但你会想要一个检查一个或多个 br 标签

于 2012-11-28T15:50:55.457 回答