2011-07-19 8 views
0

最後の行のechoが問題を引き起こしているようです。しかし、私はそれを取ることはできませんまたはそれは単に直接行を印刷します。その部分をどのように書き直すことができますか?また、他のPHP関数の記述方法に間違いがありますか?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>'"; 
+0

二重引用符の前の最後の行の末尾にある一重引用符は何ですか?あなたが言及しているこれらの「問題」は何ですか? 「私の車は奇妙な音を立てている。 - ああ、それはエンジンでなければならない " –

+1

なぜエコーを連結していますか? 'echo'を削除するか、セミコロン('; ')の直前のピリオドを変更してください。 –

答えて

2

あなたが「エコー」を削除してください、あなたは文字列の連結にそれを必要としない:

$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>'"; 
0

あなたは、出力の末尾に追加された '(アポストロフィ)を持っているように見えます。

 
</iframe>' 
1

echo文字列の中央にはありません。それは何も返されないので、連結の途中でそれを持つことは理にかなっていません。

あなたが行っている連結は非常に長く、私はいくつかの間違いがあると信じています。

最後に一重引用符があります。

iframeのために構築しているurlは両方ともurlencodeを実行していますが、手動でアンパサンドをエスケープしています。

URLを作成する方がはるかに良い方法は、http_build_queryであり、システムでまとめてください。リンク:http://www.php.net/manual/en/function.http-build-query.phpシステムがあなたのためにURLをまとめさせることは、ほとんど常に良いです。 htmlの束の真ん中にいるので、htmlentitiesを全部実行することができます:http://www.php.net/manual/en/function.htmlentities.phpこれはhtmlの中で使うのが適切になります。

コードを記述しない限り、他の機能が正しくないかどうかを判断する方法はありません。彼らが常に文字列を返すならば、あなたは大丈夫です。

複雑になる場合は、コードを複数のチャンクに分割することを恐れないでください。

関連する問題