PHP - преобразовать фрагмент кода из строки в символы HTML - PullRequest
0 голосов
/ 02 апреля 2011

У меня есть такая строка:

<a href="http://google.com"> link </a>
[code lang="html" anotherargument="foo"...]
<a href="http://google.com"> link </a>
[/code]

Как преобразовать код, заключенный в символы [code...] и [/code], в символы HTML?1009 *

Ответы [ 3 ]

1 голос
/ 02 апреля 2011

Вы можете использовать регулярные выражения с обратным вызовом - так что сопоставьте то, что находится между тегами кода, а затем замените, выполнив функцию.

Что-то вроде этого непроверенного кода:

$str = preg_replace_callback('/(\[code.+?\])(.+?)(\[\/code\])/', create_function(
            '$m',
            'return $m[1] . htmlentities($m[2]) . $m[3];'
        ),$str)
1 голос
/ 02 апреля 2011

Попробуйте это

preg_match_all('`\[code[^\]]*+]([^\[]*+)\[/code\]`i', $html, $matches, PREG_SET_ORDER);

foreach ($matches as $match) {
    $html = str_replace($match[1], htmlentities($match[1]), $html);
}
1 голос
/ 02 апреля 2011

Я думаю, что htmlspecialchars или htmlentities обладают нужной вам функциональностью Оба преобразуют символы в объекты HTML.

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