PHP Youtube: отметка времени / продолжительности на механизме миниатюр - PullRequest
0 голосов
/ 29 марта 2012

У меня проблемы с отображением эскиза со временем DURATION. Код отображает миниатюру, но без времени. Кроме того, мнения выходят с результатом O просмотров. Все остальное подбирается правильно.

    <?php
error_reporting(E_ALL);
$feedURL = 'http://gdata.youtube.com/feeds/api/users/YOURUSERNAME/uploads?max-results=2';
$sxml = simplexml_load_file($feedURL);
$i=0;
foreach ($sxml->entry as $entry) {
      $media = $entry->children('media', true);
      $watch = (string)$media->group->player->attributes()->url;
      $thumbnail = (string)$media->group->thumbnail[0]->attributes()->url;

      // get <yt:duration> node for video length
      $yt = $entry->children('http://gdata.youtube.com/feeds/api/users/YOURUSERNAME/uploads?max-results=2');
      $attrs = $yt->duration->attributes();


      // get <yt:stats> node for viewer statistics
        $yt = $entry->children('http://gdata.youtube.com/feeds/api/users/YOURUSERNAME/uploads?max-results=2');
        $attrs = $yt->statistics->attributes();
        $viewCount = $attrs['viewCount']; 
      ?>


      <div class="videoitem" style="height:">

        <div class="videotitle" style="float:right; width:220px; ">
            <h3 ><a href="<?php echo $watch; ?>" class="watchvideo"><?php echo $media->group->title; ?></a></h3>
            <p><?php 
      echo sprintf("%0.2f", $length/60) . " min. | 
        {$viewCount} views<br/>\n"; ?>
       </p>

        </div>
        <div class="videothumb" style="height:100px;"><a href="<?php echo $watch; ?>" class="watchvideo"><img src="<?php echo $thumbnail;?>" alt="<?php echo $media->group->title; ?>" width="150px" height="85px" /></a></div>

      </div>      
<?php $i++; if($i==3) { echo '<div class="clear small_v_margin"></div>'; $i=0; } } ?>

1 Ответ

3 голосов
/ 29 марта 2012

Вы передаете неправильный URI методу children. Фиксированный код:

  // get <yt:duration> node for video length
  $yt = $media->children('http://gdata.youtube.com/schemas/2007');
  $attrs = $yt->duration->attributes();
  $length = $attrs['seconds'];

  // get <yt:stats> node for viewer statistics
  $yt = $entry->children('http://gdata.youtube.com/schemas/2007');
  $attrs = $yt->statistics->attributes();
  $viewCount = $attrs['viewCount'];
...