-
Указывание конкретного файла для запуска.
$ php my_script.php $ php -f my_script.php
Оба способа (с указыванием опции -f или без) запустят файл my_script.php . Нет ограничений, какой файл запускать, и PHP-скрипты не обязаны иметь расширение .php.
Замечание: Если необходимо передать аргументы в скрипт, то при использовании опции -f первым аргументом должен быть — .
$ php -r ‘print_r(get_defined_constants());’
Необходимо быть особо осторожным при использовании этого способа, так как может произойти подстановка переменных оболочки при использовании двойных кавычек.
Замечание: Внимательно прочтите пример: в нем нет открывающих и закрывающих тегов! Опция -r просто в них не нуждается. Их использование приведет к ошибке парсера.
$ some_application | some_filter | php | sort -u > final_output.txt
Как и любое другое консольное приложение, бинарный файл PHP принимает аргументы, но PHP-скрипт также может получать аргументы. PHP не ограничивает количество аргументов, передаваемых в скрипт (оболочка консоли устанавливает некоторый порог количества символов, которые могут быть переданы; обычно этого лимита хватает).
Установка PHP на Windows 10
Переданные аргументы доступны в глобальном массиве $argv . Первый индекс (ноль) всегда содержит имя вызываемого скрипта из командной строки. Учтите, что если код вызывается на лету из командной строки с помощью опции -r , значением $argv[0] будет просто дефис (-). То же самое верно и для кода, переданного через конвейер из STDIN.
Вторая зарегистрированная глобальная переменная — это $argc , содержащая количество элементов в массиве $argv ( (а не количество аргументов, переданных скрипту).
Если передаваемые аргументы не начинаются с символа -, то особых проблем быть не должно. Передаваемый в скрипт аргумент, который начинается с — создаст проблемы, так как PHP решит, что он сам должен его обработать. Для предотвращения подобного поведения используйте разделитель списка аргументов —. После того как этот разделитель будет прочитан PHP, все последующие аргументы будут переданы в скрипт нетронутыми.
# Эта команда не запустит данный код, но покажет информацию об использовании PHP $ php -r ‘var_dump($argv);’ -h Usage: php [options] [-f] [args. ] [. ] # Эта команда передаст аргумент ‘-h’ в скрипт, предотвратив показ справки PHP $ php -r ‘var_dump($argv);’ — -h array(2) < [0]=>string(1) «-» [1]=> string(2) «-h» >
Однако, в Unix-системах есть еще один способ использования PHP для консольных скриптов. Можно написать скрипт, первая строка которого будет начинаться с #!/usr/bin/php (или же другой корректный путь к бинарному файлу PHP CLI ). После этой строки можно поместить обычный PHP-код, заключенный в открывающие и закрывающие теги PHP. Как только будут установлены корректные атрибуты запуска на файл (например, chmod +x test), скрипт может быть запущен как обычный консольный или perl-скрипт:
Как запустить php файл или php код
Пример #1 Запуск PHP-скрипта как консольного
#!/usr/bin/php
var_dump ( $argv );
?>
Подразумевая что этот файл называется test и находится в текущей директории, можно сделать следующее:
$ chmod +x test $ ./test -h — foo array(4) < [0]=>string(6) «./test» [1]=> string(2) «-h» [2]=> string(2) «—» [3]=> string(3) «foo» >
Как можно увидеть, в этом случае не нужно заботиться о передаче параметров, которые начинаются с -.
Исполняемый PHP-файл может использоваться для запуска PHP-скриптов независимо от веб-сервера. В случае, работы в Unix-подобной системе, необходимо добавить ко всем скриптам особую строку #! (называемую также «shebang») в начало файла и сделать их исполняемыми, чтобы указать, какая из программ должна обрабатывать эти скрипты. На Windows-платформах можно назначить обработчик php.exe для файлов с расширениями .php либо создать пакетный (.bat) файл для запуска скриптов посредством PHP. Строка, добавляемая в начале скрипта для Unix-систем, не влияет на их работу в ОС Windows, таким образом можно создавать кроссплатформенные скрипты. Ниже приведен простой пример скрипта, выполняемого из командной строки:
Пример #2 Скрипт, предназначенный для запуска из командной строки (script.php)
if ( $argc != 2 || in_array ( $argv [ 1 ], array( ‘—help’ , ‘-help’ , ‘-h’ , ‘-?’ ))) ?>
Это консольный PHP-скрипт, принимающий один аргумент.
Любое слово, которое вы хотели бы
напечатать. Опции —help, -help, -h,
или -? покажут текущую справочную информацию.
Скрипт приведенный выше включается в себя специальную Unix строку, указывающую на его запуск с помощью PHP. Работа ведется с CLI -версией, поэтому не будет выведено ни одного HTTP -заголовка.
Также приведенный пример проверяет количество переданных аргументов. В случае, если их больше или меньше одного, а также в случае, если переданный аргумент был —help , -help , -h или -? , выводится справочное сообщение с использованием $argv[0] , которое содержит имя выполняемого скрипта. В противном случае просто выводится полученный аргумент.
Для запуска приведенного примера в Unix-системе, необходимо сделать его исполняемым и просто выполнить в консоли script.php echothis или script.php -h. В Windows-системе можно создать пакетный файл:
Пример #3 Пакетный файл для запуска PHP-скрипта из командной строки (script.bat)
Предполагая, что скрипт называется script.php и полный путь к CLI php.exe совпадает с C:phpphp.exe , приведенный пакетный файл запустит скрипт с переданными параметрами: script.bat echothis либо script.bat -h.
Также можно ознакомиться с расширением Readline, которое можно использовать для усовершенствования консольного PHP-скрипта.
В Windows запуск PHP можно настроить без необходимости указывать C:phpphp.exe и расширение .php. Подробнее эта тема описана в разделе Запуск PHP из командной строки в Microsoft Windows.
Источник: php.ru
Как запустить PHP скрипт в командной строке (без веб-сервера)
Как запустить PHP скрипт в командной строке Windows
Для запуска PHP в командной строке необязательно устанавливать веб-сервер, достаточно скачать и распаковать архив с PHP интерпретатором. О том, где скачать PHP с официального сайта и как разобраться с версиями, смотрите эту статью.
Если вы часто будете запускать PHP скрипты из командной строки Windows, то настоятельно рекомендуется Добавить путь до PHP в переменную окружения PATH в Windows. Благодаря этому не придётся каждый раз указывать полный путь до файла php.exe.
Теперь, когда PHP установлен и путь до php.exe добавлен в переменную окружения Windows, открываем командную строку, для этого нажмите сочетание клавиш Win+x и выберите Windows PowerShell.
Для проверки, что нормально установилось, посмотрим справку по PHP:
php -h
На самом деле, мы запускаем файл php.exe, но расширение можно отбросить. То есть предыдущая запись эквивалентна
php.exe -h
Как запустить .php скрипт в командной строке Windows и Linux
Для запуска .php файла в консоли Windows используется следующая команда:
php -f путьдофайла.php
Опцию -f можно отбросить, то есть предыдущая и следующая команды равнозначны:
php путьдофайла.php
Я создал тестовый файл, который расположен по пути C:UsersAlexDocumentsPHPtest.php тогда я могу запустить его в PHP так:
php -f C:UsersAlexDocumentsPHPtest.php
php C:UsersAlexDocumentsPHPtest.php
Как передать аргументы PHP скрипту в командной строке
Для передачи скрипту аргументов, перечислите их после имени файла, разделяя пробелом. Если сами аргументы содержат пробелы или другие символы, которые имеют особое значение для оболочки командной строки, то поместите эти аргументы и одинарные или двойные кавычки.
php путьдофайла.php ‘аргумент1’ ‘аргумент2’ ‘аргумент3’ ‘аргумент_n’
Пример запуска PHP скрипта с тремя аргументами:
php C:UsersAlexDocumentsPHPtest.php ‘Alex’ ‘hackware.ru’ ‘Admin’
Как в PHP скрипте обратиться к аргументам
Переданные аргументы содержаться в массиве $argv. Причём, порядковый номер аргумента соответствует номеру в массиве. То есть первый аргумент будет помещён в $argv[1], второй в $argv[2] и так далее.
Самый первый элемент массива $argv[0] содержит полный путь до запускаемого скрипта.
Содержимое файла test.php:
Запустим его и передадим в скрипт три аргумента:
php C:UsersAlexDocumentsPHPtest.php ‘Alex’ ‘hackware.ru’ ‘Admin’
Как в 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 в интерактивном режиме, вводя код построчно. При этом код выполняется после нажатия кнопки Enter, но значения переменных сохраняются в рамках одной сессии. То есть вы можете присвоить значение какой-либо переменной, а затем использовать его в других строках.
Для запуска интерактивного шелла:
php -a
Запуск отдельных команд PHP
Для выполнения отдельных команд используйте опцию -r:
php -r ‘echo 2**100;’
Источник: apache-windows.ru
Как запускать PHP-код
Данную статью я решил посветить всем начинающим изучать PHP, потому что у всех возникает одна и та же ошибка. Почему её допускают, не знаю, но допускают постоянно. Я без преувеличений скажу, что получил уже около сотни вопросов, на которые ответ будет дан в этой статье. Эта ошибка связана с неправильным запуском в PHP.
Как делают практически все новички:
- Создают PHP-файл (иногда HTML-файл, но это самые новички).
- Записывают туда PHP-код.
- И двойным кликом пытаются открыть его в браузере.
Результат, браузер код открывает, но исполнять его не торопится. А просто выводит какие-то куски кода обычным текстом, либо вообще ничего не выводит.
Ошибка данного подхода состоит в том, что ученик не понимает, что PHP — это серверный язык, а не клиентский. Это HTML или JavaScript клиентские языки, они, конечно, обрабатываются браузером. Но для PHP нужен интерпритатор. И вот данный интерпритатор запускается сервером.
Вывод: запускать PHP-код надо через сервер. Если у Вас Denwer, значит, через него.
Теперь, как запускать PHP-код через Denwer. Большинство новичков вновь делают ошибку. Они вроде бы всё делают правильно, создают нужные папки, перезапускают Denwer и вроде бы, осталось только правильно вызвать файл. Но тут снова ошибка: они вновь открывают файл просто в браузере (либо перетаскиванием файла в браузер, либо двойным кликом).
Это легко можно заметить по адресу в адресной строке. Там будет что-то наподобие: file:///Z:homemysite.localwwwscript.php.
А правильно запускать надо, вводя адрес виртуального хоста. То есть прямо в адресной строке браузера вводите: http://mysite.local/script.php — всё, теперь скрипт запустится и выведет свой результат.
Надеюсь, данная статья поможет многим новичкам, только начинающим изучать PHP.
Создано 05.03.2012 16:29:04
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 49 ):
Bulat 06.03.2012 17:13:16
А как можно исправить код на сайте на вордпресс? Если надо изменить немного шапку в шаблоне? Мой сайт http://ubolika.ru — В каком там файле надо вносить изменения?
Admin 06.03.2012 17:38:54
Найдите файл index.php в папке с темой Вашего шаблона. Данный файл и нужно править.
terminator1000 20.11.2012 17:56:41
Установил Denwer, всё сделал как сказано, но PHP в браузере не выводится
Admin 20.11.2012 18:20:53
Файлы имеют расширение php? Сайты вообще открываются (например, HTML-код)? Если всё так, то скопируйте адрес из адресной строки и покажите его.
terminator1000 21.11.2012 13:29:35
Здравствуйте Михаил! Создал на диске С папку WebServers. Установил туда Denwer. После установки было написано, что Denwer успешно установлен. Набрал в браузере адрес тестового сайта: test1.ru Браузер мне выдал: Это файл /home/test1.ru/www/index.html. Всё вроде бы работает. Создал папку с сайтом: C:WebServershometest2.ru Перезапустил Denwer. В папке с сайтом test2.ru создал папку www.
В ней создал документ index.html В html всё работает хорошо. Создают второй документ с расширением php. Пишу для проверки такой php-код: В браузере, если я понимаю правильно, я должен увидеть 5. Но ничего нет. В программе Notepad++ открывают документ в браузере. Путь такой: file:///C:/WebServers/home/test2.ru/www/index2.php
Admin 21.11.2012 13:55:55
Во-первых, перезапускать сервер надо было после создания www. А что касается пути, то внимательнее прочитайте статью, как раз о Вашей ошибке там и говорится.
terminator1000 21.11.2012 14:18:32
Перезапустил Denwer после того, как создал папку www. Создал в этой папке файл с расширением php. Вы могли бы мне подсказать, что я должен ввести в браузере из ходя из того пути, который я вам написал?
Admin 21.11.2012 14:20:27
terminator1000 21.11.2012 14:39:16
Большое Вам спасибо Михаил! С вашей помощью мне наконец удалось решить данную проблему.
GoTo 12.01.2013 21:44:48
Михаил, для меня PHP ещё тёмный лес. Как я понял, для выполнения кода PHP страница должна иметь расширение *.php. А почему тогда у вас страницы на сайте с расширением *.html?
Admin 13.01.2013 11:08:15
david512 26.02.2013 00:22:00
Здравствуйте Михаил!я пробовал все что сказано в коментариях и все получилась! за этоспасибо большое . теперь пишу вот такой простинкий код
проверка
отображается ошибка Parse error: syntax error, unexpected T_STRING, expecting ‘,’ or ‘;’ in Z:hometest2.ruwwwindex2.php on line 4 скажи пожалуста в чем ошибка
Admin 26.02.2013 09:39:27
Про echo: http://myrusakov.ru/hello-world-php.html
Pasharon 04.04.2013 06:02:42
. у меня броузер не открывает страницу с шасширением php ,а пытается сохранить ! что делать ?
Admin 04.04.2013 11:17:46
Скопируйте адрес из адресной строки.
Pasharon 04.04.2013 17:12:27
спасибо,заработало. но пшп браузер не хочет кушать ,пишет следующее: HTML1406: Недопустимое начало тега: »
Admin 04.04.2013 20:54:03
Попробуйте в другом браузере.
Pasharon 05.04.2013 05:19:38
. наконец-то высидев на пятой точке ночь — я таки достал этот денвер и и прописав http:// получил работающий php .
eduard.93 28.05.2013 10:15:32
Создаю документ с расширением php. Пишу для проверки такой php-код: В браузере, если я понимаю правильно, я должен увидеть 5. и мне показывает 5 но когда я выключаю denwer и включаю и мне уже не выдает 5 а весь код выдает ??
Admin 28.05.2013 11:21:57
Для работы PHP необходим denwer.
janis25052 05.06.2013 17:03:39
Спасибо, щас PHP код заработал.
limetan 26.07.2013 01:28:28
вроде разобрался с php кодом) теперь можете обьяснить как исправить это file:///Z:/home/mysite.local/www/index.php на это http://mysite.local/index.php что бы с Notepad++ запускать файлы на прямую.ещё раз спасибо вам вы граммотный учитель.
Admin 26.07.2013 19:31:02
Вам не нужно ничего менять. Изменяете файл как обычно, сохраняете (ctrl+s) и параллельно смотрите изменения в браузере, где и открыт mysite.local.
limetan 27.07.2013 02:03:03
Михаил я не много не понял,файлы с кодировкой изменять или где?просто в браузере вот такое file:///Z:/home/mysite.local/www/index.php а название файлов например вот такое index.php,так как и что изменять?за ранее спасибо.
Admin 27.07.2013 17:29:18
Почитайте статью. В браузере не должно быть такого адреса, это не адрес локального сервера.
limetan 28.07.2013 01:43:09
Михаил какую статью прочитать?эту?,а вы можете подсказать как изменить?а то догадками как то не понятно))
Admin 28.07.2013 23:41:38
Да, эту. Там всё написано как раз по Вашему вопросу, я и не знаю как понятнее объяснить. В браузере должен быть только адрес сайта по типу http://mysite.local
Diman1-2-3 22.09.2013 17:19:58
Здравствуйте. пожалуйста помогите запустить файл php. сделал все строго по инструкции. в конечном итоге браузер мне пишет к сожaлению google не может открыть страницу. что делать
Admin 22.09.2013 19:23:01
Попробуйте вручную вписывать http:// перед адресом.
flatcher7 24.12.2013 22:50:27
А у меня такая проблема. когда устанавливал Denwer — все сделал правильно. Потом начал набирать сайт по видеоуроку «основы HTML». переименовал все страницы в php. запускал сайт через mysite.local в браузере — без проблем. Теперь решил создать сайт (так сказать урок номер 2) с использованием связанного стиля CSS. но я просто удалил из папки www на сервере все файлы первого сайти и закинул туда новые, включая index.php, фаил стилей .css и т.д. Так вот теперь запускаю в браузере mysite.local, все работает, но отображается только голимый html. в чем проблема. и заново www создавал, делал все что в статьях написано — не помогает. Что делаю не так?
tikkiwiki 25.12.2013 13:37:25
Обращайтесь в службу поддержки.
sanda 03.02.2014 12:02:49
Стили вообще подключены? Если нет, то ошибка в коде
bazhin83 13.01.2014 13:36:23
Тот же глупый и вечный вопрос про неисполнение 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.
tikkiwiki 13.01.2014 15:13:13
Максим, в адресной строке браузера следует писать не Y:/home/dle.ru/www/install.php, а что-то вроде этого: www.yousite.com/install.php
bazhin83 19.01.2014 16:28:36
Да, правильно, чтобы в браузере в адресной строке было»Веб» а не «Локальный». Просто php какой-то левый. С другим пошло.
Владимир Ю 09.04.2014 23:11:29
Здраствуйте, Михаил. Подскажите пожалуйста: я создал форму (ввиде заказа товара) с HTML-кодом и сделал обработчик РНР который должен обработать форму и отправитьобработанные данные на ел.почту, письмо он то отправляет, но просто с текстом без обработки переменных, т.е. скажем в поле «От кого» пустое место и так со всеми полями.
analitic 15.06.2014 11:04:34
Здравствуйте, у меня не работает PHP, когда я создаю скрипт то вместо http://mysite.local/script.php сервер направляет на file:///Z:homemysite.localwwwscript.php. Как локальный сервер правильно настроить, чтобы он выводил мои скрипты, а не код? С уважением Евгений Голубев
alexandrdante 15.06.2014 13:31:15
я вам уже отвечал. 1.создали папку homemysite.localwww mysite.local создаётся там же,где и папка localhost, закинули файл script.php в папку www перезагрузили denwer,открыли браузер. в адресной строке ввели:http://mysite.local/script.php
analitic 15.06.2014 11:05:33
Я изменил, ссылку с под название своего сайта, но она почему то не работает? С уважением Евгений Голубев.
alexandrdante 15.06.2014 13:27:50
не дублируйте комментарии в службу поддержки и сюда.
Che777 24.08.2014 17:10:43
! Вопрос такого плана, когда поменял расширения файлов html на php на сайте вместо текста сразу вылезли абракадабрики, отчего??
bonfynk 04.01.2015 19:19:20
Возможно надо сохранить код сайта в notepad++ а сверху в пункте меню кодировка выбрать utf-8 without BOM. Также надо создать файл .htaccess и в нем прописать AddDefaultCharset UTF-8
yulia-ru 15.10.2015 12:18:21
помогите и мне пожалуйста, 1 страница именно после создания меню html и переименования php страницы в разделе меню выдает абрыкадабры, 2 страница нормально. и коды переставила, ничего не помогает. если создавать файл где конкретно и как
yulia-ru 15.10.2015 12:38:47
все в порядке, именно в первой странице в кодировке спустилась ниже и нажала преобразовать в utf-8, хотя для остальных страниц достаточно было нажать просто utf-8, может кому то будет полезным! : )
kusjusju 10.10.2014 09:55:12
СПАСИБО УВАЖАЕМЫЙ. ОЧЕНЬ ПОМОГЛА ВАША СТАТЬЯ. из всего что нашла в инете именно ВАША спасла меня!! СПАСИБО 1000раз.
bonfynk 04.01.2015 19:09:17
В вашем уроке по РНР с нуля до гуру я приступил к написанию движка и в результате имел много ошибок при выводе страницы. Когда я их исправил у меня вышел только пустой экран. Существует ли какойто способ проверки каждого класса на роботоспособность? Возможно ли проверять работу функций во время их написания?
tikkiwiki 05.01.2015 09:34:32
Включите максимальное отображение ошибок.
mirbozov 26.02.2016 17:25:53
Помогите пожалуйста: когда всё сделал от и до, браузер пишет веб-страница не доступна. Почему? Может какие то хост права разрешить или что то вроде этого?
Alena11 02.05.2019 14:57:41
добрый день! подскажите пож-ста, установила Open server при запуске файла с php кодом открывается пустая страница или выводится сам код на страницу, раcширение .php, запускаю файл через open server, путь https://new/index.php . html код с расширением .php открывается нормально что делать??
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Источник: myrusakov.ru