Разбор CFML-тегов в PHP - PullRequest
       12

Разбор CFML-тегов в PHP

1 голос
/ 15 октября 2010

Фон

Последние 5 лет я управляю сайтом на платформе блоггера. Я использовал вариант размещения сайта на своем собственном сервере, публикации по FTP. Мой сервер работает под управлением ColdFusion, поэтому я решил воспользоваться этим. Я создал пользовательские теги Coldfusion, которые обеспечивали дополнительную функциональность и включали их во многие майские сообщения - чтобы быть понятным, тело моих сообщений. Google решил отключить доступ к этой опции публикации FTP. Я воспринял эту новость как предлог для перехода на WordPress. Теперь я должен выяснить, что делать со всеми этими тегами ColdFusion в моих сообщениях.

Задача

Я бы не хотел терять функциональность, предоставляемую пользовательскими тегами, которые я встроил в свои сообщения. Мой основной вопрос: как лучше добавить функциональность на сайт PHP с помощью пользовательских тегов? Мой первоначальный план состоял в том, чтобы попытаться выполнить синтаксический анализ страницы, чтобы найти теги, а затем написать класс PHP, который в основном имитировал бы функциональность, предоставляемую файлом Coldfusion. Я не очень разбираюсь в PHP, поэтому я не уверен, какие инструменты или библиотеки существуют для этого. Или, если это просто глупая идея. Это не правильно сформированные файлы XML, поэтому мне нужно что-то достаточно надежное.

Пример

Я использую следующий тег:

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

для генерации серии <a..>Tag#</a> элементов, которые ссылаются на technorati или что-то еще, что я решу (таким образом, преимущество наличия пользовательского тега - очень легко изменить поведение) Решение этой проблемы может действительно обрабатывать любую ссылку, поэтому, если у меня есть тег <stackoverflowLink post="3944091"/>, я смогу перевести его в

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

1 Ответ

1 голос
/ 15 октября 2010

Сейчас я склоняюсь к Пользовательским тегам библиотеке , упомянутым в этом посте в качестве ответа. Одной из лучших функций является поддержка скрытых или вложенных тегов, таких как блок кода ниже:

<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-файл и просмотреть примеры, которые в нем содержатся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...