0

我有一个 Mysql 论坛数据库,我需要在特定的 url 上查询一组特定图像的所有帖子。

网址是托管在我们无权访问的子域上的图像,例如“ http://images.website.com/images/randomnumberhere.jpg ”。

我需要一个 mysql 查询来将它们拉出来并将它们处理成一个列表,我们稍后可以循环通过它来抓取它们并移动它们。(我处理了这部分)

我是一个 php/mysql 程序员,但这感觉像是一个正则表达式问题,我对此还不是很好。

问题是我们没有图像列表,这是一个很大的随机数(据我所知)。所以我需要的是一个像“images.website.com/images/(randomnumbers).jpg”这样的字符串,然后将它们放入一个列表中。

4

3 回答 3

2

你可以得到所有花哨的裤子,并使用正则表达式,但你也可以尝试一个简单的

SELECT * FROM image_table WHERE image_source LIKE '%images.website.com/images/%'

这是你想要的?

于 2013-04-22T13:10:56.820 回答
1

如果您希望从数据库中提取所有文本,然后使用 PHP 创建图像列表,请尝试以下操作:

$image_list = array();

while($row = $sql->fetch_array())
{
    $text = $row['text'];
    /* Changed to preg_match_all */
    if(preg_match_all("/http:\/\/images.website.com\/images\/[0-9]+\.(jpg|jpeg|png|gif)/i", $text, $matches))
    {
        $image_list[] = $matches[0];
    }
}

没什么特别的,我没有测试它,但它应该可以工作。这是一个硬编码的正则表达式,它与您正在寻找的 URL 相匹配。您可能需要对其进行修改,以便它可以匹配数组中的多个域或其他内容,但它应该可以帮助您入门。

编辑:应该提到你可以循环通过 $image_list 数组来显示图像,或者你要对它们做什么。

于 2013-04-22T13:45:07.030 回答
0
$rand = //rand() function or whatever you would like to create the random number, since you didn't give ranges, it might be an array aswell;
$string = "images.website.com/images/$rand.jpg";

甚至是一个简单的循环:

for ($i = 1; $i < 100; $i++) {
echo $string = "images.website.com/images/$i.jpg";
}

由您决定如何将它与您的数据库一起使用

于 2013-04-22T13:10:03.933 回答