各ビデオ チャネルの「ビュー カウント」を取得する必要があり、このライブラリを使用しています 。これは私のコードです
わかりましたコードは正常に動作し、各ビデオのビュー カウントを出力します。ただし、ビュー カウントを出力せずに他のビデオでこれらの警告が表示された場合を除きます。
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'/>
この警告メッセージを発生させずに、この多数のビデオとチャネルをどのように扱うことができますか。時間内に失われることはありません。ビデオの少ない 1 つのチャネルで同じコードを試しても、エラーは発生しません。
$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
}
}
}