ツイートが存在するかどうかを確認する方法が必要です。のようなツイートへのリンクがありhttps://twitter.com/darknille/status/355651101657280512
ます。私は(ページの本文を取得せずにHEADリクエストだけで)チェックするための高速な方法が必要なので、このようなことを試しました
function if_curl_exists($url)
{
$resURL = curl_init();
curl_setopt($resURL, CURLOPT_URL, $url);
curl_setopt($resURL, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($resURL, CURLOPT_HEADERFUNCTION, 'curlHeaderCallback');
curl_setopt($resURL, CURLOPT_FAILONERROR, 1);
$x = curl_exec ($resURL);
//var_dump($x);
echo $intReturnCode = curl_getinfo($resURL, CURLINFO_HTTP_CODE);
curl_close ($resURL);
if ($intReturnCode != 200 && $intReturnCode != 302 && $intReturnCode != 304) {
return false;
}
else return true;
}
またはこのように
function if_curl_exists_1($url)
{
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_NOBODY, true);//head request
$result = curl_exec($curl);
$ret = false;
if ($result !== false) {
//if request was ok, check response code
echo $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($statusCode == 200) {
$ret = true;
}
}
curl_close($curl);
return $ret;
}
しかし、両方とも で null を返しますcurl_exec()
。http ステータス コードをチェックするものは何もありません。
GET statuses/show/:id
もう 1 つの方法は、 https: //dev.twitter.com/docs/api/1.1/get/statuses/show/%3Aid のような Twitter API を使用することですが、前述のように、ツイートが存在しない場合は特別な戻り値はありません。こちらhttps://dev.twitter.com/discussions/8802
チェックする最速の方法についてアドバイスが必要です。私はphpでやっています。