замена пользовательских тегов HTML в PHP - PullRequest
1 голос
/ 04 октября 2010

У меня есть пользовательские теги html в моих приложениях, они выглядят так: <wiki href="articletitle">Text</wiki> и я хочу, чтобы они были заменены так: <a href="http://myapps/page/articletitle">Text</a>.Как я могу сделать это в PHP?

Ответы [ 4 ]

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

Ruel прав, синтаксический анализ DOM - это правильный подходКак упражнение в регулярных выражениях, что-то вроде этого должно работать:

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

Не пытайтесь анализировать HTML с помощью RegEx.Вместо этого используйте DOM.Вот хорошее чтение: http://php.net/manual/en/book.dom.php

0 голосов
/ 25 марта 2013

Я использую Query Path для этого, вот сообщение в блоге с большим количеством примеров кода.

http://www.wingtiplabs.com/blog/posts/2013/03/18/domain-specific-markup-language/

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

Я пытаюсь сделать что-то очень похожее . Я рекомендую избегать regEx, как чума. Это никогда не так просто, как кажется, и эти угловые случаи вызовут кошмары.

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

<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, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...