Когда я запускаю следующий скрипт, ничего не печатается. Почему это так ?
<?php $var = "<?php echo 'Hey !'; ?>"; echo $var; ?>
Он отзывается «ничего», потому что ваш браузер не понимает теги <?php
, поэтому он не будет показывать содержимое тега; он должен показывать что-то, когда вы выбираете просмотр источника страницы.
Причиной такого поведения является то, что тип содержимого по умолчанию для вашего сценария задан как text/html
(вы можете подтвердить это, посмотрев заголовки ответа), и в контексте HTML вы должны использовать htmlspecialchars()
echo htmlspecialchars($var);
На самом деле, как правило, вы всегда должны избегать переменных, когда вы их выводите.
В качестве альтернативы вы можете сообщить браузеру, что ваш вывод не должен интерпретироваться как HTML; вы можете сделать это, установив соответствующий заголовок ответа:
header('Content-Type: text/plain');
С указанным выше типом контента ваш вывод отображается в браузере дословно.
изменить это
$var = "<?php echo 'Hey !'; ?>";
в этот
$var = "<?php echo 'Hey !'; ?>";
потому что ваш syntex ошибочен для php-движка … make change as:
<?php $var = "<?php echo 'Hey !'; ?>"; echo $var; ?>
в
<?php $var = 'Hey !'; echo $var; ?>
Задайте тип контента как text
и вы увидите свой вывод в своем браузере.
<?php header('Content-type: text/plain'); $var = "<?php echo 'Hey !'; ?>"; echo $var; ?>
Это потому, что ваш браузер ожидает html, и он не понимает те php-теги, которые у вас есть на выходе.
Другим разумным использованием функции htmlspecialchars
будет лучший вариант.
попробуй что-нибудь вроде этого
$var = '<?php echo \'Hey !\';?>'; echo htmlspecialchars($var);