PHP: как указать, что вы не хотите, чтобы строка была оценена? - PullRequest
0 голосов
/ 17 января 2010

У меня есть некоторый php-код в базе данных, например,

$x = "<?php some code here ?>";

, но я хочу вывести всю эту строку в браузер без оценки php.Прямо сейчас это оценивает это, к сожалению.Я думал об этом, но это не сработало.Как может это сделать человек?

Спасибо

РЕДАКТИРОВАТЬ:

<?php

echo '<? hey ?>';
echo "<dog dog>";

?>

, если я запусту этот код, в исходном коде браузера будет отображаться тег dog dog, где <? hey ?> нет.Похоже, что он все еще будет оценивать его.

Редактировать, получил ответ, спасибо всем.

Ответы [ 7 ]

4 голосов
/ 17 января 2010

Просто сделай:

echo htmlspecialchars($x);
3 голосов
/ 17 января 2010

'Одинарные кавычки' говорят PHP, чтобы он интерпретировал строку точно так, как есть. Он будет включать все пробелы и символы в точности как есть.

"Двойные кавычки" говорят PHP, чтобы проанализировать строку. Это уменьшает пробелы, заменяет переменные и анализирует любые другие магические строки.

Наконец, `backticks` используются для команд оболочки.

Если вы пытаетесь отобразить его в браузере точно так же, вы можете попробовать htmlentities($string).

3 голосов
/ 17 января 2010

Вы хотите, чтобы это выглядело так? Если это так, вам нужно использовать &lt; и &gt; (строго только &lt; необходимо) для кодирования строки.

0 голосов
/ 17 января 2010

Если вы выводите php-код, вы можете даже использовать highlight_string , который будет выполнять подсветку синтаксиса для ввода

0 голосов
/ 17 января 2010

Вам немного неясно, что оценивается.

Если вы говорите о переменных, здесь есть много правильных ответов.

Если вы говорите о блоке <? ?>, значит, что-то не так. Эта строка должна оцениваться , а не , если она находится внутри блока PHP (если вы имеете в виду ввод и закрытие операторов PHP).

Может быть, вам не хватает открытия и закрытия <? ?> до и после операции?

0 голосов
/ 17 января 2010

Ih Двойные кавычки PHP оценивают выражения, одинарные кавычки - нет:

$a = 123;
$b = "value of $a"; // value of 123
$c = 'value of $a'; // value of $a

Единственная проблема с одинарными кавычками заключается в том, что они не понимают такие символы, как \n для новых строк (которые будут напечатаны как \n, а не как новые строки при вводе одинарных кавычек).

Итак, все, что вам нужно:

echo '<?php some code here ?>';

Для получения дополнительной информации см. Строки в руководстве по PHP.

0 голосов
/ 17 января 2010

использовать '(одинарные кавычки) вместо "(двойные кавычки)

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