【发布时间】:2012-05-16 23:20:09
【问题描述】:
我正在使用 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_US 其中en 是用户语言,US 是用户国家。国家就是我追求的地方。
我有几个如下所示的标志图像:us.png。这些标志在适当的情况下使用 ISO3166-1 alpha-2 国家代码命名。所以我想将这个en_US 修剪为us 并将.png 放在它后面,这样我就可以显示标志图像。但是如何做到这一点呢?
如果语言环境不返回任何类似于 unknown.png 的内容,也可以作为一个通用标志。
非常感谢,
莫里斯
【问题讨论】:
标签: php json facebook-graph-api texttrimming