CodeIgniter
- 1 ответ
- 0 вопросов
1
Вклад в тег
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class getvids
{
public function get($url)
{
// make sure curl is installed
if (function_exists('curl_init')) {
// initialize a new curl resource
$ch = curl_init();
// set the url to fetch
curl_setopt($ch, CURLOPT_URL,$url);
// don't give me the headers just the content
curl_setopt($ch, CURLOPT_HEADER, 0);
// return the value instead of printing the response to browser
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// use a user agent to mimic a browser
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7');
$resultdata = curl_exec($ch);
// remember to always close the session and free all resources
curl_close($ch);
} else {
// curl library is not installed so we better use something else
}
$rssstring = $resultdata;
preg_match_all("#<openSearch:totalResults>(.*?)</openSearch:totalResults>#s",$rssstring,$resultcount);
$resultcount = $resultcount[1][0];
preg_match_all("#<item(.*?)</item>#s",$rssstring,$items);
$n=count($items[0]);
for($i=0;$i<$n;$i++){
$rsstemp= $items[0][$i];
preg_match_all("#<media:title(.*?)>(.*?)</media:title>#s",$rsstemp,$titles);
if (isset($titles))
{
$title = $titles[2][0];
}
else
{
$title = 'No title for this video';
}
preg_match_all("#<yt:videoid>(.*?)</yt:videoid>#s",$rsstemp,$vidid);
$vidid = $vidid[1][0];
preg_match_all("#<author>(.*?)</author>#s",$rsstemp,$author);
$author = $author[1][0];
preg_match_all("#<yt:uploaded>(.*?)</yt:uploaded>#s",$rsstemp,$published);
$published= $published[1][0];
preg_match_all("#<yt:rating numDislikes='(.*?)' numLikes='(.*?)'/>#s",$rsstemp,$likesrat);
if (isset($likesrat[2][0]))
{
$likes = $likesrat[2][0];
$dislikes = $likesrat[1][0];
}
else
{
$likes = 0;
$dislikes =0;
}
preg_match_all("#<yt:statistics favoriteCount='(.*?)' viewCount='(.*?)'/>#s",$rsstemp,$fave);
if (isset($fave[1][0]))
{
$views = $fave[2][0];
$favecount = $fave[1][0];
}
else
{
$views = '0';
$favecount = '0';
}
preg_match_all("#<media:keywords>(.*?)</media:keywords>#s",$rsstemp,$keys);
if (empty($keys [1][0])) $keys [1][0] = "no, key, words, found, for, this , video";
$keys = $keys [1][0];
$keys = explode (', ',$keys);
foreach ($keys as $num => $key)
{
$keys[$num] = array('keyword'=>$key);
}
$thumb = "http://i2.ytimg.com/vi/".$vidid."/default.jpg";
$data[$i] = array(
'vidid' => $vidid ,
'author' => $author ,
'vidtitle' => $title ,
'vidthumb' => $thumb ,
'vidpublished' => $published ,
'views' => $views ,
'favecount' => $favecount ,
'uploadscount' => $resultcount,
'keys'=>$keys ,
'likes' => $likes ,
'dislikes' => $dislikes,
'videofetched' => $n
) ;
}
if (empty($data)) { $data[] =
array(
'vidid' => '' ,
'vidtitle' => '' ,
'vidthumb' => '' ,
'vidpublished' => '' ,
'views' => '',
'favecount' => '' ,
'uploadscount' => '',
'keys'=>'' ,
'likes' => '' ,
'dislikes' => '' ,
) ;
; }
return $data;
}
public function getinfo($id)
{
// make sure curl is installed
if (function_exists('curl_init')) {
// initialize a new curl resource
$ch = curl_init();
// set the url to fetch
curl_setopt($ch, CURLOPT_URL,'http://gdata.youtube.com/feeds/api/users/'.$id.'?v=2&alt=rss');
// don't give me the headers just the content
curl_setopt($ch, CURLOPT_HEADER, 0);
// return the value instead of printing the response to browser
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// use a user agent to mimic a browser
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7');
$resultdata = curl_exec($ch);
// remember to always close the session and free all resources
curl_close($ch);
} else {
// curl library is not installed so we better use something else
}
$rssstring = $resultdata;
preg_match_all("#<author>(.*?)</author>#s",$rssstring,$author);
$data['title'] = $author[0][0];
preg_match_all("#<yt:aboutMe>(.*?)</yt:aboutMe>#s",$rssstring,$aboutme);
if (isset($aboutme[0][0]))
{
$data['aboutme'] = $aboutme[0][0];
}
else
{
$data['aboutme'] = 'nothing';
}
preg_match_all("#<yt:firstName>(.*?)</yt:firstName>#s",$rssstring,$firstname);
if (isset($firstname[1][0]))
{
$data['firstname'] = $firstname[1][0];
}
else
{
$data['firstname'] = $data['title'];
}
preg_match_all("#<yt:statistics lastWebAccess='(.*?)' subscriberCount='(.*?)' videoWatchCount='(.*?)' viewCount='(.*?)' totalUploadViews='(.*?)'/>#s",$rssstring,$info);
$data['lastaccess'] = $info[1][0];
$data['subscriberCount'] = $info[2][0];
$data['videoWatchCount'] = $info[3][0];
$data['viewCount'] = $info[4][0];
$data['totalUploadViews'] = $info[5][0];
preg_match_all("#<media:thumbnail url='(.*?)'/>#s",$rssstring,$thumb);
$data['thumb'] = $thumb[1][0];
preg_match_all("#<yt:location>(.*?)</yt:location>#s",$rssstring,$location);
$data['location'] = $location[1][0];
return $data;
}
}
?>