我无法正确使用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.'" />';
}
}
?>
感谢您的意见。
答案 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标签