0

我需要在一个名为 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),从这个问题中找到,但是,不确定如何在这个数据库查询中实现它。

谢谢!

4

3 回答 3

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> <?
    ...
于 2013-10-03T10:26:46.043 回答
1

我什至不确定这是否可能,但如果是的话,这是一件坏事。搜索 img-tag 是在数据库中,如果在 PHP 中完成,速度会更快。所以(如果你的 preg_match 是正确的)这样做:

preg_match('/(<img[^>]+>)/i', $str, $matches);

if ($matches[0]){
    echo $matches[0];
}
于 2013-10-03T10:29:04.723 回答
0
preg_match('/(<img[^>]+>)/i', $row['html'], $matches);

if($matches) {
    $img = $matches[0];
} else {
    // set value $img here
}
于 2019-03-12T13:28:57.803 回答