Как открыть PHP файл в браузере: все способы
Почему PHP не открывается так, как HTML
Краткий ответ: HTML относится к клиентским инструментам (пусть это и не язык), а PHP — к серверным языкам. Это значит, что выполнение кода PHP возможно только в условиях сервера.
Полный ответ: любой браузер «знает», как преобразовывать HTML-код и красиво выводить его на веб-страницу (ведь существуют стандарты веба). Можно просто принять факт: однажды разработчики и крупные сообщества договорились о том, что HTML будет использоваться так, а не иначе. С PHP ситуация развивалась совсем по-другому.
Причины
Давайте на секунду представим, что разработчику браузера необходимо предусмотреть поддержку абсолютно всех языков и платформ. Такой подход был бы гораздо сложнее не только для разработчиков, но и для пользователей. Это была бы утомительная работа для тех, кто создает браузеры. А пользователи бы — часами скачивали такие браузеры. Кроме того подобные браузеры значительно бы затормозили развитие интернета.
Но веб развивался по-другому сценарию. И в 2023 году наиболее распространенной является архитектура по типу клиент-сервер. Её смысл в том, что каждый клиент (браузер) умеет читать и выполнять HTML-код, а сервер — может работать прозрачно от клиента, используя инструменты и технологии, адаптированные к его методам (в нашем случае, к PHP), и затем возвращать результат в виде HTML клиенту.
PHP динамичен, в то время как HTML — статичен.
Вы можете провести эксперимент и открыть любой HTML файл с жёсткого диска прямо в браузере. Вы увидите содержимое этого файла и без интернета (без веб-сервера). Просто браузер знает, как отображать HTML.
Открыли HTML-файл с жесткого диска без интернета
А теперь откроем какой-нибудь PHP-файл:
Попробовали открыть открыть файл PHP с жёсткого диска через браузер
Мы видим, что исходный код PHP отображается как простой текст. Причина элементарна: браузер не знает, как интерпретировать этот язык. Это происходит по той же причине, которую мы озвучили выше (PHP является языком на стороне сервера).
Веб-сервер необходим для «размещения» файлов PHP и их дальнейшей интерпретации (она выполняется компилятором перед отправкой статического HTML).
Несмотря на то, что связку HTML + CSS умеет «читать» любой браузер, она всё равно, по факту, будет обслуживаться веб-сервером. Открыть и выполнить HTML + CSS обычный пользователь может только с помощью браузера. И работа браузера — просто вывести всё это дело.
PHP, благодаря наличию веб-сервера, умеет взаимодействовать с HTML, стилями CSS и JavaScript. Важное замечание: сервер никогда не отправляет PHP: он может отправить клиенту (браузеру) только HTML, CSS или JavaScript. Всё.
Способ 1: Открытие без обработки
Здесь всё зависит от того, что подразумевать под словом «открытие».
Напомним, файл PHP — это содержимое в виде кода, которое компилируется на сервере, а вывод — генерируется и отображается в HTML.
Говоря о способах открытия файла без обработки, можно подразумевать открытие, редактирование или исполнения кода.
Отредактировать файл можно с помощью любого текстового редактора (например, Блокнота в Windows). Но, конечно, существуют более функциональные инструменты: редакторы кода или IDE — с дополнительными инструментами для разработчика.
Также открыть файл без обработки можно при помощи любого браузера. Отредактировать код вы не сможете, вы сможете только просмотреть файл и ничего более.
Инструкция
Найдите файл у себя на жёстком диске компьютера, вызовите контекстное меню (кликнув по иконке файла правой кнопкой). Нажимаем на вариант «Открыть с помощью» или «Открыть», выбираем браузер, который будет использоваться для просмотра файла.
Открытие файла через браузер в Windows
Теперь мы можем увидеть содержимое файла. Без всяких танцев с бубном, типа эмуляции собственного сервера.
Файл со скриптом открылся успешно
Способ 2: Онлайн-редакторы
Если вы хотите полноценно работать с кодом прямо в браузере, иметь возможность редактировать его и исполнять — воспользуйтесь онлайн-редактором.
Что должно быть в онлайн редакторе, чтобы открыть код PHP прямо в браузере и удобно работать с файлом:
-
Поддержка PHP. Соответственно должен быть встроенный компилятор с поддержкой этого языка.
-
Подсветка синтаксиса. Сделает работу более комфортной и позволит избежать частых ошибок в синтаксических конструкциях.
-
Функция загрузки внешних файлов. Если её не будет, мы не сможем открыть собственный файл.
-
Желательна поддержка одновременной обработки HTML и PHP. Ведь очень часто код PHP включает в себя HTML, который находится внутри такого файла.
Мы рекомендуем использовать PHP компилятор на сайте Programiz. Это полностью бесплатный онлайн редактор кода, который позволит выполнить любой код прямо в браузере.
Инструкция
Открываем любой файл в браузере, копируем из него необходимый код, затем вставляем полученный код в это окно:
Копируем или пишем свой код в окне слева
Затем нажимаем кнопку Run. Вы сразу увидите результат выполнения кода.
Hello World!
Кстати на этом же сайте (Programiz) вы найдете полностью бесплатные компиляторы для языков: Python, R, Java, C, C++, C#, JavaScript, GO, Swift, Rust, а также онлайн-редактор SQL. Плюс доступен бесплатный редактор HTML / CSS.
Если вы решили воспользоваться другим онлайн-редактором следите за тем, чтобы содержимое файла было изначально интерпретировано корректно. Если этого не так, значит нужно искать причину (например, файл включает в себя HTML-блоки, а выбранный вами онлайн-редактор кода не поддерживает одновременную обработку этих языков).
Способ 3: Эмуляторы сервера (Denwer, XAMPP, OpenServer)
Если необходимо выполнить код PHP с возможностью задавать параметры настоящего сервера, можно воспользоваться эмуляцией сервера — прямо в браузере. Чтобы это сделать, нужно установить веб-сервер, например Apache. Самое простое решение — установить готовую сборку веб-сервера с Apache, mySQL и встроенным интерпретатором скриптовPHP. Это может быть XAMPP или WAMP. После завершения установки у вас будет каталог XAMPP или WAMP, в зависимости от того, что вы установили.
Вот краткая пошаговая инструкция, как открыть файл с помощью WAMP.
Найдите папку www и вставьте в неё необходимый файл
Вставьте в папку www свой файл (или файлы), с которыми вы хотите работать. Также внутри главного каталога могут быть и другие подкаталоги.
Пример: у нас есть каталог проекта с именем "MyProject", внутри него имеется файл "index.php". Указанный каталог проекта необходимо вставить в каталог www, который находится в каталоге WAMP. Теперь у нас установлен сервер и есть готовый файл.
Запустите сервер
Для этого откройте приложение WAMP (либо замените эту сборку веб-сервера на OpenServer, XAMPP, WAMP или Denwer). Как только сервер будет готов, он станет доступен по адресу http://localhost/ (ведь это локальная машина).
localhost теперь фактически относится к директории www. И любая страница, находящаяся в этой директории, станет доступна, если вы пропишите соответствующее имя страницы после ссылки.
Пример: наш каталог localhost состоит из файла index.php. Доступ к нему можно получить по адресу http://localhost/index.php.
Обратите внимание, что в предыдущем примере, мы разместили каталог MyProject. Доступ к нему можно получить по адресу http://localhost/MyProject/index.php.
Способ 4: Загрузка файла на сервер
Этот способ открытия файла рассматриваем самым последним неспроста: его можно назвать наиболее трудоёмким и неудобным для новичка. Судите сами:
-
Вам понадобится хостинг, ведь придётся работать с сервером напрямую.
-
Вам понадобится сайт.
-
Вам понадобится оплатить услуги хостинга. В противном случае арендовать сервер не получится.
Кратко: как загрузить файл на сервер
Чтобы загрузить файл на сервер PHP-скрипт используется вместе с HTML-формой. Сперва файл загружается во временный каталог, а затем перемещается в «целевой» каталог (при помощи скрипта).
В файле phpinfo.php есть два момента, на которые следует обратить внимание:
-
upload_tmp_dir — временный каталог, используемый для загрузки файлов.
-
upload_max_filesize — максимально допустимый размер загружаемых файлов.
Оба параметра задаются в конфигурационном файле (не забудьте, что его название — php.ini).
Процесс загрузки файла с точки зрения пользователя происходит следующим образом:
-
Пользователь открывает страницу с HTML-формой. Форма может содержать текстовые файлы, кнопки просмотра или кнопки отправки.
-
Пользователь нажимает кнопку просмотра и выбирает файл для загрузки (обычно на жёстком диске).
-
Полный путь к выбранному файлу появляется в специальном блоке.
-
Пользователь нажимает кнопку отправки.
-
Выбранный файл отправляется во временный каталог на сервере.
-
PHP-скрипт, указанный в качестве обработчика (он находится в атрибуте action формы), проверяет факт получения файла, и затем копирует его в указанный каталог.
-
Пользователь может видеть сообщение об успешной загрузке файла (не всегда)
Теперь разберём, как загрузить файл PHP на сервер самостоятельно.
Пошаговая инструкция, как загрузить файл на сервер
Начнём с настройки конфигурационного файла. Затем создадим HTML-форму и скрипт PHP. Попутно разберёмся с ограничениями по типу и размеру файла. В конце — покажем полный скрипт.
Настраиваем "php.ini"
Первым делом нам нужно убедиться в том, что разрешение загрузки файлов прописано в конфигурационном файле.
Здесь два простых действия:
-
Открываем файл php.ini, находим директиву file_uploads.
-
Устанавливаем значение file-uploads в On:
file_uploads = On
Создаем HTML-форму
Далее создайте HTML-форму. Именно благодаря ней пользователь сможет выбрать файл изображения для загрузки на сервер.
Немного об ограничениях:
-
Атрибут type="file" тега input используется для области ввода. Будет кнопка «Обзор», которая располагается непосредственно возле области ввода.
-
Форма обязательно должна иметь метод = "post".
-
Для формы обязательным является атрибут: enctype="multipart/form-data". Обратите внимание: этот атрибут показывает тип контента при отправке.
В итоге форма может выглядеть таким образом:
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Выберите изображение для загрузки:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
Эта HTML-форма будет использоваться для отправки данных в upload.php. Указанный файл мы самостоятельно создадим далее.
Обязательно соблюдайте каждое из описанных выше требований (ограничений), в противном случае загрузка файла будет невозможной.
Формируем скрипт для последующей загрузки файла
Файл upload.php содержит код для загрузки файла:
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Проверка файла с изображением. Он должен содержать изображение, а не что-то другое
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
?>
Важные составляющие скрипта:
-
$target_dir = "uploads/" — содержит директорию, в которую будут загружаться файлы.
-
$target_file — содержит путь до файла, который загружается.
-
$uploadOk=1 — пока что не трогаем.
-
$imageFileType — включает в себя файловое расширение и обязательно в нижнем регистре.
Примечание: обязательно создайте ещё одну директорию и назовите её как uploads. Сформировать её нужно в той директории, где расположен upload.php. Все загруженные файлы будут сохраняться там же.
Проверяем наличие файла
Давайте проверим наличие необходимого нам файла внутри "uploads". Если файл уже существуют вы увидите соответствующее сообщение:
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
Обратите внимание на статус переменную $uploadOk. Если она равна 0, значит файл уже есть в папке.
Лимит по размеру файла
Поле ввода файла в нашей HTML-форме имеет имя "fileToUpload".
Нам также нужно проанализировать размер файла. Если он будет больше 500 килобайт, то появится ошибка. Вот так:
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
Смотрите: В переменную $uploadOk снова записываем 0
Тип файла
Взгляните на код ниже. В нем вы найдёте ограничения по типу загружаемого файла:
// Разрешены только некоторые форматы изображений
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
В нашем случае можно использовать изображения только в популярных форматах: GIF, JPG, PNG и JPEG.
Если используется изображение в иных форматах, то переменная $uploadOk будет иметь значение 0.
Как выглядит PHP-скрипт загрузки файлов
Полный файл "upload.php", в нашем случае, стал выглядеть вот так:
Созданный файл upload
Здесь вы можете увидеть полноразмерную версию изображения.
Заключение
Таким образом, открыть, отредактировать и запустить файл прямо в браузере вы можете любым удобным для вас способом. Каждый из них мы подробно описали выше.
-
Если вам нужно просто прочитать файл — используйте любой браузер.
-
Если нужно изменить код файла — используйте любой удобный онлайн редактор.
-
Если требуется эмуляция сервера с возможностью выполнения и управления файлом прямо в браузере — воспользуйтесь готовой сборкой эмулятора, например, Denwer, XAMPP, OpenServer.
-
Наконец, ручная загрузка файла на сервер — самый трудоёмкий вариант. Его можно рекомендовать, когда существуют специфические потребности при открытии файла. И, естественно, новичкам его рекомендовать нельзя. Особенно, если нужно просто открыть и прочитать какой-то единичный файл.