MySQL からプルされたニュース ストーリーを一覧表示する php foreach ループがあります。ループの一部として、ストーリーが印刷され、クエリの下でプルが実行され、ストーリーに添付されている画像が表示されます。これはそれの単純化されたバージョンです:
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'])
を使用して で実現されます。phpがスキャンする方法はありますか?それが見つかった場合は、画像foreachに使用しているテキストを挿入します:nl2br
<br /><br />
nl2br($row['story'])
<br /><br />
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 />
見つかった場合は、次の画像を表示するために使用するコードである画像に置き換えられます。
<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']