我需要在一个名为html的字段中查找MySQL查询中的第一个图像标记(包含博客帖子的HTML。这是我正在使用的查询和while循环...
$query = mysqli_query($dbleads, "SELECT title, html FROM plugin_blog ORDER BY date_added DESC");
while ($row=mysqli_fetch_array($query)){
$i = 1;
$i++;
?>
<!-- echo $row['title'] to be replaced with first image tag in html column -->
<div class="masonryImage" style="width: 300px; height:250px;"> <? echo $row['title']; ?></div> <?
if ($i%2 == 0) { ?>
<div class="masonryImage tweets" style="width:300px; height:175px;"><div class="tweet-content"><? echo $value['text']; ?></div></div>
<?
}
}
// extra parentesis from previous loop from Twitter, meant to be here
}
我正在考虑preg_match('/(<img[^>]+>)/i', $str, $matches)
之类的内容,如this question所示,但不确定如何在此数据库查询中实现它。
谢谢!
答案 0 :(得分:1)
while ($row=mysqli_fetch_array($query)){
$i = 1;
$i++;
preg_match('/(<img[^>]+>)/i', $row['html'], $matches);
$img = $matches[1];
if($img) {
echo $img;
} else {
// else goes here
}
?>
<!-- echo $row['title'] to be replaced with first image tag in html column -->
<div class="masonryImage" style="width: 300px; height:250px;"> <? echo $row['title']; ?></div> <?
...
答案 1 :(得分:1)
我甚至不确定它是否可能,但如果可能的话,这样做是件坏事。搜索img-tag虽然在数据库中,但如果在PHP中完成则更快。所以(如果你的preg_match是正确的)这样做:
preg_match('/(<img[^>]+>)/i', $str, $matches);
if ($matches[0]){
echo $matches[0];
}
答案 2 :(得分:0)
preg_match('/(<img[^>]+>)/i', $row['html'], $matches);
if($matches) {
$img = $matches[0];
} else {
// set value $img here
}