Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Как запустить php файл из командной строки


Как запустить PHP из командной строки Windows PHP Lang

Я новичок в php и хочу запустить php из командной строки. Я установил WAMP и установил «Системные переменные» в свою папку php (это C:\wamp\bin\php\php5.4.3 ).

Когда я иду в Run -> CMD -> Введите php -a и нажмите enter, он говорит, что interactive mode enabled . Но когда я пишу echo 'Hi'; он ничего не показывает.

Я даже не вижу ничего подобного «php>», когда я php -a и нажимаю enter.

PHP CLI как его называемый (php для интерфейса командной строки) называется php.exe. Он живет в c:\wamp\bin\php\php5.xy\php.exe (где x и y – номера версий php, которые вы установили)

Если вы хотите создать php-скрипты для запуска из командной строки, тогда это будет очень просто и очень полезно.

Создайте себе пакетный файл, как это, позвоните ему phppath.cmd :

 PATH=%PATH%;c:\wamp\bin\php\php5.xy php -v 

Сохраните это в одной из ваших папок, которая уже находится на вашем PATH, поэтому вы можете запускать ее из любого места.

Теперь из командного окна, cd в исходную папку и запустите> phppath.

Затем запустите

php your_script.php

Он должен работать как сон.

Вот пример, который настраивает PHP Composer и PEAR, если это необходимо, и они существуют

 @echo off REM ************************************************************** REM * PLACE This file in a folder that is already on your PATH REM * Or just put it in your C:\Windows folder as that is on the REM * Serch path by default REM * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - REM * EDIT THE NEXT 3 Parameters to fit your installed WAMPServer REM ************************************************************** set baseWamp=D:\wamp set defaultPHPver=7.1.9 set composerInstalled=%baseWamp%\composer set phpFolder=\bin\php\php if %1.==. ( set phpver=%baseWamp%%phpFolder%%defaultPHPver% ) else ( set phpver=%baseWamp%%phpFolder%%1 ) PATH=%PATH%;%phpver% php -v echo --------------------------------------------------------------- REM IF PEAR IS INSTALLED IN THIS VERSION OF PHP IF exist %phpver%\pear ( set PHP_PEAR_SYSCONF_DIR=D:\wamp\bin\php\php%phpver% set PHP_PEAR_INSTALL_DIR=D:\wamp\bin\php\php%phpver%\pear set PHP_PEAR_DOC_DIR=D:\wamp\bin\php\php%phpver%\docs set PHP_PEAR_BIN_DIR=D:\wamp\bin\php\php%phpver% set PHP_PEAR_DATA_DIR=D:\wamp\bin\php\php%phpver%\data set PHP_PEAR_PHP_BIN=D:\wamp\bin\php\php%phpver%\php.exe set PHP_PEAR_TEST_DIR=D:\wamp\bin\php\php%phpver%\tests echo PEAR INCLUDED IN THIS CONFIG echo --------------------------------------------------------------- ) else ( echo PEAR DOES NOT EXIST IN THIS VERSION OF php echo --------------------------------------------------------------- ) REM IF A GLOBAL COMPOSER EXISTS ADD THAT TOO REM ************************************************************** REM * IF A GLOBAL COMPOSER EXISTS ADD THAT TOO REM * REM * This assumes that composer is installed in /wamp/composer REM * REM ************************************************************** IF EXIST %composerInstalled% ( ECHO COMPOSER INCLUDED IN THIS CONFIG echo --------------------------------------------------------------- set COMPOSER_HOME=%baseWamp%\composer set COMPOSER_CACHE_DIR=%baseWamp%\composer PATH=%PATH%;%baseWamp%\composer rem echo TO UPDATE COMPOSER do > composer self-update echo --------------------------------------------------------------- ) else ( echo --------------------------------------------------------------- echo COMPOSER IS NOT INSTALLED echo --------------------------------------------------------------- ) set baseWamp= set defaultPHPver= set composerInstalled= set phpFolder=




 

Вызовите этот командный файл таким образом, чтобы использовать стандартную версию PHP

 > phppath 

Или получить определенную версию PHP, как это

 > phppath 5.6.30 

Я помню один раз, когда несколько месяцев назад я наткнулся на эту проблему, потому что в окнах нет readline, поэтому нет интерактивной оболочки, чтобы использовать интерактивный режим php без поддержки readline, вы можете сделать это вместо этого:

 C:\>php -a Interactive mode enabled <?php echo "Hello, world!"; ?> ^Z Hello, world! 

После входа в интерактивный режим введите с помощью открытия ( <?php ) и закрытия ( ?> ) Php-тега и завершите управление Z ( ^Z ), которое обозначает конец файла.

Я также помню, что я нашел решение от комментария пользователя сайта php: http://www.php.net/manual/en/features.commandline.interactive.php#105729

Попробуйте использовать командный файл

  1. Открыть блокнот
  2. Тип php -S localhost:8000
  3. сохранить файл как расширение .bat , server.bat
  4. теперь нажмите на server.bat файл, ваш сервер готов на http://localhost:8000

зависимость

если у вас возникла ошибка, php не распознает какую-либо внутреннюю или внешнюю команду, то перейдите в переменную окружения и измените путь к php.exe "C:\wamp\bin\php\php5.4.3"

Проблема, которую вы описываете, звучит так, как ваша версия PHP может отсутствовать PHP-модуль readline, в результате чего интерактивная оболочка не работает. Я основываю это на этом представлении ошибок PHP .

Попробуйте запустить

 php -m 

И посмотрите, появляется ли на выходе «readline».

Могут быть веские причины для отказа от чтения из дистрибутива. PHP обычно выполняется веб-сервером; поэтому на самом деле это не нужно для большинства случаев использования. Я уверен, что вы можете выполнить PHP-код в файле из командной строки, используя:

 php file.php 

Существует также проект phpsh, который обеспечивает (лучшую) интерактивную оболочку для PHP. Тем не менее, некоторые люди столкнулись с трудностями при работе под Windows (я сам этого не пробовал).

Изменить : согласно документации здесь , readline не поддерживается в Windows:

Примечание. Это расширение недоступно на платформах Windows.

Итак, если это правильно, ваши варианты:

  • Избегайте интерактивной оболочки и просто выполняйте PHP-код в файлах из командной строки – это должно хорошо работать
  • Попробуйте заставить phpsh работать под Windows

Если вы хотите просто запустить быстрый фрагмент кода, вы можете использовать параметр -r:

 php -r "echo 'hi';" 

-r позволяет запускать код без использования тегов скриптов <?..?>

ОБНОВЛЕНО. После нескольких исследований лучшим решением было использование этой информации в другом потоке stackoverflow, чтобы избежать ввода ctrl + z, а также из вывода scree. Итак, вместо 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 Shell launch wrapper :: @ECHO off call "php.exe" -a echo. echo. call "PHP Shell.bat" 

Это простой пакетный запуск – режим php.exe. Когда он запускает php, останавливает скрипт, даже пауза не записывается, потому что «находится» в интерактивном ожидании ввода. Когда вы нажимаете CTRL Z, получает SIGSTEP (следующий шаг), а не SIGSTOP (обычно закрывайте, CTRL + C), затем читайте следующую конструкцию, которая является рекурсивным вызовом самому .bat. Поскольку вы всегда находитесь в режиме PHP -a, нет команды выхода. Вы должны использовать CTRL + C или нажать на крест на выходе с помощью мыши. (Нет alt + f4)

Вы также можете использовать конвертер «Bat to Exe» для удобства использования.

Вы можете запускать php-страницы, используя php.exe, создать некоторый php-файл с php-кодом и в cmd записать "[PATH to php.ext]\php.exe [path_to_file]\file.php"

Это потому, что вы находитесь в «Интерактивном режиме», где php оценивает все, что вы набираете. Чтобы увидеть конечный результат, вы делаете «ctrl + z» и Enter. Теперь вы должны увидеть оцениваемый результат 🙂

ps запускает cmd как Администратор!

В Windows поместите файл php.exe в windows / system32 или в другие системные исполняемые папки, а затем перейдите в командную строку и введите php и нажмите Enter, следуя за ним, если он не генерирует никаких ошибок, тогда вы готовы использовать PHP в командной строке , Если вы установили свой php.exe где-то еще, кроме системных папок по умолчанию, вам нужно установить путь к нему в переменных среды! Вы можете попасть туда по следующему пути ….

панель управления -> Система -> Изменить переменные среды вашей учетной записи -> Environment Vaiables -> path -> edit, а затем установить абсолютный путь вашего php.exe и следовать той же процедуре, что и в первом абзаце, если ничего в ошибке отдела, то вы готовы использовать php из командной строки!

Следующее решение специально предназначено для среды Wamp:

Это лишило меня на некоторое время, попробовал все другие предложения, $ PATH и т. Д. Даже искал реестр Windows, ища подсказки:

GUI (wampmanager) указывает, что у меня есть версия 7, и да, если я phpinfo () на странице в браузере, она скажет мне, что ее версия 7.xx все же php -v в командной строке сообщает о 5.xx

Если вы нажмете правой кнопкой мыши на голову wampmanager на значок-> tools-> удалить неиспользуемые версии и удалите старую версию, позвольте ей перезапустить службы, тогда командная строка вернет 7.xx

Это решение означает, что у вас больше нет старой версии, если вы хотите переключиться между версиями php, но есть файл конфигурации в C: \ wamp64 \ wampmanager.conf, который, как представляется, указывает версию для использования с CLI (этот параметр называется phpCliVersion) , Я изменил его, перезапустил сервер … думал, что я решил это, но никакого эффекта, возможно, я был немного нетерпелив, поэтому у меня есть ощущение, что в этом может быть пробег.

Надежда, которая помогает кому-то

Все ответы хороши, но немного дольше. Вот фактический вопрос: как запустить PHP-скрипт из командной строки Windows. Если вы не добавили исполняемый файл PHP в системную переменную Windows, это быстрый способ легко запустить PHP-скрипт.
[path to PHP excutable]/php.exe [path to php file]/somefile.php

В моем случае
c:\xampp\htdocs>C:/xampp/php/php.exe info.php

Теперь, если вы хотите напрямую выполнить PHP-код в командной строке, напишите код, как это …
[path to PHP executable]/php.exe -r "echo 'hi';"

Как запустить 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 также принимают аргументы. Количество передаваемых в скрипт аргументов в РНР не ограничивается (оболочка имеет ограничение на количество передаваемых символов).
    Аргументы, передаваемые в ваш скрипт, доступны через глобальный массив $argv . Нулевой индекс всегда содержит имя скрипта (которое является символом – в случае, когда PHP -код приходит со стандартного ввода или с использованием ключа командной строки -r ).
    Вторая регистрируемая глобальная переменная это $argc , которая содержит количество элементов в массиве $argv (а не количество аргументов, передаваемых в скрипт).

    Если аргументы, которые вы хотите передать в скрипт, не начинаются с символа дефиса (-) , ничего специально наблюдать не надо. Передача в скрипт аргумента, начинающегося с – , создаст проблемы, поскольку PHP думает, что должен сам их обработать. Чтобы предотвратить это, используйте в качестве сепаратора аргументов списка — . После того как аргумент будет разобран PHP , каждый последующий аргумент передаётся в ваш скрипт без изменений/не разобранным.

    Однако, вот другой способ использования PHP для скриптинга оболочки. Вы можете написать скрипт, первая строка которого начинается с #!/usr/bin/php , а затем идёт нормальный PHP -код, содержащийся между начальным и конечным тэгами PHP , и соответствующим образом устанавливаются атрибуты выполнения файла. Таким способом он может быть исполнен как нормальный скрипт оболочки или perl:

    Приняв, что файл называется test и находится в текущей директории, мы можем выполнить:

    Как вы видите, ничего особо не нужно делать при передаче параметров в скрипт, который начинается с – .

    Таблица 24-3. Опции командной строки

    Отображать синтаксис в цвете.

    Эта опция использует внутренний механизм разбора файла, производит его расцвеченную HTML -версию и записывает её в стандартный вывод. Заметьте, что генерируется лишь блок [. ] HTML -тэгов без HTML -header.

    Примечание: Эта опция не работает вместе с опцией -r .

    Отобразить исходный текст без комментариев и пробелов.

    Примечание: Эта опция не работает вместе с опцией -r .

    Разбирает и выполняет данный файл. Этот переключатель является необязательным и может быть опущен. Достаточно предоставить имя файла для выполнения.

    Записывает PHP, PHP SAPI и Zend-версии в стандартный вывод, например:

    С помощью этой опции можно либо специфицировать директорию для поиска php.ini , либо специальную директорию INI -файла (который не обязательно называется php.ini ), например:

    Запускает PHP интерактивно.

    Эта опция позволяет устанавливать специальное значение для каждой директивы конфигурации, которые допускаются в php.ini . Синтаксис таков:

    Примеры:

    Генерирует расширенную информацию для debugger/profiler.

    Загружает Zend-расширение. Если задано только имя файла, PHP пытается загрузить данное расширение из текущего пути по умолчанию к библиотеке в вашей системе (обычно специфицируется как /etc/ld.so.conf в Linux-системах). Передача filename с абсолютным путём не будет использовать системный путь поиска библиотеки. Относительное filename с информацией директории скажет PHP – попытаться загрузить расширение относительно текущей директории.

    Эта опция предоставляет удобный способ выполнения проверки синтаксиса данного PHP -кода. В случае успеха – текст No syntax errors detected in записывается в стандартный вывод, а return-код оболочки будет 0 . При неудаче – текст Errors parsing вместе с внутренним сообщением разборщика об ошибке записывается в стандартный вывод, а return-код оболочки будет 255 .

    Эта опция не будет находить фатальные ошибки (вроде не определённых функций). Используйте -f , если хотите проверить также и наличие фатальных ошибок.

    Примечание: Эта опция не работает вместе с -r .

    Используя эту опцию, PHP печатает на вывод встроенные (и загруженные) модули PHP и Zend:

    Эта опция позволяет выполнять PHP прямо в командной строке. Начальный и конечный тэги PHP ( и ?> ) не нужны и вызывают ошибки разборщика.

    Примечание: Нужно проявлять внимание при использовании этой формы PHP , чтобы не было противоречий с заменой переменных командной строки, выполняемой оболочкой.

    Пример, выводящий ошибку разборщика:

    Проблема здесь в том, что sh/bash выполняет замену переменной даже при использовании двойных кавычек " . Поскольку переменная $foo вряд ли определена, она ни во что не разворачивается, что в результате даёт код, передаваемый в PHP для выполнения, фактически прочитанный:

    Корректным будет использовать одинарные кавычки ‘ . Переменные в строках, заключённые в одинарные кавычки, не разворачиваются при работе sh/bash.

    Если вы используете оболочку/shell иначе, чем sh/bash, у вас могут появиться новые вопросы. Отправляйте bug report или mail по адресу [email protected]. Можно легко столкнуться с проблемами при попытке получить переменные оболочки в коде или использовании обратных слэшей (/) для замен/escaping.
    Вы предупреждены.

    Опция Описание
    -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.

    Это должно работать как сон.

    Вот пример, который настраивает PHP Composer и PEAR, если требуется, и они существуют

    Вызовите этот командный файл, чтобы использовать версию PHP по умолчанию

    Или получить конкретную версию PHP, как это

    Другие решения

    Я помню, как однажды, когда я наткнулся на эту проблему несколько лет назад, это связано с тем, что окна не имеют readline, а значит, и не имеют интерактивной оболочки, для использования php интерактивного режима без поддержки readline, вы можете сделать это вместо этого:

    После входа в интерактивный режим введите с помощью открытия ( ) и закрытие ( ?> ) php tag и заканчиваем контролем Z ( ^Z ) который обозначает конец файла.

    Я также вспоминаю, что нашел решение из комментария пользователя сайта php: http://www.php.net/manual/en/features.commandline.interactive.php#105729

    Попробуйте использовать командный файл

    1. Открыть блокнот
    2. тип php -S localhost:8000
    3. сохранить файл как .bat расширение, server.bat
    4. Теперь нажмите на 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-скриптами в командной строке | REG.RU

    По умолчанию php скрипты запускаются под «системной» сборкой php (5.3), например:

     -bash-4.1$ php www/mysite.ru/info.php phpinfo() PHP Version => 5.3.3 ... 

    Соответственно, команда php -v покажет информацию о «системной» сборке php, а не той, что активирована в панели управления хостингом:

     -bash-4.1$ php -v PHP 5.3.3 (cli) (built: Jul 9 2015 17:39:00) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator with the ionCube PHP Loader v4.2.2, Copyright (c) 2002-2012, by ionCube Ltd., and with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies 

    Сборки php, которые вам доступны в панели управления хостингом, расположены в /opt/php:

     -bash-4.1$ ls /opt/php 4.4.9 5.2 5.3-bx-optimized 5.4-bx-optimized 5.5 5.6 7.0 7.1 5.1 5.3 5.4 5.4-bx-optimized2 5.5-bx-optimized 5.6-bx-optimized 7.0-bx-optimized 

    Как запустить скрипт под определённой версией PHP

    Обратите внимание: скрипты можно запускать и через php, и через php-cgi. Например:

    • /opt/php/5.4-with-xcache/bin/php-cgi
    • /opt/php/5.4-with-xcache/bin/php

    О том, какой режим подойдет для работы скриптов, вы можете узнать у разработчиков вашего сайта.

    Для запуска скрипта под версией «php 5.5» необходимо выполнить команду:

    /opt/php/5.5/bin/php www/mysite.ru/info.php

    где:

    • /opt/php/5.5/bin/php — путь к обработчику;
    • www/mysite.ru/info.php — путь к скрипту.

    на примере phpinfo

     -bash-4.1$ /opt/php/5.5/bin/php www/mysite.ru/info.php X-Powered-By: PHP/5.5.23 Content-type: text/html ... 

    видно, что скрипт запустился под «php 5.5».

    Аналогичным образом можно запустить скрипт под любой другой доступной сборкой php:

    • /opt/php/4.4.9/bin/php
    • /opt/php/5.1/bin/php
    • /opt/php/5.2/bin/php
    • /opt/php/5.3/bin/php
    • /opt/php/5.3-bx-optimized/bin/php
    • /opt/php/5.3-with-xcache/bin/php
    • /opt/php/5.4/bin/php
    • /opt/php/5.4-bx-optimized/bin/php
    • /opt/php/5.4-bx-optimized2/bin/php
    • /opt/php/5.4-with-xcache/bin/php
    • /opt/php/5.5/bin/php
    • /opt/php/5.5-bx-optimized/bin/php
    • /opt/php/5.6/bin/php
    • /opt/php/5.6-bx-optimized/bin/php
    • /opt/php/7.0/bin/php
    • /opt/php/7.0-bx-optimized/bin/php
    • /opt/php/7.1/bin/php

    Узнать подробную информацию о сборке php можно при помощи команды:

     /opt/php/.../bin/php -i # Узнать список доступных модулей: /opt/php/.../bin/php -m 
    Помогла ли вам статья?

    41 раз уже помогла

    Командная строка PHP в Microsoft Windows | Руководство по PHP

    В этом разделе содержатся заметки и советы по работе PHP, запущенного из командной строки.

    Замечание:

    Сначала прочитайте руководство по установке !

    PHP, запущенный из командной строки, может выполняться без каких-либо изменений в Windows.

     C:\PHP5\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3 

    Но есть несколько простых шагов, которые могут упростить задачу. Некоторые из этих шагов уже могли быть выполнены, но будут приведены здесь для того, чтобы последовательность операций не была нарушена.

      Замечание:

      Как PATH, так и PATHEXT являются важными системные переменными в Windows, поэтому важно не затереть их текущее значение, а только дописать нужные данные в конец.

    • Допишите расположение исполняемых файлов php (php.exe, php-win.exe или php-cli.exe в зависимости от ваших предпочтений и версии PHP) в конец переменной окружения PATH. О том, как добавить вашу директорию к PATH читайте в соответствующем разделе FAQ.

    • Допишите .PHP расширение в конец переменной окружения PATHEXT. Это может быть сделано при изменении переменной PATH. Сделайте те же шаги, которые описаны в FAQ, но измените переменную PATHEXT вместо PATH.

      Замечание:

      Позиция, в которой вы разместите .PHP, будет определять, какой скрипт или программа будут запущенны для обработки файла с соответствующим расширением. Например, разместив .PHP перед .BAT, сначала будет запущен ваш скрипт, а не пакетный файл, если есть исполняемый файл с тем же именем.

    • Ассоциируйте расширение .PHP с конкретным типом файла. Это можно сделать выполнив следующую команду:

    • Ассоциируйте тип файла phpfile с соответствующим исполняемым PHP файлом. Это можно сделать выполнив команду:

       ftype phpfile="C:\PHP5\php.exe" -f "%1" -- %~2 

    Выполнение этих шагов позволит PHP скриптам выполняться из любой директории без необходимости указывать исполняемый PHP файл или расширение .PHP, а все параметры будут переданы в скрипт для обработки.

    В примере ниже описываются некоторые изменения реестра, которые могут быть сделаны вручную.

    Пример #1 Изменения реестра

     Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.php] @="phpfile" "Content Type"="application/php" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile] @="PHP Script" "EditFlags"=dword:00000000 "BrowserFlags"=dword:00000008 "AlwaysShowExt"="" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\DefaultIcon] @="C:\\PHP5\\php-win.exe,0" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell] @="Open" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open] @="&Open" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open\command] @="\"C:\\PHP5\\php.exe\" -f \"%1\" -- %~2" 

    С этими изменениями команда может быть записана как:

     "C:\PHP Scripts\script" -arg1 -arg2 -arg3 
    или, если ваш путь в переменной окружения "C:\PHP Scripts" PATH:

    Замечание:

    Возникает небольшая проблема, если вы собираетесь использовать эту технику и используете ваши PHP-скрипты как фильтры командной строки, как в примере ниже:

     dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3 
    или
     dir | script -arg1 -arg2 -arg3 
    Вы можете увидеть, что ваш скрипт завис и ничего не делает. Для того чтобы оперативно получать об этом информацию, вам нужно внести в реестр еще некоторые изменений.
     Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer] "InheritConsoleHandles"=dword:00000001 
    Дополнительную информацию можно найти в » базе знаний Microsoft, статья 321788.

    Вернуться к: Установка в системах Windows

    Программирование в PHP для командной строки / Хабр

    Предисловие

    Ubuntu предоставляет в комплекте с пакетом apache2 утилиты для включения\выключения виртуальных хостов и модулей. Однако, создание конфигов для виртуальных хостов отнимают дополнительное время. Поэтому, мне захотелось исправить этот недостаток. Можно было, конечно, сделать автоматические поддомены для апача, но я решил написать скрипт, который создает файлы конфигурации виртуальных хостов для апача, а так же, при необходимости, добавляет имя хоста в файл /etc/hosts. Я не очень хорошо пишу скрипты в bash'e, поэтому решил использовать PHP для моей довольно простой задачи, который я, к тому же, знаю довольно неплохо.
    Итак, в этой статье мы сделаем сразу две полезных вещи: ознакомимся с операциями ввода\вывода командной строки в PHP и напишем скрипт, который совсем немного упростит нам жизнь.

    Проверка прав доступа

    Наверное, ни для кого не секрет, что достаточно просто в первой строке PHP скрипта написать
    #!/usr/bin/env php
    и такой скрипт можно будет выполнить как обычную программу в Linux.

    Прежде всего, нам нужно проверить, есть ли у нас право на запись в ту самую папку, которая содержит в себе конфиги виртуальных хостов, а обычно для этого нужны root права. Проверить это довольно просто:

    1. $virtual_hosts_dir = "/etc/apache2/sites-available/";
    2. if (!is_dir($virtual_hosts_dir) || !is_writable($virtual_hosts_dir))
    3. {
    4.     echo "You must run this script as root!\n";
    5.     exit;
    6. }
    Получение информации из параметров

    Далее, нам необходимо узнать у пользователя некоторую информацию, которая нам нужна для создания конфига. Кроме последовательного ввода из консоли, можно передать эту информацию в качестве параметров, которые мы передаем при вызове скрипта. В PHP есть глобальные переменные $argc и $argv. Первая содержит количество входящих параметров, а вторая — массив со входящими параметрами. По-умолчанию входящий параметр всего один — полный путь к вызываемому скрипту. Таким образом, обработка входящих переменных сводится просто к обработке массива:
    1. if ($argc>1) 
    2.     for ($i=1; $i<$argc; $i++) 
    3.     { 
    4.         $option = explode("=", $argv[$i]); 
    5.         switch ($option[0]) 
    6.         { 
    7.             case "-h": 
    8.             case "--add-to-hosts": 
    9.                 $add_to_hosts = true; 
    10.             break;
    11.  
    12.             case "-n": 
    13.             case "--no-add-to-hosts": 
    14.                 $add_to_hosts = false; 
    15.             break;
    16.  
    17.             case "-a": 
    18.             case "--server-alias": 
    19.                 if (isset($option[1])) 
    20.                 { 
    21.                     $server_alias = $option[1]; 
    22.                 } 
    23.                 else 
    24.                 { 
    25.                     echo "Wrong option: {$argv[$i]}\n"; 
    26.                 } 
    27.             break;
    28.  
    29.             case "-d": 
    30.             case "--document-root": 
    31.                 if (isset($option[1])) 
    32.                 { 
    33.                     if ($option[1] == "default") 
    34.                     { 
    35.                         $document_root = $default_doc_root 
    36.                     } 
    37.                     else if (is_dir(dirname($option[1]))) 
    38.                     { 
    39.                         $document_root = $option[1]; 
    40.                     } 
    41.                 } 
    42.                 else 
    43.                 { 
    44.                     echo "Wrong option: {$argv[$i]}\n"; 
    45.                 } 
    46.             break;
    47.  
    48.             default: 
    49.                 if (substr($argv[$i], 1, 1) == '-') 
    50.                 { 
    51.                     echo "Unknown option: {$argv[$i]}\n"; 
    52.                 } 
    53.             break; 
    54.         } 
    55.     } 
    56. }
    57.  
    Потоки ввода\вывода

    Но не всегда ведь удобно вбивать кучу параметров в консоль. Поэтому теперь мы просим пользователя ввести с клавиатуры то, что нам до сих пор неизвестно. Для этого нам понадобятся потоки ввода\вывода, а в данном случае только ввода. В PHP для работы с потоками ввода\вывода используются константы STDIN, STDOUT, STDERR. По сути, эти потоки ничем не отличаются от файловых потоков и работать с ними так же просто. Например, строка:
    1. $line = fgets(STDIN);

    просто считает строку из консоли и запишет её в переменную $line. В данном случае, мы не открывали и не закрывали поток, т.к. PHP делает это автоматически. Но, мы можем открыть поток вручную и держать его открытым столько, сколько нам нужно. Это будет работать быстрее, если Вам нужно считать\записать более одной строки:
    1. $stdin = fopen("php://stdin", "r");
    2. $line1 = gets($stdin);
    3. $line2 = gets($stdin);
    4. fclose($stdin);

    В данном случае мы сначала открываем поток, считываем из него две строки и закрываем его.
    С записью аналогично, хотя я предпочитаю для вывода на экран просто использовать echo.

    Продолжаем писать наш скрипт. Пока у нас нет хоть какой-то строки в качестве имени хоста, продолжаем просить пользователя, чтобы он что-то ввел:

    1. while (!$server_alias)
    2. {
    3.     echo "Enter your hostname: ";
    4.     $server_alias = trim(fgets(STDIN));
    5. }

    Теперь, спросим у пользователя, нужно ли добавлять информацию о этом хосте в /etc/hosts, но спрашиваем только в том случае, если эта информация не была передана в качестве параметра. Так как скрипт я писал себе для повседневной работы, то никаких реальных сайтов у меня не будет и чаще всего нужно будет добавлять хост в /etc/hosts, поэтому если мы ничего не вводим, а просто нажимаем Enter то это принимается как согласие:

    1. if ($add_to_hosts === null)
    2. {
    3.     echo "Add $server_alias to your /etc/hosts ? (Y/N) [Y]: ";
    4.     $line = trim(fgets(STDIN));
    5.     if ($line == 'n' || $line == 'N')
    6.     {
    7.         $add_to_hosts = false;
    8.     }
    9.     else
    10.     {
    11.         $add_to_hosts = true;
    12.     }
    13. }

    То же самое и с корневой директорией сайта:

    1. if (!$document_root) 
    2.     $default_doc_root = $default_doc_root.'/'.$server_alias; 
    3.     echo "Enter your document root [$default_doc_root]: "; 
    4.     $line = trim(fgets(STDIN)); 
    5.     if ($line && is_dir(dirname($line))) 
    6.     { 
    7.         $document_root = $line; 
    8.     } 
    9.     else 
    10.     { 
    11.         $document_root = $default_doc_root; 
    12.     } 
    13. }
    14.  
    Генерация конфиг-файла

    На этом этапе весь сбор информации закончен и у нас есть все, что нужно, для того, чтобы создать конфиг. Надо убедится, что корневая директория сайта существует, а если её нет — создадим её:
    1. if (!is_dir($document_root))
    2. {
    3.     mkdir($document_root);
    4. }

    Мы спрашивали у пользователя по поводу добавления хоста в /etc/hosts. Сделаем это, если он согласился:

    1. if ($add_to_hosts)
    2. {
    3.     $hosts = file_get_contents("/etc/hosts");
    4.     $hosts .= "127.0.0.1\t$server_alias\n";
    5.     file_put_contents("/etc/hosts", $hosts);
    6. }

    Собственно так выглядит шаблон нашего конфига:

    1. $host_template = <<<HOST
    2. <VirtualHost *:80> 
    3. ServerAdmin [email protected] 
    4. ServerAlias $server_alias
    5.  
    6. DocumentRoot $document_root 
    7. <Directory $document_root> 
    8.     Options Indexes FollowSymLinks MultiViews 
    9.     AllowOverride All 
    10.     Order allow,deny 
    11.     allow from all 
    12. </Directory>
    13.  
    14. ErrorLog \${APACHE_LOG_DIR}/$server_alias-error.log; 
    15. LogLevel warn 
    16. CustomLog \${APACHE_LOG_DIR}/$server_alias-access.log combined
    17. </VirtualHost>
    18. HOST;
    19.  

    Ну и теперь просто запишем конфиг в файл и напомним пользователю о том, что конфиг теперь нужно еще и активировать с помощью a2ensite:

    1. file_put_contents("/etc/apache2/sites-available/$server_alias", $host_template); 
    2. echo "Apache config for this hostname created successfully! Don't forget to run a2ensite $server_alias\n";
    3.  

    Скрипт написан. Нужно сохранить его в файл и не забыть установить флаг +x, чтобы его можно было запускать как программу:
    chmod +x a2addsite

    Использование

    Теперь скрипт можно использовать. Можно как вводить всю информацию в консоли:
    % sudo ./a2addsite
    Add test.local to your /etc/hosts? (Y/N) [Y]:
    Enter your document root [/home/www/test.local]:
    Apache config for this hostname created successfully! Don't forget to run a2ensite test.local

    так передавать всю или часть информации скрипту в качестве параметров при вызове:
    % sudo ./a2addsite --server-alias=test2.local --add-to-hosts --document-root=default
    Apache config for this hostname created successfully! Don't forget to run a2ensite test2.local

    Выводы

    PHP можно использовать не только для разработки сайтов, но и для решения мелких локальных задач на компьютере. Скрипт я писал под себя и, наверняка, кто-то из Вас переделает его под свои нужды.
    Исходный код скрипта
    Литература

    Больше информации о потоках ввода вывода, а также о остальных особенностях работы с консолью в PHP можно получить на официальном сайте PHP (англ.):
    Command line usage
    PHP input/output

    Как запустить скрипт PHP – особенности воздухоплавания

    От автора: Если вы когда-нибудь запускали воздушного змея, то знаете, что это не так просто, хотя со стороны кажется наоборот. На самом деле нужно приловчиться, чтобы вовремя веревку натянуть или поймать воздушную «волну». Сегодня я расскажу, как запустить скрипт PHP и какие «веревочки» дергать, чтобы он не просто работал, а «летал»!

    Особенности запуска

    Как уже не раз упоминалось, PHP – это серверный язык программирования, поэтому сделать так, чтобы результат работы его кода отобразился в браузере, будет немного сложнее. Для этого файл должен располагаться непосредственно на серверном пространстве. Для работы с PHP используются два типа сервера:

    Обычный (удаленный) –предоставляется хостером.

    Локальный – устанавливается на клиентской машине.

    На стороне хостинга, чтобы увидеть результат работы скрипта, в строку браузера вводится адрес следующего формата: ваш_сайт.ru/имя_файла.php

    Бесплатный курс по PHP программированию

    Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

    В курсе 39 уроков | 15 часов видео | исходники для каждого урока

    Получить курс сейчас!

    На локальном сервере все обстоит иначе. Перед тем, как запустим PHP скрипт в браузере, выясним эти особенности.
    В зависимости от применяемого сервера набираемый адрес может отличаться. Чаще всего в «наших» краях используются различные сборки с Apache, из которых самой распространенной является Денвер.

    Запуск скрипта в Denwer

    В «апачевских» сборках все скрипты запускаются в localhost. Чтобы продемонстрировать это на практике, создадим какой-нибудь интересный пример. Вот его код:

    <html> <head> <meta http-equiv="refresh" content="1"> </head> <body> <time><?=date("H:i:s")?></time> </body> </html>

    <html>

    <head>

      <meta http-equiv="refresh" content="1">

    </head>

    <body>

      <time><?=date("H:i:s")?></time>

    </body>

    </html>

    Разместите этот код в файле PHP и сохраните его на виртуальном диске, который создается после запуска локального сервера. У меня это файл test2.php.

    Вверху на снимке обозначен путь, где нужно размещать созданный файл. У вас этот путь может немного отличаться, если при инсталляции Денвера задали другое имя виртуального диска.

    Теперь разберемся, как запустить PHP скрипт на компьютере. Для этого в браузере следует указать адрес в формате: localhost/имя_файла.php

    Начинаем мучиться

    Может, слишком и унылое название для раздела, но я немного намучился, пока получилось открыть файл PHP через командную строку. При попытке запуска система ПК выдавала вот такого рода ошибки:

    Бесплатный курс по PHP программированию

    Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

    В курсе 39 уроков | 15 часов видео | исходники для каждого урока

    Получить курс сейчас!

    Это странно, поскольку упоминаемые библиотеки у меня присутствовали в папке ext. Оказывается, что все дело в неправильно прописанных путях в конфигурационном файле php.ini.

    В нем нужно найти раздел «Paths and Directories» и исправить путь, указанный в параметре extension_dir. Измените правые слэши на левосторонние и добавьте в начале адреса букву виртуального диска.

    Если запустить PHP скрипт из CMD консоли опять не получается, тогда следует просмотреть все пути, упоминаемые в сообщении ошибки, и исправить их.

    Если все хорошо

    В командной строке системе нужно указать путь, где находится «экзешник» интерпретатора языка PHP. В Денвере он находится по этому пути: Z:\usr\local\php5

    Здесь же расположен и глобальный файл конфигурации.

    Запускаем командную строку Винды. Затем указываем системе путь к исполняемому файлу PHP. После чего задаем путь к нужному скрипту: Z:\usr\local\php5\php.exe Z:\home\localhost\www\test2.php

    Но в итоге вы получите не совсем ожидаемый результат:

    И все потому, что командная строка «не понимает» теги HTML. Перед тем, как запустить PHP скрипт из командной строки, немного модифицируем код, чтобы он возвращал нам только текущее время без эффекта «часов».

    <?php echo date("H:i:s") ?>

    <?php

    echo date("H:i:s")

    ?>

    Как видите, наш «программный» змей поднялся довольно высоко. И все потому, что мы выбрали правильный «воздушный» поток и вовремя «дергали» за канат. На этом наше «воздухоплавание» подошло к концу. До следующего «попутного ветра» .

    Бесплатный курс по PHP программированию

    Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

    В курсе 39 уроков | 15 часов видео | исходники для каждого урока

    Получить курс сейчас!

    Разработка веб-приложения на PHP

    Создайте веб-приложение на PHP на примере приема платежей на сайте

    Смотреть Оболочка

    - Как записать в файл из командной строки PHP?

    Переполнение стека
    1. Около
    2. Продукты
    3. Для команд
    1. Переполнение стека Общественные вопросы и ответы
    2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями
    .

    mysql - Как запустить PHP из командной строки

    Переполнение стека
    1. Около
    2. Продукты
    3. Для команд
    1. Переполнение стека Общественные вопросы и ответы
    2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
    .

    Как запустить файл .cmd из PHP и отобразить результаты

    Переполнение стека
    1. Около
    2. Продукты
    3. Для команд
    1. Переполнение стека Общественные вопросы и ответы
    2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
    3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
    4. Талант Рек.
    .

    curl - Запустить php-скрипт из URL-адреса в командной строке

    Переполнение стека
    1. Около
    2. Продукты
    3. Для команд
    1. Переполнение стека Общественные вопросы и ответы
    2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
    3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
    4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
    .

    linux - Как выполнить внешний PHP-скрипт в командной строке из вашего браузера

    Переполнение стека
    1. Около
    2. Продукты
    3. Для команд
    1. Переполнение стека Общественные вопросы и ответы
    2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
    3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
    .Пакет

    для запуска файла php из командной строки

    Переполнение стека
    1. Около
    2. Продукты
    3. Для команд
    1. Переполнение стека Общественные вопросы и ответы
    2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
    3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
    4. Талант Нанимайте технических специалистов и создайте своего работодателя b
    .

    Смотрите также