Ответ 1
Используйте htmlspecialchars()
:
$phpCode = '<? if($condtion){ ?>';
echo htmlspecialchars($phpCode);
Как поставить PHP-код в строку?
$phpCode = '<? if($condtion){ ?>';
По какой-то причине, когда я делаю это и повторяю код, я не получаю открывающий PHP-тег <?
.
Я что-то упустил? Есть ли лучший или более правильный способ сделать это? В настоящее время я смотрю документы PHP по строкам, но я хотел бы получить ваши отзывы.
Изменить. Причина, по которой я использую apsotrophes ('
), а не кавычки ("
), заключается в том, что я не хочу, чтобы код заполнял значение условия. Я хочу, чтобы он эхо как есть.
Используйте htmlspecialchars()
:
$phpCode = '<? if($condtion){ ?>';
echo htmlspecialchars($phpCode);
Вам нужно echo htmlspecialchars($phpCode);
попробуйте эти $str= htmlentities('<?php //***code***// ?>');
Вы также можете использовать объекты HTML.
Когда вы заменяете только квадратную скобку открытия в PHP, остальная часть будет считаться строкой при анализе с эхом:
<?php
//< is the HTML entity for '<' (without quotes).
$str = '<?php yourstring ?>';
echo $str;
?>
Источник HTML-объекты
Вы можете вывести PHP-код в виде текста следующим образом
$phpCode = '<? if($condtion){ ?>';
echo "<pre>";
echo htmlspecialchars($phpCode);
echo "</pre>";
На это уже есть несколько ответов, но просто добавьте мои $0,02...
Этот код:
<?php
$test = '<?php echo "hello world!"; ?>';
echo $test;
?>
Создает пустой белый экран в браузере, но если вы посмотрите на источник, вы увидите этот вывод:
<?php echo "hello world!"; ?>
Это связано с тем, как браузер передает ваш PHP-код. Браузеры не предназначены для рендеринга PHP-кода, а скорее для разметки HTML. Если вы повторяете код, потому что вы проверяете, что будет написано в вашем файле, просто посмотрите источник, чтобы проверить, что выводится, то, что вы хотите записать в файл. Вы не увидите его в самом браузере, потому что он не знает, как отобразить тег ?php
, не говоря уже о том, что делать с атрибутом echo
.
По желанию, как и все уже заявили, вы можете передать строку через htmlspecialchars
, если все, что вы хотите сделать, это отобразить ее в браузере без необходимости просмотра источника. Вы не хотели бы этого делать, если вы пишете его в файл, но можете помочь вам отладить ваш вывод.
Другой вариант - запустить script из командной строки. Он не будет пытаться сделать ваш вывод и вместо этого просто выплюнуть его дословно.
Используйте Eval()
, если вы хотите запустить код в строке.
Пример
$str = "Hello ";
eval('$str .= "World"');
echo $str;
/* Output: Hello World */