1

サイトからいくつかの画像を取得しようとしていますが、ファイル拡張子が異なるために困惑しています...

preg_match_all() に 2 つの一致があります

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

1 番目は img 名、2 番目は 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 に答える