Иногда требуется вывести php-код программы непосредственно на экран браузера или прочитать его и передать в виде текста. Итак, возможно ли передать код php-скрипта так, чтобы он был в том виде, в котором он содержится в файле на сервере? В этой статье рассмотрим короткую программу на языке программирования php, которая передаёт свой собственный код в браузер при обращении к ней. Рассмотрим сразу два варианта: как передать код программы на php в браузер для того, чтобы его можно было прочитать. И второй вариант: просмотр исходного кода php-скрипта в том виде, в котором он хранится в php-файле на сервере.
Как передать код программы на php в браузер
Сразу приведу готовый листинг программы, которая будет выдавать собственный код в браузер. После этого, разберём, как же он работает и, слегка его упростив, получим программу, которая передаёт php-код, который содержится в ней. Итак, собственно программа:
<?php
$file_handle = fopen($_SERVER['SCRIPT_FILENAME'], "r") or die ("не удалось открыть файл " . $_SERVER['SCRIPT_FILENAME']);
while (!feof($file_handle)){
$line = fgets($file_handle);
echo htmlspecialchars($line) . '<br>';
}
?>
Как всё это работает:
В переменную $file_handle
вносим имя файла, из которого запускается этот скрипт, из переменной среды окружения $_SERVER['SCRIPT_FILENAME']
и открываем его на чтение. Это позволит автоматически определять php-скрипт, код которого нужно передать для просмотра в браузере.
После этого запускаем цикл построчного обхода этого файла (пока в нём будет что читать): while (!feof($file_handle)){ }
Читаем в переменную $line
очередную строку из файла: $line = fgets($file_handle);
И выдаёт эту переменную в печать: echo htmlspecialchars($line) . '<br>';
С последней строчкой возникают проблемы, так как функцией htmlspecialchars()
мы преобразуем специальные символы в HTML-сущности. Такие, как угловые скобки и всё, что может быть интерпретировано браузером, как элементы языка HTML. И в конце строки вставляем HTML-тег <br>
для того, чтобы новая строка отображалась в браузере с новой строчки.
Всё это хорошо работает и позволяет посмотреть php-код в браузере, но если посмотреть полученный код, он будет во-первых без табуляций и пробелов в начале строк в самом браузере, а в коде страницы, все HTML-сущности будут заменены на символы HTML. Ну и в-третьих, в этом коде будут встречаться вставленные HTML-теги <br>
.
Но, в общем и целом, можно скопировать полученный в браузере php-код, вставить его в php-скрипт и он будет рабочим.
Как просмотреть исходный код php-скрипта в том виде, в котором он хранится в php-файле на сервере
Для того, чтобы избежать всех этих заморочек с HTML-разметкой, можно просто передать значение переменной $line
в браузер: echo $line;
, закомментировав строку с форматированным выводом:
<?php
$file_handle = fopen($_SERVER['SCRIPT_FILENAME'], "r") or die ("не удалось открыть файл " . $_SERVER['SCRIPT_FILENAME']);
while (!feof($file_handle)){
$line = fgets($file_handle);
//echo htmlspecialchars($line) . '<br>';
echo $line;
}
?>
И тогда, в самом браузере может собраться чёрте-что, но открыв HTML-код страницы можно увидеть исходный php-код со всеми пробелами, табуляциями и всем прочем, что находится в исходном php-скрипте. И именно этот код будет полностью идентичным с тем, что находится на сервере.
Резюме
Таким простым способом можно посмотреть php-код любого скрипта, находящимся на сервере, вызвав его способом, описанным выше.
Конечно для этого нужно иметь доступ к серверу. Однако, данный способ может быть полезным, когда требуется собрать php-скрипт из нескольких частей, передав эти части по обычному http или https протоколу.
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)