我需要检索每个视频频道的“观看次数”,并且我正在使用这个库 。这是我的代码
好的,代码可以正常工作并打印我每个视频的观看次数,除了我在其他一些视频中收到这些警告而没有打印观看次数
遇到 PHP 错误 严重性:警告消息:
- simplexml_load_string() [function.simplexml-load-string]:实体:第 547 行:解析器错误:属性构造错误
- 消息:simplexml_load_string() [function.simplexml-load-string]: outube_gdata'/>
- 消息:simplexml_load_string() [function.simplexml-load-string]: ^
- 消息:simplexml_load_string() [function.simplexml-load-string]:实体:第 547 行:解析器错误:找不到开始标记链接第 547 行的结尾
- 消息:simplexml_load_string() [function.simplexml-load-string]: outube_gdata'/>
我怎样才能处理这么多视频和频道而不会导致此警告消息并及时丢失,因为如果我在一个视频较少的频道上尝试相同的代码我没有错误
$channels=array('google','apple','mac','xyz','abc','test');
for ($j=0; $j<count($channels) $j++)
{
$JSON = file_get_contents("https://gdata.youtube.com/feeds/api/users/".$channels[$j]."/uploads?v=2&alt=jsonc&max-results=0");
$JSON_Data = json_decode($JSON);
$total_videos = $JSON_Data->{'data'}->{'totalItems'};
for($i=1; $i<=$total_videos; )
{
$this->get_userfeed($channels[$j],$maxresult=20,$start=$i);
$i+=20;
}
}
public function get_userfeed($ch_id,$maxresult=10,$start=0,$do=null)
{
$output = $this->youtube->getUserUploads($ch_id, array('max-results'=>$maxresult,'start-index'=>$start));
$xml = simplexml_load_string($output);
// single entry for testing
foreach($xml->entry as $entry)
{
foreach($entry->id as $key=>$val)
{
$id = explode('videos/', (string)$val);
$JSON = file_get_contents("https://gdata.youtube.com/feeds/api/videos/".$id[1]."?v=2&alt=json");
$JSON_Data = json_decode($JSON);
$v_count = $JSON_Data->{'entry'}->{'yt$statistics'}->{'viewCount'};
if($v_count == NULL) $v_count =0;
echo $v_count;
// store the v_count into database
}
}
}