0

Facebook からユーザー プロファイル ID またはユーザー名を取得する関数を作成しようとしています。そこのURLをフォームに入力すると、それがFacebookのプロフィールページなのか他のページなのかを調べようとしています。問題は、彼らがサブドメインを持つアプリページまたは他のページに入った場合、そのリクエストを無視したいということです.

今私は持っています:

    $author_url = http://facebook.com/profile?id=12345;
            if(preg_match("/facebook/i",$author_url)){
            $parse_author_url = (parse_url($author_url));
            $parse_author_url_q = $parse_author_url['query'];
                if(preg_match('/id[=]([0-9]*)/', $parse_author_url_q, $match)){
                    $fb_id = "/".$match[1];}
                else{ $fb_id = $parse_author_url['path'];
                }
            $grav_url= "http://graph.facebook.com".$fb_id."/picture?type=square";
}
echo $gav_url;

これは、 $author_url「id=」がある場合に機能し、それをプロファイル ID として使用します。そうでない場合は、ユーザー名またはページ名である必要があるため、代わりにそれを使用します。URL に facebook が含まれているがサブドメインである場合は無視するというチェックをもう 1 つ実行する必要があります。最初のpreg_matchでそれができると信じていますpreg_match("/facebook/i",$author_url)

ありがとう!

4

2 に答える 2

1

Facebookのサブドメインを無視するには、次のことを確認できます

$parse_author_url['host']

ですfacebook.com

それ以外の場合、login.facebook.comまたはapps.facebook.com続行する必要はありません。

または、URL が次のように始まることを確認することもできますhttp://facebook.com

if(preg_match("@(?:http://)?facebook@i",$author_url)){
于 2010-09-17T02:38:55.237 に答える