我有一个 php foreach 循环列出从 MySQL 中提取的新闻故事,作为循环的一部分,故事被打印出来,然后在查询运行以提取,然后显示附加到故事的任何图像。这是它的简化版本:
foreach ($res AS $row) {
printf('<p>%s</p>' . PHP_EOL, nl2br($row['story']));
$qry3 = "select * from tpf_images where news_id=".$row['news_id'];
$res3 = $pdo->query($qry3);
foreach ($res3 AS $row3) {
printf('<a href="/images/%s%s.jpg" rel="lightbox[%s]" title="%s. Photo Credit - %s" >
<img src="/images/%s%s-thumb.jpg" style="max-height: 250px; max-width: 250px" alt="%s"/></a>' . PHP_EOL, $row3['url'], $row3['alt'], $row['headline'], $str ,$row3['credit'], $row3['url'], $row3['alt'], $row3['alt'] );
}
}
它工作正常,但意味着新闻故事的所有图像都在该故事之下。相反,我想要实现的是图像在每个段落的开头作为故事文本的一部分打印出来。故事是用打印出来的nl2br($row['story'])
,用nl2br
一个段落是实现用的
<br /><br />
。那么有没有办法让 php 进行扫描nl2br($row['story'])
,如果它发现<br /><br />
插入了我用于图像 foreach 的文本:
printf('<a href="/images/%s%s.jpg" rel="lightbox[%s]" title="%s. Photo Credit - %s" >
<img src="/images/%s%s-thumb.jpg" style="max-height: 250px; max-width: 250px" alt="%s"/></a>' . PHP_EOL, $row3['url'], $row3['alt'], $row['headline'], $str ,$row3['credit'], $row3['url'], $row3['alt'], $row3['alt'] );
这样,图像将显示在文本正文中,而不是在正文下方。如果结果中的图像比<br /><br />
之前的故事打印出来的其余图像多。
感谢您对此的任何帮助,因为我完全被难住了(另外,不确定标题应该是什么,以便可以根据需要进行编辑以更好地适应)
编辑:尝试使问题更清楚,nl2br($row['story'])
请搜索<br /><br />
. 如果发现它被替换为<br /><image><br />
image 是我用来显示图像的代码,它是:
<a href="/images/%s%s.jpg" rel="lightbox[%s]" title="%s. Photo Credit - %s" >
<img src="/images/%s%s-thumb.jpg" style="max-height: 250px; max-width: 250px" alt="%s"/></a>' . PHP_EOL, $row3['url'], $row3['alt'], $row['headline'], $str ,$row3['credit'], $row3['url'], $row3['alt'], $row3['alt']