【问题标题】:How to add an HTML class to a PHP script如何将 HTML 类添加到 PHP 脚本
【发布时间】:2011-04-26 23:24:00
【问题描述】:

首先,我对 PHP 了解不多(一无所知)。我对 CSS 比较熟悉。

我正在使用 Ben Ward 脚本 Tumblr2Wordpress(这是GitHub 上的脚本)以 XML 格式导出我的 Tumblr 博客(这样我就可以将它导入到我的 Wordpress 博客中)。该脚本读取 tumblr 的 API、查询元素、进行一些格式化并以 HTML 格式导出整个内容。

我需要对其进行一点定制以满足我的需要。例如,在以下函数中,我需要将块引用变为特定类的块引用:

function _doBlockQuotes_callback($matches) {  
    $bq = $matches[1];  
    # trim one level of quoting - trim whitespace-only lines  
    $bq = preg_replace('/^[ ]*>[ ]?|^[ ]+$/m', '', $bq);  
    $bq = $this->runBlockGamut($bq);  # recurse  

    $bq = preg_replace('/^/m', "  ", $bq);
    # These leading spaces cause problem with <pre> content, 
    # so we need to fix that:
    $bq = preg_replace_callback('{(\s*<pre>.+?</pre>)}sx', array(&$this, '_doBlockQuotes_callback2'), $bq);

    return "\n". $this->hashBlock("<blockquote>\n$bq\n</blockquote>")."\n\n";
}

一开始我以为只要在blockquote HTML标签中添加我需要的类就可以了,就像&lt;blockquote class="big"&gt;这样,但它破坏了代码。

有没有办法像在 PHP 脚本中一样添加这个 HTML 属性?还是我需要在其他地方定义这个&lt;blockquote&gt;的输出?

提前感谢您的任何提示!

P.

【问题讨论】:

    标签: php html class tumblr


    【解决方案1】:

    你的猜测是正确的,但你需要用反斜杠转义引号:

    return "\n". $this->hashBlock("<blockquote class=\"big\">\n$bq\n</blockquote>")."\n\n";
    

    否则,PHP 假定您的字符串以 class=" 引号结尾。

    【讨论】:

    • 谢谢 Elusive,我真的很感激。我可以问一下您究竟做了什么来格式化我的问题中的代码。我使用了反引号,但这还不够。在您编辑它时,我试图在我引用的代码中的每个标签周围加上反引号。以后我会做得更好。
    • 代码通过缩进四个空格来格式化(并突出显示语法)。反引号不提供语法突出显示。它们旨在用于关键字或值。
    【解决方案2】:

    你可以转义双引号"

    "<blockquote class=\"big\">"
    

    但是,如果您要使用单引号 '。没必要。

    '<blockquote class="big">'
    

    【讨论】:

    • 单引号在这种情况下是不合适的,因为使用它们会关闭变量插值,这是用于$bq
    • 我只是指出没有必要在单引号中转义双引号。
    【解决方案3】:

    你需要转义引号

     <blockquote class=\"big\">
    

    【讨论】:

    • 好吧,我能说什么。感谢难以捉摸的重新格式化我的问题......并感谢 Rocket Ronnie 在......我仍在编辑问题时给我的答案。这很快。
    猜你喜欢
    • 1970-01-01
    • 2020-12-21
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多