0
if($url  = file_get_contents("https://api.twitter.com/1/statuses/user_timeline.json?screen_name=".$user)){}
else die("Invalid User");

これは、このスクリプトを実行する良い方法ですか?

4

3 に答える 3

2

私はあなたが何を意味するのかわかりませんが、あなたの呼び出しが正しいかどうか尋ねられたら、ここfile_get_contentsに述べられているように、私はそう言わなければなりません:

On failure, file_get_contents() will return FALSE.
于 2012-05-25T13:00:20.017 に答える
1

はい、あなたのコードは正しいです$url。ページのコンテンツを入力するか、要求された URL がエラー コードになる場合は false を返します。ただし、0または空の文字列の値を持つページも として解釈されるfalseことに注意してください。これを避けるには、strong-matching を使用します!==

if(false !== ($url  = file_get_contents("https://api.twitter.com/1/statuses/user_timeline.json?screen_name=".$user)))

URL が有効であることを確認するだけの場合は、get_headersを使用して、HTTP HEAD リクエストで応答のヘッダーのみをフェッチします。

stream_context_set_default(
    array(
        'http' => array(
            'method' => 'HEAD'
        )
    )
);

$headers = get_headers('http://example.com'. 1);

// get the response code
$parts = explode(' ', $headers[0]);
$code = $parts[1];

if($code == 200) ... // success
if($code == 404) ... // failure

これにより、ページ全体をネットワーク経由で送信する必要がなくなります。

于 2012-05-25T13:00:52.997 に答える
0

空のコンテンツまたはコンテンツもテストに失敗するため、 === false(3 つに注意してください)を確認する必要があります。=0

$http_response_header変数を使用して HTTP ステータス コードを確認することをお勧めします。値は 200 の範囲 (200 ~ 299) である必要があります。

于 2012-05-25T13:06:27.893 に答える