1

我试图从一个网站上抓取一些图片,但由于文件扩展名不同而被难住了......

我在 preg_match_all() 中有 2 个匹配项

if (preg_match_all('~http://foo.com/foo_(.*?).(.*?)~i', $returned_content, $matches)) {

第一个是 img 名称,第二个是 img 扩展名,想弄清楚每个扩展名是什么,以便稍后在代码中使用它:

更新,完整代码:

       //cURL function here get_data()

 $returned_content = get_data('http://foo.com/page/2');

        if (preg_match_all('~http://foo.com/foo_(.*?)\.(.*?)~i', $returned_content, $matches)) {

   foreach ($matches[1] as $key) {

    $file = 'http://foo.com/foo_' . $key . 'correct extension';// Need to have correct extension here
        echo '<img src="' . $file . '" alt="" />';
           }
        }
4

1 回答 1

1
<?php
$returned_content = "sdfasdfsdfshttp://foo.com/foo_sdfsdfsdf.fdfdsf";
preg_match_all('~http\://foo\.com/foo_(.*?)\.(.*?)$~i', $returned_content, $matches);
print_r($matches);

退货

Array
(
[0] => Array
    (
        [0] => http://foo.com/foo_sdfsdfsdf.fdfdsf
    )

[1] => Array
    (
        [0] => sdfsdfsdf
    )

[2] => Array
    (
        [0] => fdfdsf
    )

)

除非:和。位于字符块 []、: 和 . 被用作修饰符,它们必须被转义。

于 2012-06-14T19:06:05.753 回答