- Running PHP script from the command line
- 3 Answers 3
- To run php interactively:
- To make it parse a file and output to the console:
- Parse a file and output to another file:
- Do you need something else?
- Запуск PHP-скрипта без веб-сервера: Подробное руководство
- Как запустить PHP-скрипт в командной строке Linux
- Как запустить PHP скрипт в командной строке Windows
- Различные опции запуска PHP-скриптов в командной строке
- Как проверить синтаксис PHP-скрипта с помощью опции -l
- Как запустить PHP-файл в командной строке Windows и Linux
- Как в PHP-скрипте обратиться к аргументам
- Запуск отдельных команд PHP
- Заключение
Running PHP script from the command line
How can I run a PHP script from the command line using the PHP interpreter which is used to parse web scripts? I have a phpinfo.php file which is accessed from the web shows that German is installed. However, if I run the phpinfo.php from the command line using — php phpinfo.php and grep for German , I don’t find it. So both PHP files are different. I need to run a script which the php on which German is installed. How can I do this?
Please add more details about installed web server software, for example add output from phpinfo(); to your question. Also updated my answer.
3 Answers 3
You should check your server configuration files. Look for lines that start with LoadModule php . There probably are configuration files/directories named mods or something like that. Start from there.
You could also check output from php -r ‘phpinfo();’ | grep php and compare lines to phpinfo(); from web server.
To run php interactively:
(So you can paste/write code in the console.)
To make it parse a file and output to the console:
Parse a file and output to another file:
php -f file.php > results.html
Do you need something else?
To run only a small part, one line or like, you can use:
php -r '$x = "Hello World"; echo "$x\n";'
If you are running Linux then do man php at the console.
If you need/want to run PHP through fpm (FastCGI Process Manager), use cli fcgi:
SCRIPT_NAME="file.php" SCRIP_FILENAME="file.php" REQUEST_METHOD="GET" cgi-fcgi -bind -connect "/var/run/php-fpm/php-fpm.sock"
Where /var/run/php-fpm/php-fpm.sock is your php-fpm socket file.
No. The problem is that there are multiple phps on the system. I need to find out which php is used to parse web scripts. If I run php from the console then it can’t find a class — but if I call that script from the web then that problem isn’t there. So it means that the PHP which is used are different, isn’t it?
@Siddharth You should check that from your server s/w configuration. Add your server details to question.
In linux, you can use which php to tell you which executable you are running by default. To use another executable, you must specify the full path to the executable you wish to use: /path/to/specific/php -f file.php > results.html
nice detail, +1 for explanation. Just here to comment, be watch with the environment vars, maybe you need to use the complete directory path even when the script is in the same directory that php.exe
On SUSE Linux, there are two different configuration files for PHP: one for Apache, and one for CLI (command line interface). In the /etc/php5/ directory, you will find an «apache2» directory and a «cli» directory. Each has a «php.ini» file. The files are for the same purpose (PHP configuration), but apply to the two different ways of running PHP. These files, among other things, load the modules PHP uses.
If your OS is similar, then these two files are probably not the same. Your Apache php.ini is probably loading the German module, while the the CLI php.ini isn’t. When the module was installed (auto or manual), it probably only updated the Apache php.ini file.
You could simply copy the Apache php.ini file over into the cli directory to make the CLI environment exactly like the Apache environment.
Or, you could find the line that loads the German module in the Apache file and copy/paste just it to the CLI file.
Запуск PHP-скрипта без веб-сервера: Подробное руководство
Для выполнения PHP скриптов обычно используются веб-серверы, но иногда может возникнуть необходимость запустить PHP-скрипт непосредственно из командной строки, без использования веб-сервера. Это может быть полезно для отладки или автоматизации задач.
В этой статье мы рассмотрим, как запустить PHP-скрипт без веб-сервера на операционных системах Linux и Windows.
Как запустить PHP-скрипт в командной строке Linux
- Откройте терминал.
- Убедитесь, что PHP установлен на вашей системе. Введите следующую команду, чтобы проверить установку и получить версию PHP:
Если интерпретатор-PHP не установлен, выполните следующую команду, чтобы установить его:
Ubuntu/Debian:
- Создайте PHP-скрипт, используя консольный текстовый редактор, например, «nano» или «vim». Для создания нового скрипта с именем «script.php», выполните следующую команду:
- Сохраните скрипт и закройте редактор.
- Теперь вы можете запустить созданный PHP-скрипт. Введите следующую команду в терминале:
Готово! Вы успешно запустили PHP-скрипт в командной строке Linux. В данном случае, на экране появится вывод «Hello, World!».
Этот подход можно также использовать для выполнения более сложных скриптов и автоматизации различных задач в Linux-среде.
Как запустить PHP скрипт в командной строке Windows
Вы можете запустить PHP в командной строке, не устанавливая веб-сервер. Достаточно просто работать через PHP-интерпретатор.
- Откройте командную строку в Windows. Для этого зажмите сочетание клавиш Win+R, введите «cmd» и нажмите Enter.
- Убедитесь, что PHP установлен в вашей системе. Чтобы проверить наличие PHP в системе и узнать установленную версию, введите:
Если PHP не установлен, загрузите и установите его с официального сайта PHP.
Важно! На момент написания нашего руководства релевантная версия PHP – 8.2. Вы же можете установить ту, которая будет актуальна для вас. Всегда выбирайте версию «Thread Safe».
Загрузите соответствующий установщик PHP для Windows и следуйте инструкциям по установке.
- Создайте PHP-скрипт, используя любой текстовый редактор. В данной инструкции мы воспользуемся Блокнотом.
Для создания нового скрипта с именем «script.php», выполните следующую команду:
- Сохраните скрипт и закройте редактор.
- Теперь вы можете запустить PHP-скрипт. В командной строке пропишите команду:
Готово! Вы успешно запустили PHP-скрипт в командной строке Windows. В данном случае, на экране появится вывод «Hello, World!».
Вы можете использовать этот подход для выполнения более сложных скриптов и автоматизации различных задач в среде Windows.
Различные опции запуска PHP-скриптов в командной строке
Опции запуска PHP скриптов в командной строке предоставляют собой различные возможности и параметры для управления выполнением скриптов. Запустив команду php -h можно ознакомиться со следующими опциями:
Полное название
Запускает PHP в интерактивном режиме.
Указывает каталог, где находится файл php.ini.
Ставит задачу не использовать php.ini
Задаёт пользовательское значение для каждой конфигурационной опции php.ini.
Генерирует расширенную информацию для отладчика/профайлера.
Разбирает и выполняет указанный файл.
Предоставляет справку доступных опций.
Показывает встроенные и загруженные модули.
Выполняет PHP-код без использования тегов скрипта.
Выполняет PHP-код перед обработкой входных строк.
Выполняет PHP-код для каждой входной строки.
Разбирает и выполняет указанный PHP-файл для каждой входной строки.
Выполняет PHP-код после обработки всех входных строк.
Запускает встроенный веб-сервер.
Указывает корневой каталог документов для встроенного веб-сервера.
—syntax-highlight и —syntax-highlighting
Выводит исходный код с подсветкой синтаксиса HTML .
Выводит исходный код без комментариев и пробелов.
Загружает расширение Zend.
Показывает имена конфигурационных файлов.
Предоставляет информацию об указанной функции.
Предоставляет информацию об указанном классе.
Предоставляет информацию об указанном расширении (модуле).
Предоставляет информацию об указанном модуле Zend.
Предоставляет информацию о конфигурации заданного модуля.
Больше о существующих опциях вы можете узнать из официальной документации PHP.
Как проверить синтаксис PHP-скрипта с помощью опции -l
Как мы уже рассмотрели выше, при использовании опции -l можно проверить синтаксис кода PHP, чтобы убедиться, что он не содержит ошибок и соответствует правилам.
Для этого способа не требуется запуск скрипта, – проверка будет произведена внутри командной строки.
php -l C:/Users/Nicru/Documents/PHP/script.php
В результате выполнения команды будет выведено сообщение о том, является ли синтаксис скрипта корректным или же есть ошибки, которые необходимо исправить.
Если всё верно, вы получите следующий вывод:
No syntax errors detected in C:/Users/Nicru/Documents/PHP/script.php
Если в синтаксисе есть ошибки:
php -l C:/Users/Nicru/Documents/PHP/script.php
PHP Parse error: syntax error, unexpected end of file in C:/Users/Nicru/Documents/PHP/script.php on line 8
Parse error: syntax error, unexpected end of file in C:/Users/Nicru/Documents/PHP/script.php on line 8
Errors parsing C:/Users/Nicru/Documents/PHP/script.php
Иными словами, опция -l – это крайне полезная возможность для обнаружения и устранения ошибок в PHP-коде до его фактического выполнения.
Как запустить PHP-файл в командной строке Windows и Linux
Как в Windows, так и в Linux для запуска .php файла в командной строке, вы можете использовать следующие команды:
Вы также можете опустить опцию «-f», так предыдущая и следующая команды останутся равнозначны:
Например, если у вас есть файл, расположенный в директории «C:/Users/Nicru/Documents/PHP/script.php», вы можете запустить его в PHP с помощью следующих команд:
php -f C:/Users/Nicru/Documents/PHP/script.php
Таким образом, вы можете без особых усилий запускать PHP-скрипты в командной строке как в Windows, так и в Linux, используя соответствующие команды и указывая путь к файлу .php, который вы хотите выполнить.
Как в PHP-скрипте обратиться к аргументам
В PHP вы можете обратиться к аргументам, переданным скрипту, с помощью специального массива $argv. Этот массив содержит значения аргументов командной строки, переданных при запуске скрипта.
Каждый элемент массива $argv соответствует отдельному аргументу, где $argv[0] содержит имя самого скрипта, а $argv[1], $argv[2] и прочие содержат значения последующих аргументов.
Например, если у вас есть PHP-скрипт «script.php», который запускается с аргументами командной строки, вы можете получить доступ к этим аргументам следующим образом:
echo «Аргумент $i: » . $argv[$i] . «\n»;
Таким образом, вы можете обратиться к аргументам командной строки в PHP скрипте, используя массив «$argv», и выполнять операции на основе переданных значений аргументов.
Запуск отдельных команд PHP
В командной строке вы также можете запускать отдельные команды PHP, не используя целый PHP-скрипт.
Запускать отдельные команды PHP можно с помощью опции -r (или —run). Она позволяет передавать PHP-код непосредственно в командную строку.
Введите следующую команду:
Где «код» – это PHP-код, который вы хотите выполнить. Например, для вывода строки «Hello, World!» вы можете использовать:
После ввода команды и нажатия Enter, PHP выполнит указанный код и выведет результат в командной строке. В данном примере, результатом будет строка «Hello, World!».
Вы можете смело использовать этот метод для запуска отдельных команд PHP в командной строке. Он может быть особенно полезным, когда вам необходимо выполнить небольшую часть кода или провести быструю проверку функциональности без создания отдельного файла.
Заключение
Запуск PHP скриптов в командной строке без веб-сервера является удобным способом выполнения PHP-кода для отладки, автоматизации задач и выполнения различных сценариев. В этой статье мы рассмотрели, как запустить PHP скрипт в командной строке Linux и Windows, а также ознакомились с опциями запуска PHP-скриптов и запуском отдельных команд PHP.
Теперь вы можете использовать этот гибкий способ работы с PHP в вашей системе.