【问题标题】:phpQuery behaving weird, changing HTMLphpQuery 行为怪异,改变 HTML
【发布时间】:2011-09-24 01:00:48
【问题描述】:

我想通过 phpQuery 处理一个带有 Google plusone 按钮的模板,我遇到了以下问题:

require_once( "phpQuery.php" );
$p = phpQuery( "<g:plusone></g:plusone>" );
echo $p->html();

预期的输出是:

<g:plusone></g:plusone>

但它的输出却是:

<plusone></plusone>

这与 google 的预期不符,因此该按钮不再起作用。如何阻止 phpQuery 更改(修复?)我的代码,或者如何在处理完成后不将字符串从 plusone 更改为 g:plusone 的情况下解决此问题? (这是一个令人讨厌的解决方法,另外,我在 phpQuery 中遇到了更多这些“翻译”问题。

【问题讨论】:

    标签: google-plus-one phpquery


    【解决方案1】:

    我在添加 google+ 徽章时遇到了同样的问题。我可以强制谷歌的代码生成器使用 div 容器生成代码。我只需要勾选“html5 有效代码”复选框。

    【讨论】:

      【解决方案2】:

      我一直在寻找解决这个问题的方法,但无济于事。我发现了一个可怕的解决方法。我确信这不是最优雅的方法,但至少它解决了问题。

      代替标签:

      <g:plusone>...</g:plusone>
      

      使用:

      <g__0058__plusone>...</g__0058__plusone>
      

      然后在输出之前简单地 str_replace 结果:

      echo str_replace("__0058__",":",$doc->html()); 
      

      基本上,在您通常会放置冒号 (:) 的标记中,您会使用 0058 代替。请不要投反对票,这是一个非常不优雅的解决方案,我意识到这一点,但至少它是解决这个老问题的方法。

      【讨论】:

        猜你喜欢
        • 2012-08-07
        • 2012-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-03
        相关资源
        最近更新 更多