Подтвердить что ты не робот

Вставка PHP-кода в строку

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

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

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

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

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

Ответ 5

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

$phpCode = '<? if($condtion){ ?>';
echo "<pre>";
echo htmlspecialchars($phpCode);
echo "</pre>";

Ответ 6

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

Этот код:

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

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

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

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

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

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

Ответ 7

Eval php documentation

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

Пример

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

echo $str;
/* Output: Hello World */