0

外部 XML ファイルをロードし、写真の URL をデータベースにロードする単純な php コードがあります。

次に、URL を取得して自分のサイトに表示します。

問題は、自分のサイトの他の Web サイトから写真を読み込むことになり、読み込み時間に影響を与えることです。現在、1 ページあたり 20 枚の写真を読み込みます。

だから私は考えています.URLだけでなく、画像をデータベースに完全に保存する方法はありますか?

コードは次のとおりです。

    $myfeed = 'xmlfeed.xml';

    $myfeed_xml = simplexml_load_file($myfeed);

    foreach($myfeed_xml->info as $myinfo){
        $pic0 = $myinfo->picture_url[0];
        $pic1 = $myinfo->picture_url[1];
        $pic2 = $myinfo->picture_url[2];
        $pic3 = $myinfo->picture_url[3];
        $pic4 = $myinfo->picture_url[4];  

        if($pic0 != ''){

            mysql_query("INSERT INTO ".$table." (pic0, pic1, pic2, pic3, pic4) VALUES ('$pic0', '$pic1', '$pic2', '$pic3', '$pic4')", $dbh);

        }
    }  

ありがとうございました!

4

1 に答える 1

0

それらをすべてサーバーにダウンロードし、サーバーからのリンクでDBを更新してみませんか?著作権ポリシーが問題ない限り...

// do your DB fetching here

//loop through all current db links
foreach($sqlResult as $result)
{

// build up file path to store newly downloaded image
$fPath="someFolder/pictures/";

// get/generate a name for the pics (I'll just use a radom number here, but you should avoid doing so if you are working with lots of urls as dups may happen)
$iName=mt_rand();

//join path and url together
$pAndURL=$fPath.$iName;

// get and put data
file_put_contents($pAndURL,file_get_contents($result['collumnWhereURLIsStored']);

//now update your DB with the new link ($pAndURL)

}//end of foreach

したがって、上記のコードは、DB内のすべてのサードパーティリンクを通過し、それらのコンテンツ(画像)をサーバーにダウンロードするだけです。次に、特定のイメージへの独自のリンクを使用してDBを更新するだけです。単純。しかし、前に述べたように、あなたが今トラブルに巻き込まれたくないと確信しているので、最初に著作権ライセンスをチェックしてください、うーん?

于 2012-07-14T14:49:44.980 に答える