не в состоянии захватить значения твиттера и feedburner - PullRequest
0 голосов
/ 10 июля 2011
$rssfeed = "https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=tutorialsbucket";
$twitter = "http://twitter.com/users/show.xml?screen_name=tutorialsbucket"; 

function followers($arg1, $arg2) {  
    $url = array($arg1, $arg2);
        foreach ($url as $value) 
        {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_URL, $value);
            $data = curl_exec($ch);
            curl_close($ch);

            $xml = new SimpleXMLElement($data);
            $fb = $xml->feed->entry['circulation'];
            $tw = $xml->followers_count;

            if (!empty($fb) || !empty($tw))
            {
                return $fb;
                return $tw;
            }
        }
}

Привет, друзья,

Я пишу код, чтобы получить значения моего твиттера и Feedburner.но это не очень хорошо.Я хочу извлечь оба значения в одиночку, но я не могу этого сделать.

1 Ответ

1 голос
/ 10 июля 2011

Вы можете заставить последователей () обрабатывать один из каналов и дважды вызывать функцию, или вы можете вернуть массив с обоими значениями.

$rssfeed = "https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=tutorialsbucket";
$twitter = "http://twitter.com/users/show.xml?screen_name=tutorialsbucket"; 

function followers($url, $twitter) {  
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_URL, $url);
  $data = curl_exec($ch);
  curl_close($ch);

  $xml = new SimpleXMLElement($data);
  if($twitter) {
    return $xml->followers_count;
  }else{
    return $xml->feed->entry['circulation'];
  }
}

$tw = followers($twitter, true);
$fb = followers($rssfeed, false);

или:

$rssfeed = "https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=tutorialsbucket";
$twitter = "http://twitter.com/users/show.xml?screen_name=tutorialsbucket";

function followers($arg1, $arg2) {  
  $url = array($arg1, $arg2);
  $result = array();
  foreach ($url as $value) 
  {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $value);
    $data = curl_exec($ch);
    curl_close($ch);

    $xml = new SimpleXMLElement($data);
    $fb = $xml->feed->entry['circulation'];
    $tw = $xml->followers_count;

    if (!empty($fb))
    {
      $result[] = $fb;
    }elseif(!empty($tw)){
      $result[] = $tw;
    }
  }
  return $result;
}

list($fb, $tw) = followers($rssfeed, $twitter);

Я предпочитаю первый, так как это просто и очевидно, что происходит.Вы можете сделать его еще более общим, используя XPath для извлечения записей и позволяя второму аргументу быть описанием XPath.

...