У меня есть пользовательские теги html в моих приложениях, это выглядит так: <wiki href="articletitle">Text</wiki>
и хочу, чтобы он был таким: <a href="http://myapps/page/articletitle">Text</a>
. Как я могу это сделать в PHP?замена пользовательского тега html в php
ответ
Не пытайтесь анализировать HTML с помощью RegEx. Вместо этого используйте DOM. Вот хороший текст: http://php.net/manual/en/book.dom.php
Ruel is right, DOM parsing - правильный способ приблизиться к нему. В качестве упражнения в регулярном выражении, однако, что-то, как это должно работать:
<?php
$string = '<wiki href="articletitle">Text</wiki>';
$pattern = '/<wiki href="(.+?)">(.+?)<\/wiki>/i';
$replacement = '<a href="http://myapps/page/$1">$2</a>';
echo preg_replace($pattern, $replacement, $string);
?>
Вы должны хотя бы сделать квантификаторы ленивыми, или это взорвется. –
Спасибо - сделали. – tagawa
Я trying to do something very similar. Я рекомендую избегать RegEx, как чума. Это никогда не бывает так просто, как кажется, и эти угловые случаи вызовут кошмары.
Сейчас я склоняюсь к библиотеке 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>
Я настоятельно рекомендую скачать почтовый файл и просматривая примеры, которые он содержит.
Я использую Query Path для этого, вот сообщение в блоге с большим количеством образцов кода.
http://www.wingtiplabs.com/blog/posts/2013/03/18/domain-specific-markup-language/
- 1. Замена html-тега на preg_replace
- 2. замена тега
- 3. Использование пользовательского тега html в CKEditor
- 4. Лучшая замена тега шрифта в html
- 5. Замена содержимого HTML-тега с использованием PHP-анализа XML
- 6. Замена тега шрифта html с помощью regex
- 7. Замена тега HTML с помощью Grunt-Replace
- 8. Замена тега HTML с помощью JQuery
- 9. Замена тега HTML без изменения значения
- 10. PHP DOM замена тега src не работает
- 11. Неправильная практика определения «пользовательского» HTML-тега
- 12. создание пользовательского тега JSP
- 13. PHP - получить измерение тега HTML
- 14. функций PHP для HTML тега
- 15. Замена HTML тега с нулем в строке XML
- 16. Замена добавить значения тега html символом или обозначениями
- 17. Замена тега элемента значением для конца тега
- 18. PHP: неправильная замена HTML с помощью preg_replace.
- 19. Замена изображений внутри тега «Код»
- 20. Php замена строк в HTML Ouput
- 21. String Замена HTML из String в PHP
- 22. Замена ссылки в HREF тега РНР
- 23. Добавить текст в HTML/XML тега PHP
- 24. Проверка ввода тега комментария HTML в php
- 25. Передача тега html в переменной php
- 26. Найти все вхождения HTML-тега в PHP
- 27. Получить значение HTML-тега 'select' в PHP
- 28. содержания чтения в HTML сОн тега PHP
- 29. закрытие HTML-тега тега
- 30. разбор пользовательского текста тега из HTML страницы в JS
Чей код создает эти пользовательские теги? – egrunin