現在、スプレッドシート(Webサイトのリストを含む)をデータベースにインポートできます。ボタンをクリックすると、データベース内のドメインごとにGoogleがインデックスに登録したページ数が取得されます。
約400リクエストまでは問題なく動作し、その後、リクエストは何も返されません。私が間違って何をしているのか、またはこれをどのように機能させるのかわからない-何かアイデアはありますか?
try {
require('db.php');
$conn = new PDO ( "mysql:host=localhost;dbname=" . $database, $user, $pass );
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$stmt = $conn->query('SELECT `url` FROM domains');
$stmt->setFetchMode(PDO::FETCH_ASSOC);
while($row = $stmt->fetch()){
$id = $row['id'];
$url = $row['url'];
$pages = getIndexedPageCount($url);
if ( $pages > 0 ) {
$status = 1;
} else {
$status = 0;
}
$prep = $conn->prepare("
UPDATE `domains`
SET
url = :url,
pages = :pages,
status = :status
WHERE url = :url
");
$prep->execute(array(
':url' => $url,
':pages' => $pages,
':status' => $status
));
}
} catch ( PDOException $e ) {
echo 'Error: ' . $e->getMessage();
exit;
}
function getIndexedPageCount($domain) {
// remove http:// and https://
if ( strpos( $domain, 'http:' ) == 0 ) { $domain = str_replace('http://', '', $domain); }
if ( strpos( $domain, 'https:' ) == 0 ) { $domain = str_replace('https://', '', $domain); }
$content = file_get_contents('https://www.googleapis.com/customsearch/v1?key={{Removed API Key}}&q=site:' . $domain);
if (strlen($content) > 1) {
$data = json_decode($content);
return intval($data->searchInformation->totalResults);
}
else {
echo "Error: URL does not exist.";
}
}
どんな助けでも大歓迎です。誰かがアイデアを持っているなら、私はそれを機能させようとします!