【问题标题】:Why won't this echo in PHP?为什么这不会在 PHP 中回显?
【发布时间】:2009-07-19 18:59:29
【问题描述】:

我很好奇为什么这不会回显 HTML;我仔细阅读了 SO 中与回显和打印有关的其他问题。

它必须是字符串中的 PHP while 循环,但我已经转义了双引号。发生了一些更复杂的事情,即错误“WP-Query 类的对象无法转换为字符串。”

我是否过于简单地尝试回显 PHP?

针对某些格式进行了编辑(起初不想使用)。

而且,我需要做的是回显查询循环生成的 HTML,因为那是 wordpress 帖子的链接。

<?php $d=date("D"); if (in_array($d, array('Thu','Fri','Sat','Sun')))

echo "The latest post for Thursday, Friday, Saturday, Sunday:

<?php $my_query = new WP_Query('category_name=posts&showposts=1'); ?>

<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>

<a href=\"<?php the_permalink() ?>\" rel=\"bookmark\"><?php the_title(); ?></a>.

<?php endwhile; ?>" ;?>

'坦克,马克

【问题讨论】:

  • 请格式化代码。您将更有可能得到答案
  • 这段代码存在多个问题
  • 您实际上可以在代码的这个语法高亮版本中看到问题......

标签: php arrays echo


【解决方案1】:

你没有关闭你的字符串 - 它应该是:

<?php
$d=date("D");

if (in_array($d, array('Thu','Fri','Sat','Sun')))
    echo "The latest post for Thursday, Friday, Saturday, Sunday: ";

$my_query = new WP_Query('category_name=posts&showposts=1');

while ($my_query->have_posts())
{
    $my_query->the_post();
    ?><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>.<?php
}
?>

顺便说一句,您的格式不是很好。换行符不贵!

【讨论】:

  • 但是我需要使用查询循环生成指向最新帖子的 HTML 链接,但这并没有这样做......
  • 我不明白你的意思 - 它应该做同样的事情(除了没有错误)
  • 我再次对其进行了测试,实际上它的作用是在一周的其他日子(周一至周三)回显最新的帖子链接,而不是根本不回显任何内容。所以它会一直生成并回显链接,并且在周四、周五、周六、周日也会回显“最新帖子...”这一行....
【解决方案2】:

你不能那样使用 PHP。试试这个:

$d=date("D");
if (in_array($d, array('Thu','Fri','Sat','Sun'))) {
    echo "The latest post for Thursday, Friday, Saturday, Sunday: ";
    $my_query = new WP_Query('category_name=posts&showposts=1');
    while ($my_query->have_posts()) {
        $my_query->the_post();
        echo "<a href=\";
        the_permalink();
        echo "\" rel=\"bookmark\">";
        the_title();
        echo "</a>";
    }
}

或者,如果您更喜欢这种语法:

<?php
    $d=date("D");
    if (in_array($d, array('Thu','Fri','Sat','Sun'))):
?>
The latest post for Thursday, Friday, Saturday, Sunday:
<?php
        $my_query = new WP_Query('category_name=posts&showposts=1');
        while ($my_query->have_posts()):
            $my_query->the_post();
?>
<a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a>
<?php
        endwhile;
    endif;
?>

【讨论】:

  • 这很好用,谢谢。当我需要更多来生成带有查询循环的 HTML 链接时,我试图过于简单地使用“回声”。 - 标记
【解决方案3】:

php 解释器在?&gt; 处停止解释,并将随后出现的所有内容视为正常输入。因此后面的所有代码都会再次解析,而不是回显的一部分。

【讨论】:

    【解决方案4】:

    您打开 php 脚本两次:&lt;?php 应该只出现一次。

    &lt;?php ... "周四、周五、周六、周日最新发帖:&lt;?php

    【讨论】:

      【解决方案5】:

      为什么你从不退出字符串?

      <?php $my_query = new WP_Query('category_name=posts&showposts=1'); ?>
      

      上面的代码卡在你的字符串中间。

      【讨论】:

      • 该代码是查询循环的开始,它为最新帖子生成 HTML 链接.....
      【解决方案6】:

      打印出来

      The latest post for Thursday, Friday, Saturday, Sunday: <?php  = new WP_Query('category_name=posts&showposts=1'); ?><?php while (()) : (); ?><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>. <?php endwhile; ?>
      

      这是应该的。 PHP 只解析一次。

      【讨论】:

        【解决方案7】:
        <?php
        $d=date("D");
        if(in_array($d, array('Thu','Fri','Sat','Sun')))
          echo 'The latest post for Thursday, Friday, Saturday, Sunday:'.
               ' <?php $my_query = new WP_Query(\'category_name=posts&showposts=1\'); ?'.
               '><?php while ($my_query->have_posts()) : $my_query->the_post(); ?'.
               '><a href="<?php the_permalink() ?'.
               '>" rel="bookmark"><?php the_title(); ?'.
               '></a>. <?php endwhile; ?'.'>';
        ?>
        

        【讨论】:

        • (我不知道为什么,当然)但这不会产生 HTML 并在“have_posts”点消失......
        • 如果您连接输出的各个部分,我认为使用 echo 完全没有意义,我错了吗?当你可以做的时候为什么要连接:echo "string", "string2", $var, "stuff"; PHP 只是按顺序将其吐出,并不会在输出到屏幕之前将其全部敲打。
        猜你喜欢
        • 1970-01-01
        • 2020-07-30
        • 1970-01-01
        • 2013-07-22
        • 1970-01-01
        • 1970-01-01
        • 2013-08-09
        • 2015-08-18
        • 2020-01-07
        相关资源
        最近更新 更多