Как запустить php скрипт из консоли
PHP является одним из наиболее популярных языков программирования в вебе. Своей популярностью он в первую очередь обязан легкости в изучении и многофункциональности. Но сфера его применения не заканчивается только на создании простых веб-страничек. PHP-скрипты можно запускать из командной строки, что позволяет писать на нем полноценные консольные приложения.
Как запустить php-скрипт из командной строки?
Независимо от используемой операционной системы, для запуска скрипта необходимо набрать в консоли следующую команду:
Ваша ОС может выдать сообщение о том, что команда php ей неизвестна. В таком случае, и если вы уверены, что сам интерпретатор PHP установлен корректно, поможет указание полного пути к интерпретатору во время запуска скрипта.
Для UNIX-подобных систем:
Обратите внимание, что путь к интерпретатору PHP на вашей системе может быть другим, поэтому это тоже надо учесть. Например, для пользователей популярного пакета WampServer путь может быть таким:
Ну и наконец, чтобы не вводить полный путь каждый раз, следует добавить путь к интерпретатору в переменную окружения PATH вашей операционной системы.
Пишем простой скрипт для проверки кода ответа сервера
Для того, чтобы показать особенности работы скрипта из командной строки, напишем простое приложение, которое будет брать текстовый файл со ссылками и проверять код ответа сервера для каждой из этих ссылок. Причем предусмотрим возможность выбора нужного файла в интерактивном режиме, чтобы заодно узнать, как это делается.
Сразу после запуска скрипт выбирает все файлы с расширением *.txt из папки files . Затем выводит данный список пользователю в формате номер => имя и ждет от пользователя ввода номера интересующего его файла.
Получение всех файлов по маске делается просто, для этого воспользуемся стандартной функцией glob , а вот с чтением данных из консоли всё немного интересней. Дело в том, что после запуска скрипта из командной строки в нем открываются три стандартных потока: для вывода (STDOUT), ввода (STDIN) и ошибок (STDERR). Указатели на эти потоки доступны для скрипта в виде одноименных констант и работать с ними можно так же как, например, с обычными файлами. Таким образом, чтобы прочитать данные из консоли достаточно просто прочитать строку из потока ввода: fgets(STDIN) .
После того, как пользователь сделал свой выбор и проверки правильности выбора, мы можем открыть файл для чтения.
С помощью цикла while начинаем перебирать все строки в файле. Строки должны быть корректными url-адресами иначе мы не сможем определить правильный код ответа сервера. Заголовки для каждого адреса получаем с помощью стандартной функции get_headers , а код ответа находится обычно в первой строке заголовка.
В итоге после обработки файла, можно вывести небольшую статистику о том, сколько заняла обработка по времени и какие коды ответа сколько раз встречались.
Результатом работы такого приложения может быть, например, такой вывод:
Выводы
Вот и всё, простое и интерактивное консольное приложение на PHP готово. Мне не хотелось писать какую-нибудь совершенно бесполезную программу, поэтому этот скрипт подходит не только для изучения, но и для использования. Например, если сохранить в текстовый файл карту сайта, то скрипт поможет определить возможные ошибки с ссылками, а если его немного доработать, то даже укажет с какими именно :).
PHP является одним из наиболее популярных языков программирования в вебе. Своей популярностью он в первую очередь обязан легкости в изучении и многофункциональности. Но сфера его применения не заканчивается только на создании простых веб-страничек. PHP-скрипты можно запускать из командной строки, что позволяет писать на нем полноценные консольные приложения.
Как запустить php-скрипт из командной строки?
Независимо от используемой операционной системы, для запуска скрипта необходимо набрать в консоли следующую команду:
Ваша ОС может выдать сообщение о том, что команда php ей неизвестна. В таком случае, и если вы уверены, что сам интерпретатор PHP установлен корректно, поможет указание полного пути к интерпретатору во время запуска скрипта.
Для UNIX-подобных систем:
Обратите внимание, что путь к интерпретатору PHP на вашей системе может быть другим, поэтому это тоже надо учесть. Например, для пользователей популярного пакета WampServer путь может быть таким:
Ну и наконец, чтобы не вводить полный путь каждый раз, следует добавить путь к интерпретатору в переменную окружения PATH вашей операционной системы.
Пишем простой скрипт для проверки кода ответа сервера
Для того, чтобы показать особенности работы скрипта из командной строки, напишем простое приложение, которое будет брать текстовый файл со ссылками и проверять код ответа сервера для каждой из этих ссылок. Причем предусмотрим возможность выбора нужного файла в интерактивном режиме, чтобы заодно узнать, как это делается.
Сразу после запуска скрипт выбирает все файлы с расширением *.txt из папки files . Затем выводит данный список пользователю в формате номер => имя и ждет от пользователя ввода номера интересующего его файла.
Получение всех файлов по маске делается просто, для этого воспользуемся стандартной функцией glob , а вот с чтением данных из консоли всё немного интересней. Дело в том, что после запуска скрипта из командной строки в нем открываются три стандартных потока: для вывода (STDOUT), ввода (STDIN) и ошибок (STDERR). Указатели на эти потоки доступны для скрипта в виде одноименных констант и работать с ними можно так же как, например, с обычными файлами. Таким образом, чтобы прочитать данные из консоли достаточно просто прочитать строку из потока ввода: fgets(STDIN) .
После того, как пользователь сделал свой выбор и проверки правильности выбора, мы можем открыть файл для чтения.
С помощью цикла while начинаем перебирать все строки в файле. Строки должны быть корректными url-адресами иначе мы не сможем определить правильный код ответа сервера. Заголовки для каждого адреса получаем с помощью стандартной функции get_headers , а код ответа находится обычно в первой строке заголовка.
В итоге после обработки файла, можно вывести небольшую статистику о том, сколько заняла обработка по времени и какие коды ответа сколько раз встречались.
Результатом работы такого приложения может быть, например, такой вывод:
Выводы
Вот и всё, простое и интерактивное консольное приложение на PHP готово. Мне не хотелось писать какую-нибудь совершенно бесполезную программу, поэтому этот скрипт подходит не только для изучения, но и для использования. Например, если сохранить в текстовый файл карту сайта, то скрипт поможет определить возможные ошибки с ссылками, а если его немного доработать, то даже укажет с какими именно :).
Как можно легко и просто запустить PHP скрипт в консоли Windows
Если вы читаете данную статью, то наверняка уже можете писать простенькие скрипты на PHP, а так же знаете где же они применяются. Но кто нибудь задумывался о том, что PHP скрипты, по мимо веба можно использовать ещё и на PC. Сейчас я покажу вам простой пример каким же образом мы можем запустить наш PHP.
Для начала нам потребуется написать сам скрипт. Поэтом создаём файл PHP. Для урока я создал его прямо на диске С, таким образом путь был C:script.php
Далее при помощи любой IDE Открываем и вписываем наш скрипт, для примера можете воспользоваться вот этим:
Именно благодаря последней строке нам и удастся запустить наш PHP в командной строке. Сохраняем наш файл и двигаемся дальше.
Надеюсь у вас установлен локальный сервер, если нет, то смело двигаемся на официальный сайт Open Server, скачиваем и устанавливаем. Рекомендую установить именно его так, как я лично пользуюсь им, ну и разумеется все статьи идут именно под него.
Для того чтобы запустить написанный ранее скрипт прямо в консоли, давайте настроем переменные среды вашей системы. Я всё же надеюсь на наличие указанного выше сервака.
И так, для начала вам необходимо попасть в свойства системы. Заходим в мой пк и правый клик по любому свободному месту, далее кликаем на свойства.
Далее заходим в дополнительные параметры
В открывшимся окне смотрим в поле Переменные среды для пользователя ***. Скорее всего после установки сервера там уже будет находиться какая либо переменная PATH. Если её нет, то смело кликаем на кнопку создать.
Имя переменной PATH именно большими буквами
Значение переменной, прописываем путь до php. exe. Если у вас стоит OS, то путь должен быть вот таким: C:OpenServermodulesphpPHP-5.6
Ну в случае если вы не выбирали другую директорию для установки.
В случае если переменная уже создана, то просто в конце значения ставим ; и дописываем наш путь выше.
Жмём везде где только можно ОК и перезагружаем компьютер.
Далее открываем командную строку. Надеюсь что вы создали файл как и прямо на диске С, если нет то в рамках урока перенесите туда и введите следующее:
При помощи этой команды мы попадём в корень диска. Далее вводим вот что.
После исполнения данный команды вы увидите на след строке консоли цифру 7
Разумеется это был один из самых простых примеров. Но самое главное, что это даёт понять как вы можете исполнять свои скрипты прямо из командной строки. Например вы можете написать скрипт который бы записывал в файл дату и время, в момент исполнения. И запускали бы его в момент загрузки ПК. В таком случае, вы бы могли отслуживать, запускал ли кто либо ваш ПК в ваше отсутствие, ну и т. д.
Как запустить php из командной строки
Начиная с версии 4.3, РНР поддерживает новый SAPI -тип (Server Application Programming Interface) под названием CLI , что означает Command Line Interface . Как следует из названия, главной задачей этого SAPI -типа является разработка оболочки/shell (или рабочего стола) приложений с помощью РНР. Имеются весьма небольшие отличия CLI SAPI от других SAPI , которые будут далее рассмотрены в этой главе.
CLI SAPI был выпущен в первый раз с PHP 4.2.0 , но тогда это был эксперимент, и нужно было явно включать его командой —enable-cli при запуске ./configure . Начиная с PHP 4.3.0 , CLI SAPI больше не является экспериментальным и всегда встроен и устанавливается как двоичный исполняемый файл php (называется php.exe в Windows).
Существенные отличия CLI SAPI от других SAPI :
В отличие от CGI SAPI , никакие шапки/headers не записываются в вывод.
Хотя в CGI SAPI имеется способ подавления HTTP-шапок, эквивалентного переключателя для их включения в CLI SAPI нет.
Имеются определённые директивы php.ini , которые переопределены в CLI SAPI , поскольку они не имеют смысла в среде окружения оболочки:
Таблица 24-1. Переопределение php.ini -директив
Директива | CLI SAPI- значение по умолчанию | Комментарий |
---|---|---|
html_errors | FALSE | Бывает довольно сложно прочитать в оболочке сообщение об ошибке, наполненное всеми этими бессмысленными HTML -тэгами, поэтому по умолчанию значение этой директивы FALSE . |
implicit_flush | TRUE | Желательно, чтобы любой вывод из print() , echo() и компании немедленно записывался в вывод, а не отправлялся в какой-нибудь буфер. Вы всё ещё можете пользоваться буферизацией вывода, если хотите поработать со стандартным выводом. |
max_execution_time | 0 (unlimited) | Из-за бесконечно больших возможностей использования PHP в среде окружения оболочки, максимальное время выполнения не ограничено. В то время как приложения, написанные для web, выполняются в течение долей секунды, приложения оболочки пытаются занять для своего выполнения максимальное время. |
register_argc_argv | TRUE | Глобальные переменные PHP $argc (количество аргументов, передаваемых приложению) и $argv (массив текущих аргументов) всегда регистрируются и заполняются соответствующими значениями при использовании CLI SAPI . |
Примечание: Эти директивы не могут быть инициализированы другим значением из файла конфигурации php.ini или специального файла (если специфицирован). Это является некоторым ограничением, поскольку эти значения по умолчанию применяются после разбора всех файлов конфигурации. Однако их значение может быть изменено на этапе прогона программы (что не имеет смысла для всех других директив, например, для register_argc_argv).
Легче работать в среде оболочки, когда определены следующие константы:
Таблица 24-2.
Специфические CLI-константыКонстанта | Описание |
---|---|
STDIN | Уже открытый поток в stdin . Она хранит открывшего её |
STDOUT | Уже открытый поток в stdout . Она хранит открывшего её |
STDERR | Уже открытый поток в stdout . Она хранит открывшего её |
Имея всё это, вы не должны, например, самостоятельно открывать поток для stderr , а просто используете константу вместо ресурса потока:
Вам не нужно явно закрывать эти потоки, это делается РНР автоматически.
CLI SAPI не изменяет текущую директорию на директорию исполняемого скрипта!
Пример, показывающий отличие CGI SAPI :
Когда используется CGI -версия, на выходе будет:
Это ясно показывает, что PHP изменяет свою текущую директорию на директорию исполняемого скрипта.
Использование CLI SAPI даёт:
Это даёт большую гибкость при написании утилит командной строки на PHP .
Примечание: CGI SAPI поддерживает поведение CLI SAPI с помощью ключа -C при запуске из командной строки.
Список опций командной строки исполняемого файла PHP может быть получен в любое время путём запуска PHP с ключом -h :
CLI SAPI имеет три разных способа получения PHP -кода, который нужно выполнить:
Сказать PHP выполнить определённый файл.
Оба способа (с/без использования переключателя -f ) выполняют данный файл my_script.php . Вы можете выбрать для выполнения любой файл, названия ваших файлов скриптов PHP не обязаны заканчиваться расширением .php , а могут иметь любое имя или расширение.
Передать PHP код для выполнения непосредственно из командной строки.
Особого внимания требует замена переменных оболочки и использование кавычек.
Примечание: Просмотрите пример внимательно, нет начальных и конечных тэгов! Переключателю -r они просто не нужны. Использование их в данном случае приведёт к ошибке разборщика.
Предоставить PHP -код для выполнения через стандартный ввод ( stdin ).
Это позволяет динамически создавать PHP -код и передавать его экзешнику, как показано в данном (надуманном) примере:
Вы не можете комбинировать эти три способа при выполнении кода.
Как и в любом приложении оболочки, не только сам PHP , но и ваши скрипты PHP также принимают аргументы. Количество передаваемых в скрипт аргументов в РНР не ограничивается (оболочка имеет ограничение на количество передаваемых символов).
Вторая регистрируемая глобальная переменная это $argc , которая содержит количество элементов в массиве $argv (а не количество аргументов, передаваемых в скрипт).
Если аргументы, которые вы хотите передать в скрипт, не начинаются с символа дефиса (-) , ничего специально наблюдать не надо. Передача в скрипт аргумента, начинающегося с — , создаст проблемы, поскольку PHP думает, что должен сам их обработать. Чтобы предотвратить это, используйте в качестве сепаратора аргументов списка — .
Однако, вот другой способ использования PHP для скриптинга оболочки. Вы можете написать скрипт, первая строка которого начинается с #!/usr/bin/php , а затем идёт нормальный PHP -код, содержащийся между начальным и конечным тэгами PHP , и соответствующим образом устанавливаются атрибуты выполнения файла. Таким способом он может быть исполнен как нормальный скрипт оболочки или perl:
Приняв, что файл называется test и находится в текущей директории, мы можем выполнить:
Как вы видите, ничего особо не нужно делать при передаче параметров в скрипт, который начинается с — .
Таблица 24-3. Опции командной строки
Опция | Описание |
---|---|
-s | |
-c | |
-a | |
-e | |
-i | Эта опция командной строки вызывает phpinfo() и печатает на вывод результаты. Если PHP не работает правильно, советуем выполнить php -i и посмотреть, выводятся ли сообщения об ошибке до или вместо таблиц информации. Имейте в виду, что вывод будет на HTML и, следовательно довольно сумбурным. |
-r | |
-h | С помощью данной опции вы можете получить информацию о действующем списке опций командной строки и небольшое описание их работы. |
Исполняемый файл PHP может быть использован для запуска PHP-скриптов абсолютно независимо от web-сервера.
Если вы работаете под Unix, вы должны добавлять специальную первую строчку в ваши PHP-скрипты и делать их исполняемыми, чтобы система знала, какая программа должна выполнять эти скрипты.
Под Windows вы можете ассоциировать php.exe с опцией двойного щелчка по файлам .php либо сделать batch-файл (. bat) для запуска скрипта через PHP. Строка, добавленная в начало скрипта для работы под Unix, не помешает под Windows, поэтому вы можете писать таким образом межплатформенные программы. Ниже дан пример простой РНР-программы для выполнения из командной строки.
Пример 24-1. Скрипт, предназначенный для запуска из командной строки (script.php) |
Здесь мы используем специальную первую строку для указания на то, что этот файл должен быть запущен в PHP. Здесь мы работаем с CLI-версией, поэтому не выполняется вывод HTTP-шапок/header. Имеются две переменные, которые вы можете использовать при написании РНР-приложений для командной строки: $argc и $argv . Первая — это количество аргументов плюс 1 (имя запущенного скрипта). Вторая — это массив аргументов, начиная с имени скрипта с индексом ноль ( $argv[0] ).
Мы проверяем, имеется ли менее или более одного аргумента. Также, если аргумент был —help , -help , -h или -? , мы печатаем help-сообщение, выводя имя скрипта динамически. Если мы получили какой-либо другой аргумент, мы выводим его (echo).
Если вы хотите выполнить вышеприведённый скрипт под Unix, вам необходимо сделать его executable и просто вызвать как script.php echothis или script.php -h . Под Windows вы можете создать batch-файл для выполнения этой задачи:
Пример 24-2. Пакетный/Batch-файл для запуска PHP-скрипта в командной строке (script.bat) |
Приняв, что вы назвали программу script.php и что ваш php.exe находится в c:phpphp.exe , этот batch-файл запустит её с добавленными вами опциями: script.bat echothis или script.bat -h .
См. также в документации по расширению Readline о функциях, которые можно использовать для усовершенствования вашего РНР-приложения для командной строки.
PHP является одним из наиболее популярных языков программирования в вебе. Своей популярностью он в первую очередь обязан легкости в изучении и многофункциональности. Но сфера его применения не заканчивается только на создании простых веб-страничек. PHP-скрипты можно запускать из командной строки, что позволяет писать на нем полноценные консольные приложения.
Как запустить php-скрипт из командной строки?
Независимо от используемой операционной системы, для запуска скрипта необходимо набрать в консоли следующую команду:
Ваша ОС может выдать сообщение о том, что команда php ей неизвестна. В таком случае, и если вы уверены, что сам интерпретатор PHP установлен корректно, поможет указание полного пути к интерпретатору во время запуска скрипта.
Для UNIX-подобных систем:
Обратите внимание, что путь к интерпретатору PHP на вашей системе может быть другим, поэтому это тоже надо учесть. Например, для пользователей популярного пакета WampServer путь может быть таким:
Ну и наконец, чтобы не вводить полный путь каждый раз, следует добавить путь к интерпретатору в переменную окружения PATH вашей операционной системы.
Пишем простой скрипт для проверки кода ответа сервера
Для того, чтобы показать особенности работы скрипта из командной строки, напишем простое приложение, которое будет брать текстовый файл со ссылками и проверять код ответа сервера для каждой из этих ссылок. Причем предусмотрим возможность выбора нужного файла в интерактивном режиме, чтобы заодно узнать, как это делается.
Сразу после запуска скрипт выбирает все файлы с расширением *.txt из папки files . Затем выводит данный список пользователю в формате номер => имя и ждет от пользователя ввода номера интересующего его файла.
Получение всех файлов по маске делается просто, для этого воспользуемся стандартной функцией glob , а вот с чтением данных из консоли всё немного интересней. Дело в том, что после запуска скрипта из командной строки в нем открываются три стандартных потока: для вывода (STDOUT), ввода (STDIN) и ошибок (STDERR). Указатели на эти потоки доступны для скрипта в виде одноименных констант и работать с ними можно так же как, например, с обычными файлами. Таким образом, чтобы прочитать данные из консоли достаточно просто прочитать строку из потока ввода: fgets(STDIN) .
После того, как пользователь сделал свой выбор и проверки правильности выбора, мы можем открыть файл для чтения.
С помощью цикла while начинаем перебирать все строки в файле. Строки должны быть корректными url-адресами иначе мы не сможем определить правильный код ответа сервера. Заголовки для каждого адреса получаем с помощью стандартной функции get_headers , а код ответа находится обычно в первой строке заголовка.
В итоге после обработки файла, можно вывести небольшую статистику о том, сколько заняла обработка по времени и какие коды ответа сколько раз встречались.
Результатом работы такого приложения может быть, например, такой вывод:
Выводы
Вот и всё, простое и интерактивное консольное приложение на PHP готово. Мне не хотелось писать какую-нибудь совершенно бесполезную программу, поэтому этот скрипт подходит не только для изучения, но и для использования. Например, если сохранить в текстовый файл карту сайта, то скрипт поможет определить возможные ошибки с ссылками, а если его немного доработать, то даже укажет с какими именно :).
Я новичок в php и хотел запустить php из командной строки. Я установил WAMP и установил «Системные переменные» в папку php (которая C:wampinphpphp5.4.3 ).
Когда я иду в Run -> CMD -> Тип php -a и нажмите ввод, он говорит interactive mode enabled , Но когда я пишу echo ‘Hi’; это ничего не показывает.
Я даже не вижу ничего похожего на «php>», когда я печатаю php -a и нажмите ввод.
Решение
PHP CLI как его называют (php для интерфейса командной строки) называется php.exe
Оно живет в c:wampinphpphp5.x.yphp.exe (где x и y — номера версий установленного вами php)
Если вы хотите создавать php-скрипты для запуска из командной строки, тогда отлично, это просто и очень полезно.
Создайте себе командный файл, как это, давайте назовем его phppath.cmd :
+ Изменить x.y.z к действительному имени папки для версии PHP, установленной в WAMPServer
Сохраните это в одну из ваших папок, которая уже находится в вашей переменной PATH, чтобы вы могли запустить ее из любого места.
Теперь из командного окна перейдите в вашу исходную папку и запустите> phppath. Z ) который обозначает конец файла.
Я также вспоминаю, что нашел решение из комментария пользователя сайта php: http://www.php.net/manual/en/features.commandline.interactive.php#105729
Попробуйте использовать командный файл
- Открыть блокнот
- тип php -S localhost:8000
- сохранить файл как .bat расширение, server.bat
- Теперь нажмите на server.bat файл ваш сервер готов http://localhost:8000
зависимость
если вы получили ошибку, php не распознает внутреннюю или внешнюю команду
затем перейдите в переменную окружения и отредактируйте путь к php.exe
«C:wampinphpphp5.4.3»
Проблема, которую вы описываете, звучит так, будто ваша версия PHP может отсутствовать в модуле PHP readline, из-за чего интерактивная оболочка не работает. Я основываю это на эта ошибка PHP представление.
И посмотрите, появляется ли readline в выводе.
Могут быть веские причины для исключения readline из дистрибутива. PHP обычно выполняется веб-сервером; так что в большинстве случаев это не нужно. Я уверен, что вы можете выполнить код PHP в файле из командной строки, используя:
Существует также phpsh проект, который предоставляет (лучшую) интерактивную оболочку для PHP. Тем не менее, некоторые люди имели проблемы с запуском его под Windows (я не пробовал
это сам).
редактировать:
В соответствии с документация здесь , readline не поддерживается в Windows:
Примечание. Это расширение недоступно на платформах Windows.
Итак, если это правильно, ваши варианты:
- Избегайте интерактивной оболочки и просто выполняйте код PHP в файлах из командной строки — это должно работать хорошо
- Попробуйте заставить phpsh работать под Windows
Если вы хотите просто запустить быстрый фрагмент кода, вы можете использовать опцию -r:
-r позволяет запускать код без использования тегов скрипта
Вы можете запустить php-страницы, используя php.exe
создайте php-файл с php-кодом и в cmd напишите «[PATH to php. ext]php.exe [path_to_file]file.php»
ОБНОВЛЕНО
После нескольких исследований лучшим решением было использовать эту информацию другой поток чтобы избежать ввода ctrl + z, а также от вывода осыпи.
Итак, вместо php -a ты должен использовать call «php.exe» -f NAMED_SCRIPT.php
OLD
Readline невозможен в Windows, поэтому ни одна из существующих оболочек php, написанных на php, не будет работать. Но есть обходной путь, использующий интерактивный режим.
2 общие проблемы здесь. Вы не можете видеть результат, пока не выполнит команду CTRL Z, чтобы указать финал кода / файла, такого как EOF. Когда вы это сделаете, в большинстве случаев будет напечатан результат и быстро закрытое окно. В любом случае вы вернетесь в cmd, а не в интерактивный режим.
Сохраните это содержимое в файл .bat и определите свой PHP PATH в переменных Windows, или вместо этого измените php.exe на «полный путь к exe»:
Это простой пакетный запуск — режим php. exe. Когда он запускает php, остановите скрипт, даже если пауза не написана, потому что он «в» интерактивном ожидании ввода. Когда вы нажимаете CTRL Z, получаете SIGSTEP (следующий шаг), а не SIGSTOP (закрытие, обычно CTRL + C), а затем читаете следующее вторжение, которое является рекурсивным вызовом самого .bat. Поскольку вы всегда находитесь в режиме PHP -a, нет команды выхода. Вы должны использовать CTRL + C или нажать крест на выходе с помощью мыши. (Нет alt + f4)
Вы также можете использовать конвертер «Bat to Exe» для простоты использования.
Следующее решение специально для окружающей среды:
Это немного меня обмануло, я попробовал все остальные предложения, $ PATH и т. Д. Даже искал реестр Windows в поисках подсказок:
Как запустить php файл в браузере
Введение в язык PHP для новичков
Для запуска PHP локально на вашем компьютере необходима программа-сервер. Для windows лучший вариант — OpenServer, для linux — LAMP, для macos — MAMP.
Установка такого сервера займет некоторое время. Чтобы не останавливаться в обучении, выполняйте пока PHP код в онлайн редакторе, например, в этом.
Как выполнить PHP
Пусть у вас уже есть установленный PHP сервер. В нем ваши программы будут располагаться в файлах с расширением php . Эти файлы на самом деле представляют собой обычные HTML файлы, в которых мы можем писать HTML код наших страниц, вот так:
В этих файлах прямо внутри HTML кода мы можем писать PHP код. Он пишется в специальных скобках <?php и ?> . Давайте сделаем это:
Если запустить этот файл через PHP сервер, то сервер выполнит команды PHP и результат отправит в браузер. Команда echo , которую вы там можете увидеть, просто выполняет вывод заданной строки. В результате в браузер улетит только HTML код, а вместо PHP кода будет стоять результат его выполнения.
Упрощение
Для простоты на этапе обучения лишние теги можно не писать:
Проблема с кодировками
Чтобы русский текст выводился корректно, необходимо выполнение нескольких условий. Во-первых, кодировка самого файла должна быть utf-8 . Во-вторых, нужно указать кодировку в HTML коде:
Иногда описанные процедуры не помогают и тогда может помочь команда mb_internal_encoding :
Вывод ошибок PHP
Если вы допустите в вашем PHP коде ошибку, то сервер выведет описание этой ошибки прямо в браузер. Ошибки бывают трех типов: notice , warning и fatal .
Нотисы представляют собой замечания о том, что у вас в коде может что-то быть не так. Хотя код по-прежнему будет работать. Лучше, однако, эти ошибки не оставлять без внимания, а исправлять их.
Ворнинги представляют собой предупреждения о том, что что-то пошло не так. Как правило при этом ваш код запустится, но будет работать не так, как вы хотите.
Фаталы возникают в том случае, когда PHP код не может быть выполнен. Как правило это будет связано с допущенной вами синтаксической ошибкой.
Есть, однако, проблема. По умолчанию нотисы и ворнинги выключены, а вместо фаталов вы будете видеть просто белый экран. Это, конечно же, малоинформативно. Давайте включим вывод всех ошибок:
Иногда, однако, данная команда не сработает (зависит от настроек сервера). На помощь придет вторая команда:
Лучше сразу писать две:
На выложенном в интернет сайте вывод ошибок лучше отключать. Делается это вот так:
Полный код для запуска PHP
В соответствии с описанным полный код для запуска PHP скриптов будет выглядеть так:
Улучшим код для запуска
Полученный нами код слишком уж большой. Кроме того, если вы учитесь у меня на курсах PHP и будете присылать решение каждой задачи с этим лишнем кодом, мне будет не очень удобно его проверять.
Давайте его доработаем. Для этого сделаем два файла. Пусть первый файл будет index.php и именно его вы будете запускать в браузере:
Обратите внимание на команду include , написанную в первом файле. Эта команда будет автоматически подключать код второго файла к первому. И все команды первого файла автоматически применятся к подключенному коду второго файла.
А второй файл будет называться code.php . В нем вы просто будете писать PHP код и именно этот файл вы будете присылать на проверку:
Далее в учебнике во всех примерах кода я буду для простоты опускать лишние команды.
Запускаем первый PHP скрипт
1. Проинсталлировать denwer. Достаточно сделать только 1 раз.
2. Перезагрузить компьютер.
3. Если при установке поставили галочку, что автоматически запускать денвер при старте, то данный пункт пропускаем, в противном случае идём по адресу установки денвера, по умолчанию это c:/WebServers/ открываем папку «/denwer/» и запускаем его: «run.exe» , полный путь выглядит так: «c:/WebServers/denwer/run.exe». Теперь справа внизу должны появиться 2 иконки в виде розового пера и черной шапки на черной почтовой открытке.
4. Проверяем наличие папки по адресу: «c:/WebServers/home/test1.ru/www/». Так вот, данная директория и есть папка, в которой будет наш сайт.
5. В DreamWeaver создаём сайт: «Site/New site». Указываем имя для сайта и данную директорию, так как в ней будет располагаться наш сайт. Все .php файлы сохраняем в эту директорию и её поддиректории.
6. Запускаем скрипт. Открываем браузер и вводим в адресной строке: http://test1.ru/ — автоматически откроется index.php в корне сайта, или напрямую указываем файл, какой хотим открыть: http://test1.ru/myfile.php , это значит, что файл myfile.php находится по адресу: c:/WebServers/home/test1.ru/www/myfile.php
7. Теперь проверяем, работает ли наш файл верно. Пишем следующий код внутри:
Теперь на экране должна появиться фраза Hello World! без остальных символов, это значит, что мы всё верно сделали и можем приступать к изучению PHP.
Как запускать PHP-код
Данную статью я решил посветить всем начинающим изучать PHP, потому что у всех возникает одна и та же ошибка. Почему её допускают, не знаю, но допускают постоянно. Я без преувеличений скажу, что получил уже около сотни вопросов, на которые ответ будет дан в этой статье. Эта ошибка связана с неправильным запуском в PHP.
Как делают практически все новички:
- Создают PHP-файл (иногда HTML-файл, но это самые новички).
- Записывают туда PHP-код.
- И двойным кликом пытаются открыть его в браузере.
Результат, браузер код открывает, но исполнять его не торопится. А просто выводит какие-то куски кода обычным текстом, либо вообще ничего не выводит.
Ошибка данного подхода состоит в том, что ученик не понимает, что PHP — это серверный язык, а не клиентский. Это HTML или JavaScript клиентские языки, они, конечно, обрабатываются браузером. Но для PHP нужен интерпритатор. И вот данный интерпритатор запускается сервером.
Вывод: запускать PHP-код надо через сервер. Если у Вас Denwer, значит, через него.
Теперь, как запускать PHP-код через Denwer. Большинство новичков вновь делают ошибку. Они вроде бы всё делают правильно, создают нужные папки, перезапускают Denwer и вроде бы, осталось только правильно вызвать файл. Но тут снова ошибка: они вновь открывают файл просто в браузере (либо перетаскиванием файла в браузер, либо двойным кликом). Это легко можно заметить по адресу в адресной строке. Там будет что-то наподобие: file:///Z:\home\mysite.local\www\script.php.
А правильно запускать надо, вводя адрес виртуального хоста. То есть прямо в адресной строке браузера вводите: http://mysite.local/script.php — всё, теперь скрипт запустится и выведет свой результат.
Надеюсь, данная статья поможет многим новичкам, только начинающим изучать PHP.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Она выглядит вот так:
Комментарии ( 49 ):
А как можно исправить код на сайте на вордпресс? Если надо изменить немного шапку в шаблоне? Мой сайт http://ubolika.ru — В каком там файле надо вносить изменения?
Найдите файл index.php в папке с темой Вашего шаблона. Данный файл и нужно править.
Установил Denwer, всё сделал как сказано, но PHP в браузере не выводится
Файлы имеют расширение php? Сайты вообще открываются (например, HTML-код)? Если всё так, то скопируйте адрес из адресной строки и покажите его.
Здравствуйте Михаил! Создал на диске С папку WebServers. Установил туда Denwer. После установки было написано, что Denwer успешно установлен. Набрал в браузере адрес тестового сайта: test1.ru Браузер мне выдал: Это файл /home/test1.ru/www/index.html. Всё вроде бы работает. Создал папку с сайтом: C:\WebServers\home\test2. ru Перезапустил Denwer. В папке с сайтом test2.ru создал папку www. В ней создал документ index.html В html всё работает хорошо. Создают второй документ с расширением php. Пишу для проверки такой php-код: <?php $a = 5; echo «$a»; ?> В браузере, если я понимаю правильно, я должен увидеть 5. Но ничего нет. В программе Notepad++ открывают документ в браузере. Путь такой: file:///C:/WebServers/home/test2.ru/www/index2.php
Во-первых, перезапускать сервер надо было после создания www. А что касается пути, то внимательнее прочитайте статью, как раз о Вашей ошибке там и говорится.
Перезапустил Denwer после того, как создал папку www. Создал в этой папке файл с расширением php. Вы могли бы мне подсказать, что я должен ввести в браузере из ходя из того пути, который я вам написал?
Большое Вам спасибо Михаил! С вашей помощью мне наконец удалось решить данную проблему.
Михаил, для меня PHP ещё тёмный лес. Как я понял, для выполнения кода PHP страница должна иметь расширение *. php. А почему тогда у вас страницы на сайте с расширением *.html?
Здравствуйте Михаил!я пробовал все что сказано в коментариях и все получилась! за этоспасибо большое . теперь пишу вот такой простинкий код <html> <body> <p>проверка </p> <? echo пробуем PHP ?> </body> </html> отображается ошибка Parse error: syntax error, unexpected T_STRING, expecting ‘,’ or ‘;’ in Z:\home\test2.ru\www\index2.php on line 4 скажи пожалуста в чем ошибка
Про echo: http://myrusakov.ru/hello-world-php.html
. у меня броузер не открывает страницу с шасширением php ,а пытается сохранить ! что делать ?
Скопируйте адрес из адресной строки.
спасибо,заработало. но пшп браузер не хочет кушать ,пишет следующее: HTML1406: Недопустимое начало тега: «<?». Теги не должны начинаться с вопросительных знаков. что делать ?
Попробуйте в другом браузере.
. наконец-то высидев на пятой точке ночь — я таки достал этот денвер и и прописав http:// получил работающий php .
Создаю документ с расширением php. Пишу для проверки такой php-код: <?php $a = 5; echo «$a»; ?> В браузере, если я понимаю правильно, я должен увидеть 5. и мне показывает 5 но когда я выключаю denwer и включаю и мне уже не выдает 5 а весь код выдает ??
Для работы PHP необходим denwer.
Спасибо, щас PHP код заработал.
вроде разобрался с php кодом) теперь можете обьяснить как исправить это file:///Z:/home/mysite.local/www/index.php на это http://mysite.local/index.php что бы с Notepad++ запускать файлы на прямую.ещё раз спасибо вам вы граммотный учитель.
Вам не нужно ничего менять. Изменяете файл как обычно, сохраняете (ctrl+s) и параллельно смотрите изменения в браузере, где и открыт mysite.local.
Михаил я не много не понял,файлы с кодировкой изменять или где?просто в браузере вот такое file:///Z:/home/mysite.local/www/index.php а название файлов например вот такое index.php,так как и что изменять?за ранее спасибо.
Почитайте статью. В браузере не должно быть такого адреса, это не адрес локального сервера.
Михаил какую статью прочитать?эту?,а вы можете подсказать как изменить?а то догадками как то не понятно))
Да, эту. Там всё написано как раз по Вашему вопросу, я и не знаю как понятнее объяснить. В браузере должен быть только адрес сайта по типу http://mysite.local
Здравствуйте. пожалуйста помогите запустить файл php. сделал все строго по инструкции. в конечном итоге браузер мне пишет к сожaлению google не может открыть страницу. что делать
Попробуйте вручную вписывать http:// перед адресом.
А у меня такая проблема. когда устанавливал Denwer — все сделал правильно. Потом начал набирать сайт по видеоуроку «основы HTML». переименовал все страницы в php. запускал сайт через mysite.local в браузере — без проблем. Теперь решил создать сайт (так сказать урок номер 2) с использованием связанного стиля CSS. но я просто удалил из папки www на сервере все файлы первого сайти и закинул туда новые, включая index.php, фаил стилей .css и т.д. Так вот теперь запускаю в браузере mysite. local, все работает, но отображается только голимый html. в чем проблема. и заново www создавал, делал все что в статьях написано — не помогает. Что делаю не так?
Обращайтесь в службу поддержки.
Стили вообще подключены? Если нет, то ошибка в коде
Тот же глупый и вечный вопрос про неисполнение php. Попытка запустить инсталляцию DLE. Denwer установлен, база данных и пользователь создан, Denwer перезапущен по ходу 20 раз. адрес вводится правильно (http://dle.ru/install.php). html файлы и рисунки браузер открывает (например http://dle.ru/templates/default/images/alert.png). php — нет. Сам файл находится на Y:/home/dle.ru/www/install.php.
Максим, в адресной строке браузера следует писать не Y:/home/dle.ru/www/install.php, а что-то вроде этого: www.yousite.com/install.php
Да, правильно, чтобы в браузере в адресной строке было»Веб» а не «Локальный». Просто php какой-то левый. С другим пошло.
Здраствуйте, Михаил. Подскажите пожалуйста: я создал форму (ввиде заказа товара) с HTML-кодом и сделал обработчик РНР который должен обработать форму и отправитьобработанные данные на ел. почту, письмо он то отправляет, но просто с текстом без обработки переменных, т.е. скажем в поле «От кого» пустое место и так со всеми полями.
Здравствуйте, у меня не работает PHP, когда я создаю скрипт то вместо http://mysite.local/script.php сервер направляет на file:///Z:\home\mysite.local\www\script.php. Как локальный сервер правильно настроить, чтобы он выводил мои скрипты, а не код? С уважением Евгений Голубев
я вам уже отвечал. 1.создали папку home\mysite.local\www\ mysite.local создаётся там же,где и папка localhost, закинули файл script.php в папку www перезагрузили denwer,открыли браузер. в адресной строке ввели:http://mysite.local/script.php
Я изменил, ссылку с под название своего сайта, но она почему то не работает? С уважением Евгений Голубев.
не дублируйте комментарии в службу поддержки и сюда.
Здравствуйте!! Вопрос такого плана, когда поменял расширения файлов html на php на сайте вместо текста сразу вылезли абракадабрики, отчего??
Возможно надо сохранить код сайта в notepad++ а сверху в пункте меню кодировка выбрать utf-8 without BOM. Также надо создать файл .htaccess и в нем прописать AddDefaultCharset UTF-8
помогите и мне пожалуйста, 1 страница именно после создания меню html и переименования php страницы в разделе меню выдает абрыкадабры, 2 страница нормально. и коды переставила, ничего не помогает. если создавать файл где конкретно и как
все в порядке, именно в первой странице в кодировке спустилась ниже и нажала преобразовать в utf-8, хотя для остальных страниц достаточно было нажать просто utf-8, может кому то будет полезным! : )
СПАСИБО УВАЖАЕМЫЙ. ОЧЕНЬ ПОМОГЛА ВАША СТАТЬЯ. из всего что нашла в инете именно ВАША спасла меня!! СПАСИБО 1000раз.
В вашем уроке по РНР с нуля до гуру я приступил к написанию движка и в результате имел много ошибок при выводе страницы. Когда я их исправил у меня вышел только пустой экран. Существует ли какойто способ проверки каждого класса на роботоспособность? Возможно ли проверять работу функций во время их написания?
Включите максимальное отображение ошибок.
Помогите пожалуйста: когда всё сделал от и до, браузер пишет веб-страница не доступна. Почему? Может какие то хост права разрешить или что то вроде этого?
добрый день! подскажите пож-ста, установила Open server при запуске файла с php кодом открывается пустая страница или выводится сам код на страницу, раcширение .php, запускаю файл через open server, путь https://new/index.php . html код с расширением .php открывается нормально что делать??
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Как запускать программы PHP?
XAMPP — это инструмент веб-разработки, созданный Apache, который позволяет легко запускать сценарии PHP (персональные домашние страницы) на вашем компьютере локально. Установка XAMPP Server в Windows проста по сравнению с ручной установкой веб-сервера, а PHP требует глубоких знаний по настройке. Пакет XAMPP устанавливает MySQL, FileZilla, Mercury, Perl и Tomcat вместе с веб-сервером и PHP, с помощью этих приложений вы можете протестировать полноценный веб-сайт на своем рабочем столе. Вам не нужно каждый раз загружать его на онлайн-сервер.
Шаг 1: Прежде всего, откройте веб-сайт Apache Friends, загрузите XAMPP для Windows и установите его.
Шаг 2: Запустите панель управления программой XAMPP. Нажмите кнопку «Пуск» рядом с «Apache», чтобы запустить веб-сервер Apache. Кроме того, запустите «MySQL», если ваши программы PHP зависят от базы данных MySQL для запуска.
Как запускать программы PHP?
Шаг 3: Поместите файлы PHP в папку «htdocs», расположенную в папке «XAMPP» на вашем диске (например, C/D/E и т. д.). Начальный путь — «your_drive_letter:\xampp\htdocs» для вашего веб-сервера. Убедитесь, что ваши файлы PHP сохранены с расширением «.php».
Пример: Файл «demo.php» сохраняется в папке htdocs .
PHP
|
|
Как запускать программы PHP?
Шаг 5: Вы можете создать любую папку для тестирования файлов PHP в папке «htdocs» . Если вы создаете определенную папку, вам нужно использовать адрес «localhost/foldername», чтобы открыть их в браузере.
Пример: Файл «demo.php» находится в папке «gfgdemo». Введите « localhost/gfgdemo/demo.php » в вашем браузере и нажмите Enter, ваша программа будет запущена.
Как запускать программы PHP?
PHP чувствительность к регистру
PHP — это язык, чувствительный к регистру, в переменных и функциях теги чувствительны к регистру, но классы не чувствительны к регистру. Ниже приведен пример чувствительности к регистру php.
Пример 1: echo.php
PHP
|
в>
в>
в>
29008
9003 . на изображении.
Вывод:
Как запускать программы PHP?
Пример 2: color.php
PHP
|