0

我的问题是我想使用 curl 访问我的 fb 朋友并将其解码为 json,然后我只想显示那些名字以字母 a 开头的朋友,例如 aman、adam 等请帮助我..以下是我的代码。

<?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].'

        ';

    }
4

2 回答 2

0

顺便说一句,将安全令牌(在 URL 中)发布到公共场所不是一个好主意。

由于名称是字符串,您可以简单地遍历该数组并按名称过滤:

$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";
    }
}
于 2013-01-29T12:45:56.533 回答
0

您当然会尽量不要硬编码“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-29T12:35:41.697 回答