在回声中放置回声(我在脑海中)

时间:2015-12-06 07:43:57

标签: php echo

我正在尝试将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>";
}
?>

2 个答案:

答案 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>";
}

?>