我正在尝试将Twitch.tv直播流嵌入到回显中(以便流在线时显示,但在离线时显示文本)。这是我第一次使用echos学习。只要我只显示文本,我就可以使用它,但是当我插入短代码,iframe,甚至只是html来显示图像时,我得到一个解析错误。
以下是我想要插入回显的ONLINE INFO的代码:
<?php echo do_shortcode('[embedTwitch username="CHANNELNAME" width="100%"]'); ?>
以下是我尝试将其插入的代码(特别是在ONLINE INFO区域中):
<?php $streamChannel = "CHANNELNAME";
$json_array = json_decode(file_get_contents("https://api.twitch.tv/kraken/streams.json?channel=$streamChannel"), true);
if(isset($json_array['streams'][0]['channel'])) {
echo "<div id='streamonline'>ONLINE INFO</div></div>";
} else {
echo "<div id='streamoffline'>OFFLINE INFO</div>";
}
?>
两者都独立于另一个,但当我尝试将流插入变量在线/离线代码时,我收到错误。以下是我正在做的错误:
<?php $streamChannel = "CHANNELNAME";
$json_array = json_decode(file_get_contents("https://api.twitch.tv/kraken/streams.json?channel=$streamChannel"), true);
if(isset($json_array['streams'][0]['channel'])) {
echo "<div id='streamonline'><?php echo do_shortcode('[embedTwitch username="CHANNELNAME" width="100%"]'); ?></div></div>";
} else {
echo "<div id='streamoffline'>OFFLINE INFO</div>";
}
?>
答案 0 :(得分:3)
你已经在PHP标签内,所以你需要做的就是调用函数&amp;级联:
~
答案 1 :(得分:1)
你要做的是称为字符串连接的东西。您需要回显单个字符串,这是两个字符串放在一起的结果。 PHP没有“回声内部回声”的概念。
这是一个简单的例子:
$hello = 'Hello ';
$world = 'world!';
echo $hello . $world; // Hello world!
两个变量之间的句点.
称为string concatenation operator。
由于do_shortcode()
函数的结果是一个字符串,您只需要确保它在字符串的其余部分之间添加。以下是您修改的代码:
<?php
$streamChannel = "CHANNELNAME";
$json_array = json_decode(file_get_contents("https://api.twitch.tv/kraken/streams.json?channel=$streamChannel"), true);
if (isset($json_array['streams'][0]['channel'])) {
echo "<div id='streamonline'>" . do_shortcode('[embedTwitch username="CHANNELNAME" width="100%"])' . "</div>";
} else {
echo "<div id='streamoffline'>OFFLINE INFO</div>";
}
?>