Echo a previously established array in php works in normal php but not in echo
Echo a previously established array in php works in normal php but not in echo
我正在尝试使用 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&showinfo=0&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>';
出于某种原因,我只能显示最后一个结果,但我真的不知道为什么。我尝试了多种不同的解决方案,但似乎无法真正弄清楚为什么我只 returns 数组中的最后一个到页面。就像我说的那样,它在普通内联 php 上工作正常,但在 echo.
上却不行
我认为您没有为 $recommendedvideos
连接您的信息。在你的循环之前初始化它:$recommendedvideos = ""
然后在循环中修改它:
$recommendedvideos .= "<div class='col-md-3 col-sm-6 col-xs-6 col-ts-12 video-box'>$thumb </div> [$i]";
当你遍历 $content
时,你会不断重写 $recommendedvideos
我正在尝试使用 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&showinfo=0&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>';
出于某种原因,我只能显示最后一个结果,但我真的不知道为什么。我尝试了多种不同的解决方案,但似乎无法真正弄清楚为什么我只 returns 数组中的最后一个到页面。就像我说的那样,它在普通内联 php 上工作正常,但在 echo.
上却不行我认为您没有为 $recommendedvideos
连接您的信息。在你的循环之前初始化它:$recommendedvideos = ""
然后在循环中修改它:
$recommendedvideos .= "<div class='col-md-3 col-sm-6 col-xs-6 col-ts-12 video-box'>$thumb </div> [$i]";
当你遍历 $content
时,你会不断重写 $recommendedvideos