1

ユーザーが入力したり、ページソースを読み取ったりして取得できる文字列からファイルを抽出しています。

すべての .jpg 画像 URL を抽出したい

したがって、私は次のテキストを使用しています (例のテキストを示しています) が、a) 最初のもののみを返し、b) '.jpg' を見逃しています

$word1='http://';
$word2='.jpg';

$contents = 'uuuuyyyyyhttp://image.jpgandagainhereitishttp://image2.jpgxxxxcccffff';

$between=substr($contents, strpos($contents, $word1), strpos($contents, $word2) - strpos($contents, $word1));

echo $between;  

これを行うためのより良い方法はありますか?

Web ページを解析する場合、単純な DOM を使用できません。たとえば$images = $dom->getElementsByTagName('img');、画像参照が標準タグにない場合があるためです。

4

2 に答える 2

0

preg_match_all(以前に回答したように)を使用してこれを行うか、または次の関数を使用することができます。

元の文字列を分解し、すべての部分で有効なリンクをチェックして配列に追加するだけで、返されます。

function getJpgLinks($string) {
    $return = array();
    foreach (explode('.jpg', $string) as $value) {
        $position = strrpos($value, 'http://');
        if ($position !== false) {
            $return[] = substr($value, $position) . '.jpg';
        }
    }
    return $return;
}
于 2012-08-05T02:23:27.343 に答える
0

次のようなことができます:

<?php

$contents = 'uuuuyyyyyhttp://image.jpgandagainhereitishttp://image2.jpgxxxxcccffff';

$matches = array();

preg_match_all('#(http://[^\s]*?\.jpg)#i',$matches);

print_r($matches);
于 2012-08-05T01:05:14.293 に答える