Как посмотреть php-код программы в браузере

Иногда требуется вывести php-код программы непосредственно на экран браузера или прочитать его и передать в виде текста. Итак, возможно ли передать код php-скрипта так, чтобы он был в том виде, в котором он содержится в файле на сервере? В этой статье рассмотрим короткую программу на языке программирования php, которая передаёт свой собственный код в браузер при обращении к ней. Рассмотрим сразу два варианта: как передать код программы на php в браузер для того, чтобы его можно было прочитать. И второй вариант: просмотр исходного кода php-скрипта в том виде, в котором он хранится в php-файле на сервере.

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



Как передать код программы на 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 протоколу.

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню