Поместить PHP-код в строку

Как поместить код PHP в строку?

$phpCode = '<? if($condtion){ ?>';

По какой-то причине, когда я делаю это и выводю код, я не получаю открывающий тег PHP, <?.

Я что-то упустил? Есть ли лучший или более правильный способ сделать это? В настоящее время я просматриваю документы по строкам PHP , но я хотел бы получить ваш отзыв.

Изменить . Причина, по которой я использую апсотрофы ('), а не кавычки (") потому что я не хочу, чтобы код заполнял значение для условия. Я хочу, чтобы оно звучало как есть.

12 голосов | спросил Chris Bier 26 PMpFri, 26 Apr 2013 19:27:15 +040027Friday 2013, 19:27:15

7 ответов


0

Используйте htmlspecialchars() :

$phpCode = '<? if($condtion){ ?>';
echo htmlspecialchars($phpCode);
ответил John Conde 26 PMpFri, 26 Apr 2013 19:28:13 +040028Friday 2013, 19:28:13
0

Вам нужно echo htmlspecialchars($phpCode);

ответил Adder 26 PMpFri, 26 Apr 2013 19:28:15 +040028Friday 2013, 19:28:15
0

попробуйте эти $str= htmlentities('<?php //***code***// ?>');

ответил unkn0wn 26 PMpFri, 26 Apr 2013 19:31:50 +040031Friday 2013, 19:31:50
0

Вы также можете использовать HTML-объекты.

Когда вы заменяете только открывающую квадратную скобку в PHP, остальная часть будет считаться строкой при анализе с помощью echo:

<?php
    //&lt; is the HTML entity for '<' (without quotes).
    $str = '&lt;?php yourstring ?>';
    echo $str;
?>

Источник HTML-объекты

ответил SidOfc 26 PMpFri, 26 Apr 2013 19:33:27 +040033Friday 2013, 19:33:27
0

Вы можете вывести код PHP в виде текста следующим образом

$phpCode = '<? if($condtion){ ?>';
echo "<pre>";
echo htmlspecialchars($phpCode);
echo "</pre>";
ответил Subodh Ghulaxe 26 PMpFri, 26 Apr 2013 20:04:40 +040004Friday 2013, 20:04:40
0

На это уже есть несколько ответов, но я просто добавлю свои 0,02 доллара ...

Этот код:

<?php
    $test = '<?php echo "hello world!"; ?>';
    echo $test;
?>

Создает пустой белый экран в браузере, но если вы просматриваете источник, вы увидите следующий вывод:

<?php echo "hello world!"; ?>

Это связано с тем, как браузер отображает ваш PHP-код. Браузеры предназначены не для рендеринга кода PHP, а для разметки HTML. Если вы выводите код из-за того, что тестируете то, что будет записано в ваш файл, просто просмотрите исходный код, чтобы проверить, что именно выводится, - это то, что вы хотите записать в файл. Вы не увидите его в самом браузере, потому что он не знает, как отобразить тег ?php, не говоря уже о том, что делать с атрибут echo.

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

Другой вариант - запустить скрипт из командной строки. Он не будет пытаться визуализировать ваш вывод, а просто выложит его дословно.

ответил Jeff Lambert 27 PMpSat, 27 Apr 2013 18:39:53 +040039Saturday 2013, 18:39:53
0

Eval php documentation

Используйте Eval(), если хотите запустить код в строке.

Пример

$str = "Hello ";
eval('$str .= "World"');

echo $str;
/* Output: Hello World */
ответил S.Visser 26 PMpFri, 26 Apr 2013 19:32:36 +040032Friday 2013, 19:32:36

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132