【问题标题】:Echo a previously established array in php works in normal php but not in echo在 php 中回显先前建立的数组在普通 php 中有效,但在 echo 中无效
【发布时间】:2015-04-10 23:21:26
【问题描述】:

我正在尝试使用 youtube api 在 php 中回显一组对象。当它在正常的内联 php 代码中时,我可以让它正常工作,但我想使用 pjax 来开发我正在使用的网站,所以我需要它回显到 $body 中。我的代码如下

 <?php 
 $keyword = "My Keyword";
 $key = 'My API Key';
 $file = file_get_contents("https://www.googleapis.com/youtube/v3/search?videoEmbeddable=true&videoType=any&part=id%2Csnippet&q=$keyword&videoSyndicated=true&type=video&maxResults=8&key={$key}");

 $decoded = json_decode($file, true);

 $entries = $decoded['items'];

 if (!empty($entries)) {
      for($i=0; $i<count($entries); $i++) {
          $thumb = $entries[$i]['snippet']['thumbnails']['medium']['url'];
          $title = $entries[$i]['snippet']['title'];
          $video = $entries[$i]['id']['videoId'];
          $content[]= "<a class=\"video-toggle\" href=\"http://youtube.com/embed/$video?modestbranding=1&amp;showinfo=0&amp;autoplay=1\" data-toggle=\"modal\" data-target=\"#videoModal\"><img src=\"$thumb\" alt=\"Play Video\"><h3 class=\"recommendations-title\">$title</h3></a>";
      }           
 }

 if (!empty($content)) : 
 foreach($content as $thumb) :
 $recommendedvideos = "<div class='col-md-3 col-sm-6 col-xs-6 col-ts-12       video-box'>$thumb </div> [$i]";
 endforeach; 
 endif; 
 ?>

 <?php $body = "$recommendedvideos"; ?>
 if(isset($_SERVER['HTTP_X_PJAX']) && $_SERVER['HTTP_X_PJAX'] == 'true'):
 else: 
 echo '<div id="main">'.$body.'</div>';

由于某种原因,我只能显示最后一个结果,并且不知道为什么。我尝试了多种不同的解决方案,但似乎无法弄清楚为什么我只将数组中的最后一个返回到页面。就像我说的那样,它在普通的内联 php 上运行良好,但在 echo 中却不行。

【问题讨论】:

  • 这就是你想要回显的echo '&lt;div id="main"&gt;'.$body.'&lt;/div&gt;';
  • 以上部分 由 pjax 库加载,如果不是,则代码将回显 echo '
    '.$body.'
    ';所以上面部分规定了html和$recommendedvideos"

标签: php ajax youtube-data-api


【解决方案1】:

我认为您没有将$recommendedvideos 的信息连接起来。在你的循环之前初始化它:$recommendedvideos = "" 然后在循环中修改它:

$recommendedvideos .= "<div class='col-md-3 col-sm-6 col-xs-6 col-ts-12 video-box'>$thumb </div> [$i]";

当您循环访问$content 时,您会不断重写$recommendedvideos

【讨论】:

  • 所以如果写成 $recommendedvideos.= "
    $thumb
    ";它返回正确的数据,但不断收到错误未定义变量:推荐视频
  • 不知道你所说的集中内容然后循环是什么意思,也许我只是读错了或者不明白对不起。
  • 好的,所以我读到错误的连接现在可以正常工作了,感谢您的帮助,这工作了
猜你喜欢
  • 2016-03-18
  • 2015-02-05
  • 2017-07-12
  • 2023-02-21
  • 2015-11-13
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
相关资源
最近更新 更多