2010-10-15 75 views
1

背景解析CFML標籤在PHP

我一直在運行的博客平臺上a site在過去的5年。我正在使用在我自己的服務器上託管網站的選項,通過FTP發佈。我的服務器正在運行ColdFusion,所以我決定利用它。我創建了Coldfusion自定義標籤,它提供了額外的功能,幷包含許多可能的帖子 - 要清楚,我的帖子的正文。谷歌決定關閉此FTP發佈選項的訪問權限。我以這個消息爲藉口轉向WordPress。現在我必須弄清楚我的帖子中的所有ColdFusion標籤該怎麼做。

問題

我想不鬆通過我已經嵌入到我的職位,自定義標記提供的功能。我的主要問題是使用自定義標籤向PHP網站添加功能的最佳方式是什麼?我最初的計劃是嘗試解析頁面以找到標記,然後編寫一個PHP類來基本模仿Coldfusion文件提供的功能。我對PHP不太瞭解,所以我不確定有哪些工具或庫可以幫助實現。或者,如果這只是一個愚蠢的想法。這些不是格式良好的XML文件,所以我需要一些相當強大的功能。

我使用以下標記:

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

以產生一系列鏈接到Technorati的或任何我決定(因此具有定製標記的益處<a..>Tag#</a>元件 - 很容易改變行爲)。對於這個問題的解決可能真的能夠處理任何聯繫,所以如果我有一個<stackoverflowLink post="3944091"/>標籤,我應該可以翻譯成

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

回答

1

現在我傾向於在Custom Tagsmentioned 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文件,並通過它包含的例子看。

+0

這是什麼時候[我正在尋找一個類似的系統](http://stackoverflow.com/questions/3723752/where-do-i-start-when-writing-a-new-scripting-language)? – EAMann 2010-10-15 22:12:43

+0

因爲我使用的是WordPress,所以我決定嘗試使用短代碼(http://codex.wordpress.org/Shortcode_API),因爲它已經內置了功能。我無法解析短代碼的問題但是正在做一個3部分的代碼,比如[if] [else] [endif]。 – Snekse 2011-12-05 22:44:52

+0

我會*強烈*推薦*針對*使用簡碼創建自定義標記的原因在這裏概述:http://justintadlock.com/archives/2011/05/02/dealing-with-shortcode-madness – EAMann 2011-12-05 22:53:19