Строка в HTML? - PullRequest
       7

Строка в HTML?

2 голосов
/ 13 октября 2011

Я не могу понять, почему приведенный ниже код возвращает строку в виде строки, но не в виде HTML,

function en_code($string)
{
    # find the match of [br] = a break = <br>
    $output = preg_replace('/\[(?:&nbsp;|\s)*([br]+)(?:&nbsp;|\s)*\]/', '&lt;$1 /&gt;', $string);

    # return the result
    return $output;
}

$string = 'Wallace and Gromit\'s Children Foundation the whole campaign was exemplary, showing true professionalism, creativity and an amazing understanding of what makes a strong news story.\'[br][br]Wallace & Gromit\'s Children\'s Foundation';

echo en_code($string);

возвращается,

 Wallace and Gromit's Children Foundation the whole campaign was
 exemplary, showing true professionalism, creativity and an amazing
 understanding of what makes a strong news story.'<br /><br />Wallace &
 Gromit's Children's Foundation

но должно вернуться вот так:

Детский фонд Уоллеса и Громита, вся кампания была образцовый, демонстрирующий истинный профессионализм, креативность и удивительный понимание того, что делает сильную новость. '

Уоллес и Детский фонд Громита

Я пытаюсь преобразовать [br] в <br /> в функции.

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 13 октября 2011

Попробуйте изменить

$output = preg_replace('/\[(?:&nbsp;|\s)*([br]+)(?:&nbsp;|\s)*\]/', '&lt;$1 /&gt;', $string);

до

$output = preg_replace('/\[(?:&nbsp;|\s)*([br]+)(?:&nbsp;|\s)*\]/', '<$1 />', $string);

При замене использовался HTML-код для < и >, а не действительные символы.

0 голосов
/ 13 октября 2011

Вы используете &lt; и &gt;, которые являются сущностями HTML, которые используются для отображения символов < и > на HTML-страницах. Вам нужно использовать именно эти символы для целых чисел, чтобы в результате были допустимые HTML-теги.

...