Yahoo SQL APIからRSSフィードを取得し、PHP経由でファイルに保存しようとしています。コードは次のとおりです。重複を作成せずにDBを更新する
if(filemtime($cache) < (time() - 10800)) {
if (!file_exists(dirname(__FILE__) . '/cache')) {
mkdir(dirname(__FILE__) . '/cache', 0777);
}
$path = "http://query.yahooapis.com/v1/public/yql?q=";
$path .= urlencode("SELECT * FROM feed WHERE url='http://url'");
$path .= "&format=json";
$feed = file_get_contents($path, true);
if (is_object($feed) && $feed->query->count) {
$cachefile = fopen($cache, 'wb');
fwrite($cachefile, $feed);
fclose($cachefile);
}
}
else {
$feed = file_get_contents($cache);
}
問題があります。今私は結果をデータベースに保存したいと思います。しかし、私はそれをファイルに保存して3時間以内に更新しているので、私はRSSエントリを複製するために実行することを確信しています。私はそれらの複製をDBに保存したくありません。
これを達成するための効率的なアプローチはありますか?
... INSERT INTOの違いを無視を使って、あなたを与えますか? – rekire
私はfile_get_contentsがオブジェクトを返すとは思わない... – ajreal