Отключение интерпретации html в php - PullRequest
0 голосов
/ 22 июля 2010

У меня проблема с получением некоторого значения html, хранящегося в массиве php:

$data = array("Name"=>'<div style="color:red"></div>');
while(list($key,$val) = each($data)){
  print_r($key." => ".$val) ;
}

Проблема в том, что скрипт (помещенный в теги html) возвращает:

Name =>
Foo Bar

Таким образом, div (так HTML) интерпретируется.То, что я хочу показать, это ценность, а не ее интерпретация.Итак, результат, который я хочу получить:

Name => <div style="color:red">Foo Bar</div>

Есть ли способ сделать это?

Большое спасибо,

С уважением.

Ответы [ 3 ]

6 голосов
/ 22 июля 2010

Если вы хотите отобразить фактический HTML, хранящийся в вашем массиве, вам необходимо преобразовать специальные символы в объекты HTML, используя htmlentities() или htmlspecialchars().то есть.вам необходимо преобразовать < в &lt;, чтобы правильно отобразить символ на странице.

print_r($key." => ".htmlentities($val)) ;

htmlentities() преобразует все символы, имеющие эквиваленты сущности HTML.htmlspecialchars() преобразует только самое необходимое.

4 голосов
/ 22 июля 2010

Это браузер, интерпретирующий HTML, а не PHP.Просто отправьте страницу с типом содержимого text/plain, и браузер не будет пытаться ее интерпретировать.

1 голос
/ 22 июля 2010

Возможно, вы захотите htmlspecialchars ваш вывод, чтобы теги HTML заменялись сущностями.

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