Как запустить файл php? - Itsovet61.ru

Как запустить файл php?

В CLI SAPI есть три различных способа запуска PHP-кода: Указывание конкретного файла для запуска. $ php my_script.php $ php -f my_script.php Оба способа (с указыванием опции -f или

Как запустить файл php?

Выполнение PHP-файлов

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

Оба способа (с указыванием опции -f или без) запустят файл my_script.php . Нет ограничений, какой файл запускать, и PHP-скрипты не обязаны иметь расширение .php.

Если необходимо передать аргументы в скрипт, то при использовании опции -f первым аргументом должен быть .

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

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

Внимательно прочтите пример: в нем нет открывающих и закрывающих тегов! Опция -r просто в них не нуждается. Их использование приведет к ошибке парсера.

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

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

Как и любое другое консольное приложение, бинарный файл PHP принимает аргументы, но PHP-скрипт также может получать аргументы. PHP не ограничивает количество аргументов, передаваемых в скрипт (оболочка консоли устанавливает некоторый порог количества символов, которые могут быть переданы; обычно этого лимита хватает). Переданные аргументы доступны в глобальном массиве $argv . Первый индекс (ноль) всегда содержит имя вызываемого скрипта из командной строки. Учтите, что если код вызывается на лету из командной строки с помощью опции -r , значением $argv[0] будет просто дефис (). То же самое верно и для кода, переданного через конвейер из STDIN.

Вторая зарегистрированная глобальная переменная — это $argc , содержащая количество элементов в массиве $argv ( (а не количество аргументов, переданных скрипту).

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

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

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

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

Исполняемый PHP-файл может использоваться для запуска PHP-скриптов независимо от веб-сервера. В случае, работы в Unix-подобной системе, необходимо добавить ко всем скриптам особую строку #! (называемую также «shebang») в начало файла и сделать их исполняемыми, чтобы указать, какая из программ должна обрабатывать эти скрипты. На Windows-платформах можно назначить обработчик php.exe для файлов с расширениями .php либо создать пакетный (.bat) файл для запуска скриптов посредством PHP. Строка, добавляемая в начале скрипта для Unix-систем, не влияет на их работу в ОС Windows, таким образом можно создавать кроссплатформенные скрипты. Ниже приведен простой пример скрипта, выполняемого из командной строки:

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

#!/usr/bin/php
if ( $argc != 2 || in_array ( $argv [ 1 ], array( ‘—help’ , ‘-help’ , ‘-h’ , ‘-?’ ))) <
?>

Это консольный PHP-скрипт, принимающий один аргумент.

Использование:
echo $argv [ 0 ]; ?>

Любое слово, которое вы хотели бы
напечатать. Опции —help, -help, -h,
или -? покажут текущую справочную информацию.

Скрипт приведенный выше включается в себя специальную Unix строку, указывающую на его запуск с помощью PHP. Работа ведется с CLI -версией, поэтому не будет выведено ни одного HTTP -заголовка.

Также приведенный пример проверяет количество переданных аргументов. В случае, если их больше или меньше одного, а также в случае, если переданный аргумент был —help , -help , -h или -? , выводится справочное сообщение с использованием $argv[0] , которое содержит имя выполняемого скрипта. В противном случае просто выводится полученный аргумент.

Для запуска приведенного примера в Unix-системе, необходимо сделать его исполняемым и просто выполнить в консоли script.php echothis или script.php -h. В Windows-системе можно создать пакетный файл:

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

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

Как запускать PHP-код

Данную статью я решил посветить всем начинающим изучать PHP, потому что у всех возникает одна и та же ошибка. Почему её допускают, не знаю, но допускают постоянно. Я без преувеличений скажу, что получил уже около сотни вопросов, на которые ответ будет дан в этой статье. Эта ошибка связана с неправильным запуском в PHP.

Как делают практически все новички:

  1. Создают PHP-файл (иногда HTML-файл, но это самые новички).
  2. Записывают туда PHP-код.
  3. И двойным кликом пытаются открыть его в браузере.

Результат, браузер код открывает, но исполнять его не торопится. А просто выводит какие-то куски кода обычным текстом, либо вообще ничего не выводит.

Ошибка данного подхода состоит в том, что ученик не понимает, что PHP — это серверный язык, а не клиентский. Это HTML или JavaScript клиентские языки, они, конечно, обрабатываются браузером. Но для PHP нужен интерпритатор. И вот данный интерпритатор запускается сервером.

Вывод: запускать PHP-код надо через сервер. Если у Вас Denwer, значит, через него.

Теперь, как запускать PHP-код через Denwer. Большинство новичков вновь делают ошибку. Они вроде бы всё делают правильно, создают нужные папки, перезапускают Denwer и вроде бы, осталось только правильно вызвать файл. Но тут снова ошибка: они вновь открывают файл просто в браузере (либо перетаскиванием файла в браузер, либо двойным кликом). Это легко можно заметить по адресу в адресной строке. Там будет что-то наподобие: file:///Z:homemysite.localwwwscript.php.

А правильно запускать надо, вводя адрес виртуального хоста. То есть прямо в адресной строке браузера вводите: http://mysite.local/script.php — всё, теперь скрипт запустится и выведет свой результат.

Надеюсь, данная статья поможет многим новичкам, только начинающим изучать PHP.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 49 ):

    А как можно исправить код на сайте на вордпресс? Если надо изменить немного шапку в шаблоне? Мой сайт http://ubolika.ru — В каком там файле надо вносить изменения?

    Найдите файл index.php в папке с темой Вашего шаблона. Данный файл и нужно править.

    Установил Denwer, всё сделал как сказано, но PHP в браузере не выводится

    Файлы имеют расширение php? Сайты вообще открываются (например, HTML-код)? Если всё так, то скопируйте адрес из адресной строки и покажите его.

    Здравствуйте Михаил! Создал на диске С папку 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

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

    Перезапустил Denwer после того, как создал папку www. Создал в этой папке файл с расширением php. Вы могли бы мне подсказать, что я должен ввести в браузере из ходя из того пути, который я вам написал?

    Большое Вам спасибо Михаил! С вашей помощью мне наконец удалось решить данную проблему.

    Михаил, для меня PHP ещё тёмный лес. Как я понял, для выполнения кода PHP страница должна иметь расширение *.php. А почему тогда у вас страницы на сайте с расширением *.html?

    Здравствуйте Михаил!я пробовал все что сказано в коментариях и все получилась! за этоспасибо большое . теперь пишу вот такой простинкий код

    HackWare.ru

    Этичный хакинг и тестирование на проникновение, информационная безопасность

    Как запустить PHP скрипт без веб-сервера

    Интерпретатор PHP стал неотъемлемой частью практически каждого веб-сервера. Подавляющее большинство веб-приложений написаны на PHP. Поэтому технология PHP очень стойко у многих ассоциируется именно с веб окружением, со средой веб-сервера. Но на самом деле, запускать скрипты PHP можно без веб-браузера. Речь идёт не о специально созданных как веб приложения программах, таких как WordPress, phpMyAdmin, гостевые книги, форумы и прочее. Такие скрипты специально создавались для работы в условиях веб-сервера и для вывода результатов в веб-браузер. Вряд ли удастся полноценно с ними работать в командной строке. Речь идёт о консольных программах на PHP, которые могут выполнять различные, не обязательно связанные с веб сервисами функциями. По сути, PHP является очень гибким языком с хорошим набором классов и на нём можно написать консольную программу под любые функции. Либо ядро программы (так называемый бэк-энд) к которому будер обращаться графический пользовательский интерфейс.

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

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

    У вас должен быть установлен PHP, к счастью, в Linux интерпретатор PHP устанавливается очень просто, а в некоторых дистрибутивах присутствует по умолчанию. Если у вас его ещё нет, то установите его одной из следующей команд.

    Читайте также  Как открыть файл Aae?

    В Debian, Kali Linux, Linux Mint, Ubuntu:

    В Arch Linux, BlackArch:

    Установка полного веб-сервера в Linux Mint описана здесь, в Ubuntu здесь, в Arch Linux/BlackArch здесь, а в Kali Linux он уже установлен, про то, как его запустить здесь.

    В остальном запуск скриптов в консоли, в том числе опции запуска, в Linux и Windows идентичные.

    Если вы совсем новичок в Linux, то также смотрите Азы работы в командной строке.

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

    Если вы знакомы с запуском консольных программ в Windows или хотя бы в Linux, то для вас всё совсем просто — везде программы запускаются примерно одинаково. Но начнём по порядку для новичков.

    Если вы хотите не только возможность запускать PHP из командной строки, но и полноценный веб-сервер Apache + PHP + MySQL на Windows, то выполните установку по этой статье.

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

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

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

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

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

    Справка и опции запуска PHP скриптов в командной строке

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

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

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

    Для запуска .php файла в консоли Windows используется следующая команда:

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

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

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

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

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

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

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

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

    Содержимое файла test.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 в командной строке

    С опцией -l будет проверен синтаксис, то есть не нарушены ли правила кода PHP, но сам файл скрипт не будет выполнен:

    Или если в файле есть ошибки:

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

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

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

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

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

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

    В PHP есть свой собственный веб-сервер! Если вам очень надо, можно вообще обойтись без сторонних серверов для каких-то определённых задач.

    Допустим, в качестве прослушиваемого IP адреса я хочу установить 127.0.0.1, в качестве прослушиваемого порта — 84, корневая папка документов веб-сервера у меня расположена в C:UsersAlexDocumentsPHP, тогда команда запуска следующая:

    В этой папке у меня файл test_2.php со следующим содержимым:

    В самом браузере:

    Можно было бы из спортивного интереса попробовать во встроенном веб-сервере запустить WordPress, но что-то лень…

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

    Для получения справки о функциях PHP прямо в командной строке используется опция —rf.

    Ну как-то так… а чего вы хотели — это же консоль.

    Насколько я понял, в строке Parameters в фигурных скобках пишется количество аргументов функции, строка required означает, что аргумент обязательный, а строка optional — что аргумент опциональный. О функции аргументов иногда можно догадаться по их имени, например, $filename. Информации о том, какое действие выполняет функция, видимо, нет.

    Опции для разработчика

    Если вы действительно пишите и отлаживаете код, в том числе для веб-сайтов, то вам пригодятся следующие опции:

    Вывод информации о PHP

    Для показа информации о PHP имеются следующие три опции:

    Опция -i — это эквивалент phpinfo, но для консоли.

    PHP не может сохранить файл даже если достаточно прав на запись

    На самом деле это может случиться не только при запуске PHP скриптов из командной строки, но и при работе скрипта на веб-сервере. Но при запуске в консоли больше условий для получения этой проблемы: PHP скрипт не сохраняет файл в папку, на которую установлены права на запись для кого угодно (777).

    Такое поведение может выглядеть необъяснимым, если вы не знаете о директиве open_basedir в главном конфигурационном файле php.ini. Данная директива ограничивает все файловые операции теми папками, которые указаны с ней. Пример:

    Данная запись означает, что PHP скрипт может записывать файлы в папку /srv/http/, а также в папки /etc/webapps/, /usr/share/webapps/ и /tmp/.

    Причём если директива open_basedir вообще не настроена (строка с ней, например, закомментирована), то PHP может записывать в любую папку, если у текущего пользователя достаточно прав на запись.

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

    Чтобы избавиться от этой ошибки есть несколько вариантов:

    • добавить папку, в которую вы хотите сохранить файл, в перечень open_basedir
    • выбрать для сохранения папку уже указанную в open_basedir
    • запустить интерпретатор PHP без чтения настроек из конфигурационных файлов (в этом случае не будет учтена директива open_basedir, а также вообще все другие конфигурации

    Чтобы запустить PHP скрипт без учёта настроек файла php.ini используйте опцию -n, например:

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

    Заключение

    Запуск PHP скриптов в командной строке — это альтернатива их запуску через веб-сервер. Работа в консоли может быть удобна при обучении языку программированию PHP или для отладки определённых функций, даже если в дальнейшем эти функции и скрипты будут работать на веб-сервере.

    Скрипт на PHP может быть альтернативой скрипту на Bash, особенно если нужно использовать СУБД (MySQL, SQLite) — с которыми через Bash работать тяжело, либо для использования возможностей PHP по работе с текстом в разметке XML, JSON — что в Bash также не очень удобно.

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

    Как запустить файл php?

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

    Оба способа (с указанием опции -f или без) запустят файл my_script.php . Нет ограничений, какой файл запускать; в частности, файлы не обязаны иметь расширение .php .

    Если необходимо передать аргументы в скрипт, то при использовании опции -f первым аргументом должен быть — .

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

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

    Внимательно прочтите пример: в нем нет открывающих и закрывающих тегов! Опция -r просто в них не нуждается, и их использование приведёт к ошибке разбора.

    Читайте также  Как добавить файлы в iCloud Drive на iPhone?

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

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

    Как и любое другое консольное приложение, бинарный файл PHP принимает аргументы, но PHP-скрипт также может получать аргументы. PHP не ограничивает количество аргументов, передаваемых в скрипт (оболочка консоли устанавливает некоторый порог количества символов, которые могут быть переданы; обычно этого лимита хватает). Переданные аргументы доступны в глобальном массиве $argv . Первый индекс (ноль) всегда содержит имя вызываемого скрипта из командной строки. Учтите, что если код вызывается на лету из командной строки с помощью опции -r, значением $argv[0] будет просто дефис ( — ). То же самое верно и для кода, переданного через конвейер из STDIN .

    Вторая зарегистрированная глобальная переменная — это $argc , содержащая количество элементов в массиве $argv (а не количество аргументов, переданных скрипту).

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

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

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

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

    Исполняемый PHP-файл может использоваться для запуска PHP-скриптов независимо от веб-сервера. В случае работы в Unix-подобной системе, необходимо добавить в первую строку файла #! (называемый также «shebang») чтобы указать, какая из программ должна запускать скрипт. На Windows-платформах можно назначить обработчик php.exe для файлов с расширениями .php или создать пакетный (.bat) файл для запуска скриптов посредством PHP. Строка, добавляемая в начале скрипта для Unix-систем, не влияет на их работу в ОС Windows, таким образом можно создавать кроссплатформенные скрипты. Ниже приведён простой пример скрипта, выполняемого из командной строки:

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

    #!/usr/bin/php
    if ( $argc != 2 || in_array ( $argv [ 1 ], array( ‘—help’ , ‘-help’ , ‘-h’ , ‘-?’ ))) <
    ?>

    Это консольный PHP-скрипт, принимающий один аргумент.

    Использование:
    echo $argv [ 0 ]; ?>

    Любое слово, которое вы хотели бы
    напечатать. Опции —help, -help, -h,
    или -? покажут текущую справочную информацию.

    В приведённом выше скрипте в первой строке содержится shebang, указывающий что этот файл должен запускаться PHP. Работа ведётся с CLI -версией, поэтому не будет выведено ни одного HTTP -заголовка.

    Скрипт сначала проверяет наличие обязательного одного аргумента (в дополнение к имени скрипта, который также подсчитывается). Если их нет, или если переданный аргумент был —help, -help, -h или -?, выводится справочное сообщение с использованием $argv[0] , которое содержит имя выполняемого скрипта. В противном случае просто выводится полученный аргумент.

    Для запуска приведённого примера в Unix-системе, нужно сделать его исполняемым и просто выполнить в консоли script.php echothis или script.php -h. В Windows-системе можно создать пакетный файл:

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

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

    В Windows запуск PHP можно настроить без необходимости указывать C:phpphp.exe или расширение .php . Подробнее эта тема описана в разделе Запуск PHP из командной строки в Microsoft Windows.

    В 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: #!/usr/bin/php
    2: #!/usr/bin/env php
    3: #!/usr/bin/php -n
    4: #!/usr/bin/php -ddisplay_errors=E_ALL
    5: #!/usr/bin/php -n -ddisplay_errors=E_ALL

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

    2. uses «env» to find where PHP is installed: it might be elsewhere in the $PATH, such as /usr/local/bin.

    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.

    5. This will not (as of 2013) work on Linux. It acts as if the whole string, «-n -ddisplay_errors=E_ALL» were a single argument. But in BSD, the shebang line can take more than 2 arguments, and so it may work as intended.

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

    Как запустить файл 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_time0 (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 , каждый последующий аргумент передаётся в ваш скрипт без изменений/не разобранным.

    Читайте также  Как открыть файл vCard на андроид?

    Однако, вот другой способ использования 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 по адресу phpdoc@lists.php.net. Можно легко столкнуться с проблемами при попытке получить переменные оболочки в коде или использовании обратных слэшей (/) для замен/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 файл можно специальным ПО, либо в окне браузера. Помимо файлов для программирования сайтов есть три разновидности php-расширения, которые применяются в отдельных нераспространенных сервисах. Это слайд-шоу программы Callisto PhotoParade, рабочий файл CreataCard, содержащий автосохранения и файл издательской программы Microsoft Picture It! Они не так распространены, поэтому вероятность встретить их невелика. Как открыть php файл для веб-программирования, расскажем ниже.

    Общее описание формата PHP

    Язык программирования PHP в 1995 году разработал датский программист Расмус Релдорф. Спустя два года после выхода первой версии Релдорф выпустил улучшенный вариант. Его стал использовать каждый сотый домен в интернете. В 1998 году документ переделали израильские программисты, которые в дальнейшем продолжили заниматься проектом. Их версия получила название PHP 3.0. На сегодняшний день используется 7.0.0 версия, выпущенная в 2015 году. Язык PHP находится на 6 месте по популярности, на нем написаны интернет-гиганты Facebook и Wikipedia.

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

    У формата открытый исходный код на сервере. Сайты на таком движке анализируют php-файлы, создают html страницу и отправляют в браузер . В итоге, при просмотре исходного кода пользователь не видит php-код.

    Как и чем открыть файл php расширения

    Файл php открыть не так просто, как html. Есть два способа: программный и браузерный. В двух случаях нужен интерпретатор, либо специальное ПО, причем важно отметить, что запустить php и открыть – не одно и то же.

    Открыть php в браузере

    Чтобы понять, как открыть файл php в браузере, важно понять отличие php от html. Последний открывается на стороне клиента – то есть в браузере, а php – на сервере. Чтобы запустить php, нужно либо приобрести домен и работать с php на нем, либо установить локальный сервер на компьютере. Последний способ предпочтительнее, поскольку бесплатный и позволяет создавать безграничное количество сайтов, которые хранятся на вашем ПК.

    Есть три основных вида локальных серверов:

    После установки локального сервера на компьютере необходимо создать сайт.

    Затем в папке сервера необходимо найти папку под названием «home», в ней создаете еще одну и называете ее как домен будущего сайта. Далее создаем еще одну папку и называем «www», в нее перетаскиваем нужные документы.

    Далее запускаем браузер и в адресной строке пишем название сайта/название файла php. После нажатия на «Enter», php запускается в виде приложения, а не текстового кода. Это позволяет тестировать интерактивные возможности получившейся страницы.

    Открыть php на компьютере

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

    Чем открыть php:

    • Notepad++ — редактор, работающий на Linux и Windows;
    • Eclipse PHP Development Tools – специализированная программная среда для веб-разработок на PHP;
    • MPSoftware phpDesigner – аналогичная программа, не распространенная в русскоязычном сегменте;
    • Apache Web Server – свободный сервер для разработок, совместим с Windows, Mac OS, Linux;
    • WampServer – комплект ПО для работы с php;
    • Adobe Dreamweaver CC – программа для веб-дизайна, поддерживающая в том числе язык PHP;
    • Стандартный текстовый редактор.

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

    Понравилась статья? Поделиться с друзьями:
    Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: