【问题标题】:Parse CFML tags in PHP在 PHP 中解析 CFML 标签
【发布时间】:2011-04-26 00:54:32
【问题描述】:

背景:

在过去的 5 年里,我一直在博客平台上运行 a site。我正在使用将站点托管在我自己的服务器上的选项,通过 FTP 发布。我的服务器正在运行 ColdFusion,所以我决定利用它。我创建了提供附加功能的 Coldfusion 自定义标签,并将这些标签包含在许多可能的帖子中 - 明确地说,是我帖子的 body。 Google 决定关闭对该 FTP 发布选项的访问。我以这个消息为借口转向了 WordPress。现在我必须弄清楚如何处理我帖子中的所有这些 ColdFusion 标签。

问题:

我不想失去嵌入到帖子中的自定义标签所提供的功能。我的主要问题是使用自定义标签向 PHP 站点添加功能的最佳方式是什么?我最初的计划是尝试解析页面以查找标签,然后编写一个 PHP 类来基本上模仿 Coldfusion 文件提供的功能。我对 PHP 了解不多,所以我不确定有哪些工具或库可以促进这一点。或者,如果这只是一个愚蠢的想法。这些不是格式良好的 XML 文件,所以我需要一些相当健壮的东西。

示例:

我使用以下标签:

<cf_taglinks>Tag1, Tag2, Tag3</cf_taglinks> 

生成一系列&lt;a..&gt;Tag#&lt;/a&gt; 元素链接到technorati 或我决定的任何东西(因此拥有自定义标签的好处 - 很容易改变行为)。这个问题的解决方案真的可以处理任何链接,所以如果我有一个&lt;stackoverflowLink post="3944091"/&gt; 标签,我应该能够将它翻译成

<a href="http://stackoverflow.com/posts/3944091/" 
     target="_blank">Stackoverflow Question: 3944091</a>

【问题讨论】:

    标签: php parsing wordpress coldfusion


    【解决方案1】:

    现在我倾向于Custom Tags 库mentioned in this post 作为答案。最好的功能之一是支持隐藏或嵌套标签,如下面的代码块:

    <ct:upper type="all">
        This text is transformed by the custom tag.<br />
        Using the default example all the characters should be made into uppercase characters.<br />
        Try changing the type attribute to 'ucwords' or 'ucfirst'.<br />
        <br />
        <ct:lower>
            <strong>ct:lower</strong><br />
            THIS IS LOWERCASE TEXT TRANSFORMED BY THE ct:lower CUSTOM TAG even though it's inside the ct:upper tag.<br />
            <BR />
        </ct:lower>
    </ct:upper>
    

    我强烈建议下载 zip 文件并查看其中包含的示例。

    【讨论】:

    • I was looking for a similar system 时这是在哪里?
    • 由于我使用的是 WordPress,我决定尝试使用短代码 (codex.wordpress.org/Shortcode_API),因为它已经内置了功能。我还无法解决的短代码问题正在执行 3 部分代码,例如 [if][else][endif]。
    • 我会强烈推荐反对使用短代码来创建自定义标记,原因如下:justintadlock.com/archives/2011/05/02/…
    • @EAMann - 我当然明白他的论点,但是:A)这是我自己的模板供我个人使用,永远不会分发,所以我不担心锁定。 B)我的短代码正在执行复杂的服务器端逻辑,而不是简单的 HTML 替换,所以如果我愿意,我无法用 HTML 替换。 However,如果我能让自定义标签库工作,我认为这是防止 WordPress 锁定的更好方法。
    • 实际上,您在 A 点说服了我。只要不分发,这取决于您。当人们向他们赠送的任何东西添加大量自定义短代码时,我只是不寒而栗......
    猜你喜欢
    • 1970-01-01
    • 2013-03-12
    • 2012-11-07
    • 2013-07-07
    • 2020-01-31
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多