выполнить php код в консоли

Выполнить php код в консоли

Указание конкретного файла для запуска.

Передать PHP-код напрямую в командной строке.

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

Передать запускаемый PHP-код через стандартный поток ввода ( stdin ).

Это даёт мощную возможность создавать PHP-код и передавать его запускаемому файлу, как показано в этом (вымышленном) примере:

Пример #1 Запуск PHP-скрипта как консольного

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

Пример #2 Скрипт, предназначенный для запуска из командной строки (script.php)

Пример #3 Пакетный файл для запуска PHP-скрипта из командной строки (script.bat)

Также можно ознакомиться с модулем Readline для получения дополнительных функций, которые можно использовать для улучшения консольного PHP-скрипта.

В Windows рекомендуется запускать PHP под актуальной учётной записью пользователя. При работе в сетевой службе некоторые операции не будут выполнены, поскольку «сопоставление имён учётных записей и идентификаторов безопасности не выполнено».

User Contributed Notes 7 notes

On Linux, the shebang (#!) line is parsed by the kernel into at most two parts.
For example:

1. is the standard way to start a script. (compare «#!/bin/bash».)

3. if you don’t need to use env, you can pass ONE parameter here. For example, to ignore the system’s PHP.ini, and go with the defaults, use «-n». (See «man php».)

4. or, you can set exactly one configuration variable. I recommend this one, because display_errors actually takes effect if it is set here. Otherwise, the only place you can enable it is system-wide in php.ini. If you try to use ini_set() in your script itself, it’s too late: if your script has a parse error, it will silently die.

Summary: use (2) for maximum portability, and (4) for maximum debugging.

Источник

Выполнить php код в консоли

Используя интерактивную консоль, можно ввести и выполнить непосредственно PHP-код.

Пример #1 Запуск кода в интерактивной консоли

Интерактивная консоль также автодополняет (с помощью клавиши Tab) имена функций, констант, классов, переменных, вызовы статических методов и константы классов.

Пример #2 Автодополнение по Tab

Двойное нажатие клавиши Tab при наличии нескольких вариантов дополнения покажет список этих вариантов:

Когда есть только одно дополнение, одиночное нажатие Tab дополнит оставшийся текст на той же самой строке:

Дополнение также работает для имён, которые были объявлены в течение данной интерактивной сессии:

Интерактивная консоль хранит историю команд, для доступа к которой можно использовать стрелки вверх и вниз. История хранится в файле

Также можно устанавливать настройки php.ini в интерактивной консоли, используя специальное сокращение.

Пример #3 Установка настройки php.ini в интерактивной консоли

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

Установка less для постраничного вывода данных:

Файлы, подключённые с помощью опций auto_prepend_file и auto_append_file обрабатываются в этом режиме с некоторыми ограничениями, например, функции должны быть объявлены до их использования.

User Contributed Notes 14 notes

Interactive Shell and Interactive Mode are not the same thing, despite the similar names and functionality.

In Windows, press Enter after your ending PHP tag and then hit Ctrl-Z to denote the end-of-file:

echo «Hello, world!» ;
?>
^Z
Hello, world!

You can use the up and down arrows in interactive mode to recall previous code you ran.

It seems the interactive shell cannot be made to work in WIN environments at the moment.

Using «php://stdin», it shouldn’t be too difficult to roll your own. You can partially mimic the shell by calling this simple script (Note: Window’s cmd already has an input history calling feature using the up/down keys, and that functionality will still be available during execution here):

?>

Replace ‘eval’ with code to parse the input string, validate it using is_callable and other variable handling functions, catch fatal errors before they happen, allow line-by-line function defining, etc. Though Readline is not available in Windows, for more tips and examples for workarounds, see http://www.php.net/manual/en/ref.readline.php

For use interactive mode enabled on GNU/Linux on distros Debian/Ubuntu/LinuxMint you must install «php*-cli» and «php*-readline» packages from official repository.
Example:
>$sudo aptitude install php5-cli php5-readline

After that you can use interactive mode.
Example:

php >echo «hola mundo!\n»;
hola mundo!
php >

I hope somebody help it!

Just a few more notes to add.

1) Hitting return does literally mean «execute this command». Semicolon to note end of line is still required. Meaning, doing the following will produce a parse error:

php > print «test»
php > print «asdf»;

Whereas doing the following is just fine:

2) Fatal errors may eject you from the shell:

Fatal Error: call to undefined function.
name@local:

3) User defined functions are not saved in history from shell session to shell session.

4) Should be obvious, but to quit the shell, just type «quit» at the php prompt.

5) In a sense, the shell interaction can be thought of as linearly following a regular php file, except it’s live and dynamic. If you define a function that you’ve already defined earlier in your current shell, you will receive a fatal «function already defined» error only upon entering that closing bracket. And, although «including» a toolset of custom functions or a couple of script addon php files is rather handy, should you edit those files and wish to «reinclude» it again, you’ll cause a fatal «function x already defined» error.

Источник

Как запустить PHP скрипт в командной строке (без веб-сервера)

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

Для запуска PHP в командной строке необязательно устанавливать веб-сервер, достаточно скачать и распаковать архив с PHP интерпретатором. О том, где скачать PHP с официального сайта и как разобраться с версиями, смотрите эту статью.

Если вы часто будете запускать PHP скрипты из командной строки Windows, то настоятельно рекомендуется Добавить путь до PHP в переменную окружения PATH в Windows. Благодаря этому не придётся каждый раз указывать полный путь до файла php.exe.

Теперь, когда PHP установлен и путь до php.exe добавлен в переменную окружения Windows, открываем командную строку, для этого нажмите сочетание клавиш Win+x и выберите Windows PowerShell.

Для проверки, что нормально установилось, посмотрим справку по PHP:

выполнить php код в консоли. Смотреть фото выполнить php код в консоли. Смотреть картинку выполнить php код в консоли. Картинка про выполнить php код в консоли. Фото выполнить php код в консоли

На самом деле, мы запускаем файл php.exe, но расширение можно отбросить. То есть предыдущая запись эквивалентна

Опцию -f можно отбросить, то есть предыдущая и следующая команды равнозначны:

Я создал тестовый файл, который расположен по пути C:\Users\Alex\Documents\PHP\test.php тогда я могу запустить его в PHP так:

Как передать аргументы PHP скрипту в командной строке

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

Пример запуска PHP скрипта с тремя аргументами:

Как в PHP скрипте обратиться к аргументам

Переданные аргументы содержаться в массиве $argv. Причём, порядковый номер аргумента соответствует номеру в массиве. То есть первый аргумент будет помещён в $argv[1], второй в $argv[2] и так далее.

Самый первый элемент массива $argv[0] содержит полный путь до запускаемого скрипта.

Содержимое файла test.php:

Запустим его и передадим в скрипт три аргумента:

выполнить php код в консоли. Смотреть фото выполнить php код в консоли. Смотреть картинку выполнить php код в консоли. Картинка про выполнить php код в консоли. Фото выполнить php код в консоли

Как в PHP получить данные от пользователя в консоли

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

Кстати, при работе в окружении веб-сервера, то есть когда PHP скрипт выполняет задачи для веб-сайта, возможность передать ему аргументы реализована с помощью HTTP методов GET и POST. Эти аргументы передаются перед запуском скрипта, и уже после запуска PHP скрипта новые данные отправить нельзя — нужно ждать завершения работы программы, и при необходимости запустить её ещё раз с новыми данными.

Во время работы скрипта может потребоваться ввод новых данных, в консоли это достигается с помощью строки запроса, в которую пользователь может ввести значение и нажать Enter для передачи его скрипту. В контексте веб-сайта такой возможности — передать данные уже во время выполнения скрипта — нет. То есть консольный запуск PHP скриптов с аргументами не только проще (не нужно возиться с HTML формой), но и даже более гибкий.

В PHP для запроса пользователю используется функция readline.

Эта функция одинаково работает и на Windows и на Linux. Причём на Linux она имеет интерактивные возможности Bash, например, сохраняет историю ввода, к которой можно вернуться с помощью стрелок. На Windows эта возможность появилась начиная с PHP 7.1.

Если сильно надо, можно настроить автозавершение вводимых данных. Все функции GNU Readline рассмотрены здесь. Я же коснусь только readline, которая считывает введённую пользователем строку. С этой функцией можно указать один опциональный аргумент — строку, которая будет показана пользователю в приглашении.

Пример консольного PHP скрипта, которые запрашивает у пользователя данные в приглашении командной строки:

выполнить php код в консоли. Смотреть фото выполнить php код в консоли. Смотреть картинку выполнить php код в консоли. Картинка про выполнить php код в консоли. Фото выполнить php код в консоли

Выполнение команд PHP в интерактивном режиме

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

Для запуска интерактивного шелла:

выполнить php код в консоли. Смотреть фото выполнить php код в консоли. Смотреть картинку выполнить php код в консоли. Картинка про выполнить php код в консоли. Фото выполнить php код в консоли

Запуск отдельных команд PHP

Для выполнения отдельных команд используйте опцию -r:

Источник

Выполнить php код в консоли

Существенные отличия CLI SAPI от других SAPI :


Хотя в CGI SAPI имеется способ подавления HTTP-шапок, эквивалентного переключателя для их включения в CLI SAPI нет.

Примечание: Эти директивы не могут быть инициализированы другим значением из файла конфигурации php.ini или специального файла (если специфицирован). Это является некоторым ограничением, поскольку эти значения по умолчанию применяются после разбора всех файлов конфигурации. Однако их значение может быть изменено на этапе прогона программы (что не имеет смысла для всех других директив, например, для register_argc_argv).

Легче работать в среде оболочки, когда определены следующие константы:

Таблица 24-2. Специфические CLI-константы

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

CLI SAPI не изменяет текущую директорию на директорию исполняемого скрипта!

Пример, показывающий отличие CGI SAPI :

Это ясно показывает, что PHP изменяет свою текущую директорию на директорию исполняемого скрипта.

Использование CLI SAPI даёт:

Сказать PHP выполнить определённый файл.

Передать PHP код для выполнения непосредственно из командной строки.

Особого внимания требует замена переменных оболочки и использование кавычек.

Вы не можете комбинировать эти три способа при выполнении кода.

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

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

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

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

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

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

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

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

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

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

-hС помощью данной опции вы можете получить информацию о действующем списке опций командной строки и небольшое описание их работы.

Пример 24-1. Скрипт, предназначенный для запуска из командной строки (script.php)

Пример 24-2. Пакетный/Batch-файл для запуска PHP-скрипта в командной строке (script.bat)

См. также в документации по расширению Readline о функциях, которые можно использовать для усовершенствования вашего РНР-приложения для командной строки.

Источник

PHP и консоль

Работа с PHP в консоли. Создание встроенного «веб-сервера». Передача аргументов скрипту.

Al-Sher «>2017-01-01 15:34:21

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

Hello World!

Начнем с простого: Запустим php скрипт, который будет выводить нам «Hello World!». Рассмотрим варианты, которые нам доступны:

Интерактивная консоль

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

Для работы интерактивной консоли необходимо скомпилировать PHP с опцией

Запуск кода в консоли

Запуск кода из файла

Самый популярный из данных методов. Его суть заключается в запуске текстового файла, в котором содержится PHP код. Создадим для начала файл hello.php в котором запишем следующий код:

Теперь откроем директорию с данным файлом в консоли и запустим его:

Запуск встроенного веб-сервера

Все эти методы позволят запустить код в консоли, но что же нам сделать, чтобы увидеть результат в браузере? Для этого можно воспользоваться, например, встроенным веб-сервером(рассматривать Apache, Nginx и т.д. в данной статье нет смысла). Запустим в папке с предыдущим нашим скриптом(hello.php) следующую команду:

Тут мы указываем нашему PHP, что ему необходимо прослушивать 8000 порт localhost’а. Давайте зайдем на localhost:8000/hello.php и посмотрим, что напишет наш браузер. Если всё нормально и вам вывелось

Аргументы

Если всё хорошо, то нам выведится название файла. Теперь добавим некоторые аргументы, например test и arguments:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *