php strpos在搜索时不工作<br/> <br/>在nl2br()之后

时间:2012-11-28 15:44:12

标签: php strpos

我无法正确使用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.'" />';
        }
    }
    ?>

感谢您的意见。

2 个答案:

答案 0 :(得分:2)

这是因为nl2br会在'<br />'之后保留原始换行符。您需要在要搜索的字符串中包含换行符。由于可以有一些不同的模式,因此最容易使用正则表达式来匹配它:

$text = preg_replace('/(?:<br \/>\r?\n?){3}/', $str_to_insert, $text);

答案 1 :(得分:0)

您是否尝试过使用preg_match()?

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

正则表达式不是100%,但你需要一个检查一个或多个br标签

相关问题