0

Facebook Graph API を使用して、ユーザーのロケール情報を取得しています (更新されたコード):

[more code]
<div id="scoreboard-overview">
    <ul>';
    $num_rows = mysql_num_rows($resulttt);
    $i = 0;
        while($row = mysql_fetch_array($resulttt)) {
            $i = $i + 1;
            $fb_data = json_decode(file_get_contents('http://graph.facebook.com/'. $row['fbID']));
            $fb_locale_str = $fb_data->locale;
            $fb_name_str = $fb_data->first_name;
            $fb_country_str = strtolower(substr($fb_locale_str, -2));
            $flag_uri = '/flags/unknown.gif'; //display a general flag if unknown.
            if (!empty($fb_country_str) && in_array($fb_country_str, $valid_flags) )
                $flag_uri = '/flags/' . $fb_country_str . '.gif';

echo '<li>
        <div class="container">
            <div class="black">
                <img src="https://graph.facebook.com/'. $row['fbID'] .'/picture" alt="" />
            </div>
            <div class="grey">
                '.$i.' '.$fb_name_str.'';
            printf ('<div class="test"><img src="%s" /></div>', $flag_uri); 
    echo '      </div>
            <div class="holder">
                <div class="blue">
                    <p>0<br />'. $row['Time'] .'</p>
                </div>
                <div class="red">
                    <img src="http://ep2.nl/images/star.gif" alt="" />
                </div>
                <div class="yellow">
                    <p>'. $row['Score'] .'</p>
                </div>
            </div> 
        </div>
    </li>';
        }
echo '</ul>
</div>
    [more code]

$row['fbID']ユーザーや友達の Facebook ID (配列で使用)

さて、これは次のような結果をもたらします: en_USwhere enis the users language and USis the users country. 国は私が求めているところです。

次のようなフラグ画像がいくつかありますus.png。これらのフラグには、必要に応じて ISO3166-1 alpha-2 国コードを使用して名前が付けられます。これをトリミングしen_USて後ろにus置き.png、旗の画像を表示できるようにします。しかし、これを行う方法は?

また、ロケールがunknown.pngのようなものを返さない場合の一般的なフラグもいいでしょう。

どうもありがとう、

モーリス

4

1 に答える 1

2

難しくありません。

これを試して:

$valid_flags = array ('us', 'ca', 'mx', '...') //You'll need to populate this one

$fb_data = json_decode(file_get_contents('http://graph.facebook.com/'. $row['fbID']);
$fb_locale_str = $fb_data->location;
$fb_country_str = strtolower(substr($fb_locale_str, -2));
$flag_uri = '/flags/unknown.png'; //display a general flag if unknown.
if (!empty($fb_country_str) && in_array($fb_country_str, $valid_flags) )
    $flag_uri = '/flags/' . $fb_country_str . '.png';
printf ('<div class="grey"><img src="%s" /></div>', $flag_uri);

注意として、echo ステートメント内で file_get_contents を呼び出すべきではありません。

于 2012-05-08T14:56:21.130 に答える