php代码中的echo导致问题

时间:2011-07-19 16:55:50

标签: php wordpress

最后一行中的echo似乎导致了问题。但是我不能把它拿出来,或者它只是直接打印线。我该如何重写那部分?另外,其他php函数的编写方式还有什么问题吗?

$output .= "
            <script src='http://platform.twitter.com/widgets.js'></script>
            <a href='http://twitter.com/share' class='twitter-share-button'
                data-url='". the_permalink() ."'
                data-via='username'
                data-text='". the_title() ."'
                data-count='horizontal'>Tweet
            </a>
            <iframe src='http://www.facebook.com/plugins/like.php?href=". echo urlencode(get_permalink($post->ID)) ."&amp;layout=button_count&amp;show_faces=false&amp;width=90&amp;action=like&amp;colorscheme=light' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:90px; height:20px;'></iframe>'";

3 个答案:

答案 0 :(得分:2)

您应该删除“echo”,在字符串连接中不需要它:

$output .= "
        <script src='http://platform.twitter.com/widgets.js'></script>
        <a href='http://twitter.com/share' class='twitter-share-button'
            data-url='". the_permalink() ."'
            data-via='username'
            data-text='". the_title() ."'
            data-count='horizontal'>Tweet
        </a>
        <iframe src='http://www.facebook.com/plugins/like.php?href=". urlencode(get_permalink($post->ID)) ."&amp;layout=button_count&amp;show_faces=false&amp;width=90&amp;action=like&amp;colorscheme=light' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:90px; height:20px;'></iframe>'";

答案 1 :(得分:1)

echo不属于字符串中间。它没有返回任何内容,因此将它连接在串联中是没有意义的。

你正在做的连接很长,我相信有一些错误。

最后还有一个额外的单引号。

您为iframe构建的网址,您既可以使用urlencode,也可以手动转义&符号。

构建网址的更好方法是:http_build_query并让系统为您整理。链接:http://www.php.net/manual/en/function.http-build-query.php让系统将网址放在一起几乎总是更好。因为它位于一堆html的中间,所以你可以在整个事情上运行htmlentitieshttp://www.php.net/manual/en/function.htmlentities.php这样就可以在html中使用了。

除非您为其提供代码,否则无法确定其他功能是否不正确。如果他们总是返回字符串,你就没事了。

如果代码变得复杂,不要害怕将代码分解成多个块。

答案 2 :(得分:0)

看起来你的输出结尾有一个额外的'(撇号)。

</iframe>'