4

グラバターが存在するかどうかを確認しようとしています。以前の質問で推奨されている方法を試してみると、「警告: get_headers() [function.get-headers]: この関数は URL に対してのみ使用できます」というエラーが表示されます。PSグラバターが存在しない場合、複数のデフォルトの可能性がある可能性があるため、グラバターが提供するデフォルトの画像を指定したくありません。

また、ホストがアクセスを許可していないと思われる ini ファイルに関連している可能性があるエラーへの参照を見つけました。もしそうなら、getheaders に代わるものはありますか? どうもありがとう。

$email = $_SESSION['email'];
$email= "person@gmail.com"; //for testing
$gravemail = md5( strtolower( trim( $email ) ) );
$gravsrc = "http://www.gravatar.com/avatar/".$gravemail;
$gravcheck = "http://www.gravatar.com/avatar/".$gravemail."?d=404";
$response = get_headers('$gravcheck');
echo $response;
exit;
if ($response != "404 Not Found"..or whatever based on response above){
$img = $gravsrc;
}
4

2 に答える 2

12

観察

A.get_headers('$gravcheck');一重引用符を使用しているため機能しません'

B. 呼び出しexit;によってスクリプトが途中で終了する

C. instedを使用して情報を印刷するために$response使用できない配列を返すechoprint_r

D.は配列$response != "404 Not Found"であるため機能しません$response

これはそれを行う適切な方法です:

$email= "person@gmail.com"; //for testing
$gravemail = md5( strtolower( trim( $email ) ) );
$gravsrc = "http://www.gravatar.com/avatar/".$gravemail;
$gravcheck = "http://www.gravatar.com/avatar/".$gravemail."?d=404";
$response = get_headers($gravcheck);
print_r($response);
if ($response[0] != "HTTP/1.0 404 Not Found"){
    $img = $gravsrc;
}
于 2012-05-03T22:54:57.917 に答える