0

抱歉,如果这看起来像是重新发布,但今天早些时候我发布了这个问题:PHP for an image gallery pull from facebook, only grabs the first 25 images

我忘了问我认为这是一个小问题。在此处显示的 echo htmlentities 标记上:

                    echo htmlentities ('<li class="imgcomments">
                                      <a href="http://www.facebook.com/people/@/'.$Cdata->from->id.'"    target="_blank">                                                                             
                                      <img src="https://graph.facebook.com/'.$Cdata->from->id.'/picture" 
                                      align=left border=0 />
                                      </a>&nbsp;
                                      <a href="http://www.facebook.com/people/@/'.$Cdata->from->id.'" target="_blank">
                                      <b>'.$Cdata->from->name.'</a>: </b>'.$Cdata->message.'<br />
                                      <div align="left" style="padding-bottom:10px;">
                                      <small>&nbsp;Posted '.timeSince(strtotime($Cdata->created_time)).' ago</small></div>                                                   </li>');

每当我将鼠标悬停在没有评论的图像上时,都没有问题,因为在此代码之后有一个 else 显示“没有评论”。但是当我将鼠标悬停在一个确实有评论的地方时,我得到的结果与 img 标题属性相同,但它显示了此处链接的整个 html 代码。我已经尝试过 htmlspecialchars 并且还使用带有 title="" 的 span 包装了所有 html 代码。

编辑:我发现了错误,现在我看到了修复它的方法。问题出在代码之前:

    echo '<li><a href="'.$data->source.'" rel="lightbox" title="';
        if (property_exists($data, "comments")) {
            foreach ( $data->comments->data as $Cdata )
                {
                    echo htmlentities ('<li class="imgcomments">
                                      <a href="http://www.facebook.com/people/@/'.$Cdata->from->id.'"    target="_blank">

在第一行,title 属性使它显示整个 html 代码,我假设我将不得不求助于 if/else 语句,但如果其他人有更好的主意......

4

0 回答 0