如何在确保echo内部的PHP执行时回显某些内容?

时间:2011-07-27 23:33:16

标签: php escaping echo

对不起,有时候我很难解释自己。为什么我不从头开始。

我有这段代码:

Posted Under <span class="cat-name">
<?php 
   $category = get_the_category();
   echo $category[0]->cat_name; ?>

我想在发布之前确保在$ category [0] - &gt; cat_name中实际存在某些内容。所以我决定做一个if \ isset语句:

<?php 
if (isset($category[0]->cat_name)) echo // This is where I'd put the above code. ?>

显然,我只是不完全确定如何做到这一点。我知道我必须逃避报价,但即便如此也不行。这是我尝试过的:

<?php if (isset($category[0]->cat_name))
     echo "Posted Under <span class=\"cat-name\">
     <?php 
        $category = get_the_category();
        echo $category[0]->cat_name; ?></span>" 
     ?>

但没有运气。有任何想法吗?有没有更好的方法来实现这一目标?提前谢谢。

1 个答案:

答案 0 :(得分:4)

您可以跨if()<?php ... ?>跨越混合HTML和PHP代码。为了便于阅读,我将使用冒号而不是大括号。

<?php
    $category = get_the_category();
    // let's be extra safe
    if (isset($category[0]->cat_name)):
?>
    Posted Under <span class="cat-name">
        <?php echo htmlspecialchars($category[0]->cat_name) ?>
    </span>
<?php endif ?>