我的问题是,我想访问我的fb朋友使用curl和解码成json,然后我想只显示那些朋友的名字以字母a开头,如阿曼,亚当等,请帮助me..Following是我的代码。
<?php
// create a new cURL resource
$json_url="https://graph.facebook.com/100001513782830/friends?access_token=AAACEdEose0cBAPdK62FSjs4RvA21efqc8ZBKyzAesT5r4VSpu0XScAYDtKrCxk4PmcRBVzE2SLiGvs2d5FeXvZAD72ZCShwge3vk4DQqRAb8vLlm1W3";
$ch = curl_init( $json_url );
// Configuring curl options
/* $options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array('Content-type: application/json')
);
// Setting curl options
curl_setopt_array( $ch );
*/// Getting results
$result = curl_exec($ch); // Getting jSON result string
$obj = json_decode($result, true);
foreach($obj[data] as $p)
{
echo '
Name: '.$p[name][first].'
Age: '.$p[age].'
';
}发布于 2013-01-29 20:35:42
当然,您将尝试不对"a“进行硬编码,但出于此目的:
foreach($obj[data] as $p){
if(strtolower(substr(trim($p[name][first]),0,1)) == 'a'){
echo 'Name: '.$p[name][first].'Age: '.$p[age];
}
}发布于 2013-01-29 20:45:57
顺便说一句,将安全令牌(在URL中)发布到公共场所并不是一个好主意。
由于名称是string,您可以简单地迭代该数组并按名称进行过滤:
$letter = 'A';
foreach($obj['data'] as $p) {
if ($p['name'][0] == $letter) {
// do something with $p
}
}但是UTF-8有一个小问题--这个解决方案(还有那个带有substr的解决方案)不能处理多字节字符。所以你需要使用mb_substr而不是普通的substr函数:
foreach($obj['data'] as $p) {
if(mb_strtolower(mb_substr($p['name'], 0, 1))) == 'Á'){
echo "Name: ", $p['name'], "\n",
"Age: ", $p['age'], "\n";
}
}https://stackoverflow.com/questions/14582948
复制相似问题