Экранирование тега <?php

329
30 июля 2017, 10:05

Как стоит экранировать <?php ? Например я хочу записать в файл

<?php echo 'Hello world'; ?>

Для этого я составляю строку "<?php echo 'Hello world'; ?>"

И тут у меня происходит что-то непонятное. PHP интерпретирует <? как php код и в итоге все ломается. В то же время в песочнице все работает.

Что я упустил? Почему это работает так и как это исправить?

p.s. Если разделяю < и ? ("< ?php echo 'Hello world'; ?>") все срабатывает как должно, но это естественно меня не устраивает, потому что и создаваемый файл не будет считаться php сценарием.

Answer 1

Спасибо всем кто проявил интерес к теме, проблема решена.

Суть проблемы заключалась в том, что я выводил echo "<?php echo 'Test'; ?>"; напрямую в браузер. Он считал что содержимое <...> это тег который не закрыт и комментировал его (в случае echo "<?php echo 'Test';"; было закомментировано все от < до первого >).

Я не догадался посмотреть в исходный код. При выводе в textarea все стало понятно.

В php существует другая проблема, с ?> в конце строки. При определенных условиях это интерпретируется как конец сценария. Из-за этого я и подумал что проблема именно в интерпретации.

Проблему решают разбиением строки, видел это где-то на хабре.

READ ALSO
Автоматизация mysql

Автоматизация mysql

Доброго времени сутокПроблема следующая

260
Html Форма и ее php оброботчик

Html Форма и ее php оброботчик

Есть форма (текстовое поле textarea)В моей форме допустим Вы написали:

259
Как загрузить captcha-image в форму

Как загрузить captcha-image в форму

В своей форме использую InternetExplorerApplication

370
NtQuerySystemInformation/WinAPI Hooking [требует правки]

NtQuerySystemInformation/WinAPI Hooking [требует правки]

i'm trying to hook NtQuerySystemInformation for hiding simple process (nothing malicious) Just trying to figure out how hooking system works, and stuck for a few days on this

437