Извлечение URL из твитов и получение количества твитов, содержащих этот URL-адрес

Здесь я получаю URL из твитов, конвертируя этот URL в длинный URL.

А затем получить значение счета для чисел твитов, содержащих этот URL.

if(preg_match($reg_exUrl, $tweet, $url)) {
 preg_match_all($reg_exUrl, $tweet, $urls);
 foreach ($urls[0] as $url) {
 echo "Tiny url : {$url}";\
 $full = MyURLDecode($url);
 echo "Full url : $full";
 if (strpos($full, '//t.co') === true) 
 continue;
 if (strpos($full, '//twitter.com') === true) 
 continue;
 else if (strpos($full, '//bit.ly') === true) 
 $full = MyURLDecode($full);
 $url_count = get_twitter_url_count($full);
 echo "Url count: $url_count"; 
 //echo "Numbers of tweets containing this link : ", $code['count']
 echo "";
 }
 } else {
 echo "Mismatch";
 } 

function MyURLDecode($url) 

 {

 $ch = @curl_init($url);

 @curl_setopt($ch, CURLOPT_HEADER, TRUE);

 @curl_setopt($ch, CURLOPT_NOBODY, TRUE);

 @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);

 @curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

 $url_resp = @curl_exec($ch);

 preg_match('/Location:\s+(.*)\n/i', $url_resp, $i);

 if (!isset($i[1]))

 {

 return $url;

 }

 return $i[1];

 }

 function get_twitter_url_count($url) {
 $encoded_url = urlencode($url);
 $content = @file_get_contents('http://urls.api.twitter.com/1/urls/count.json?url=' . $encoded_url);
 return $content ? json_decode($content)->count : 0;
 }

проблема:

  1. Если full_url снова является кратким URL-адресом, тогда получите фактический длинный URL-адрес
  2. Если url ссылается на фото в Twitter, например http://twitter.com/ADSPLAYINDIA/status/415847973210181632/photo/1, то пропустите еще раз, чтобы получить количество твитов

Я добавил continue, но до сих пор не пропустить

1 ответ

Для первой проблемы попробуйте установить для местоположения значение true в вашей функции MyURLDecode

@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

Для вашей второй проблемы я думаю, что strpos никогда не вернет true.Проверьте эту ссылку на комментарий на php.net http://www.php.net/manual/en/function.strpos.php#107240

Пожалуйста, дайте мне знать, если это поможет

благодаря

licensed under cc by-sa 3.0 with attribution.