Нужно ли мне избежать этого? - PullRequest
1 голос
/ 11 ноября 2009

Это может быть немного необычно, но мне нужно повторить <?php. Тем не менее, я думаю, что PHP обрабатывает его как фактический <?php и начинает выполнять код вместо того, чтобы рассматривать его как строку. Как я могу избежать <?php и ?>, чтобы их можно было рассматривать как строки? В руководстве не было ничего об этом.

Спасибо, я знаю, что это немного необычно.

Ответы [ 7 ]

2 голосов
/ 11 ноября 2009

<? Php echo "<? Php echo \" hello \ "?>"?>

распечатывает <? Php echo "hello"?>

Проверьте исходный код функций PHP о том, как они распечатывают данные.

http://in2.php.net/source.php?url=/manual/en/function.htmlentities.php

2 голосов
/ 11 ноября 2009

просто используйте функцию htmlentities

1 голос
/ 11 ноября 2009

Если это ваш код:

<?php
  echo '<?php';
?>

И вы запустите это как веб-страницу, вы ничего не увидите. Но не потому, что PHP не повторяет вашу строку <?php, а потому, что браузер видит < и считает, что это начало тега, а теги не отображаются. Это, очевидно, ошибка, но это то, что делает браузер.

Чтобы обойти это, выберите часть <, используйте htmlentities():

<?php
  echo htmlentities('<?php');
?>

Который, когда он будет отражен, приведет к источнику HTML:

&lt;php

Что при отображении в браузере показывает:

<? PHP </p>

1 голос
/ 11 ноября 2009

в HTML,

&lt;?php

Или в PHP:

echo htmlentities('<?php');
1 голос
/ 11 ноября 2009

Вы можете использовать html-сущности &lt; и &gt; (для замены '<' и '>'). Они обрабатываются только в браузере, поэтому PHP не будет пытаться запустить этот код.

0 голосов
/ 11 ноября 2009
echo '<?php ?>'; // prints <?php ?>
echo "<?php ?>"; // prints <?php ?>

Нет, вам не нужно делать ничего особенного.

0 голосов
/ 11 ноября 2009

Если они отображаются в строке, они не будут выполнены.

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