Как вызвать php скрипт из html
Перейти к содержимому

Как вызвать php скрипт из html

  • автор:

Запускаем первый PHP скрипт

Итак, запуск .php скрипта отличается от обычного HTML файла. Как мы знаем, чтобы в браузере открыть .html файл достаточно кликнуть на него и открыть его в браузере. А как же всё же открывается .php ? Итак, необходимо проделать следующие вещи:

1. Проинсталлировать denwer. Достаточно сделать только 1 раз.

2. Перезагрузить компьютер.

3. Если при установке поставили галочку, что автоматически запускать денвер при старте, то данный пункт пропускаем, в противном случае идём по адресу установки денвера, по умолчанию это c:/WebServers/ открываем папку «/denwer/» и запускаем его: «run.exe» , полный путь выглядит так: «c:/WebServers/denwer/run.exe». Теперь справа внизу должны появиться 2 иконки в виде розового пера и черной шапки на черной почтовой открытке.

4. Проверяем наличие папки по адресу: «c:/WebServers/home/test1.ru/www/». Так вот, данная директория и есть папка, в которой будет наш сайт.

5. В DreamWeaver создаём сайт: «Site/New site». Указываем имя для сайта и данную директорию, так как в ней будет располагаться наш сайт. Все .php файлы сохраняем в эту директорию и её поддиректории.

6. Запускаем скрипт. Открываем браузер и вводим в адресной строке: http://test1.ru/ — автоматически откроется index.php в корне сайта, или напрямую указываем файл, какой хотим открыть: http://test1.ru/myfile.php , это значит, что файл myfile.php находится по адресу: c:/WebServers/home/test1.ru/www/myfile.php

7. Теперь проверяем, работает ли наш файл верно. Пишем следующий код внутри:

Теперь на экране должна появиться фраза Hello World! без остальных символов, это значит, что мы всё верно сделали и можем приступать к изучению PHP.

Школа программирования © 2012-2023
imbalance_hero | inpost@list.ru , admin@school-php.com
account on phpforum | youtube channel

Первая страница на PHP

Создайте файл с именем hello.php в корневом каталоге веб-сервера ( DOCUMENT_ROOT ) и запишите в него следующее:

Пример #1 Первый скрипт на PHP: hello.php

Откройте данный файл в браузере, набрав имя вашего веб-сервера и /hello.php . При локальной разработке эта ссылка может быть чем-то вроде http://localhost/hello.php или http://127.0.0.1/hello.php , но это зависит от настроек вашего сервера. Если всё настроено правильно, этот файл будет обработан PHP и браузер выведет следующий текст:

   Тестируем PHP  

Привет, мир!

Эта программа чрезвычайно проста, и для создания настолько простой странички даже необязательно использовать PHP. Все, что она делает, это вывод Hello World , используя инструкцию PHP echo . Заметьте, что файл не обязан быть выполняемым или ещё как-то отличаться от других файлов. Сервер знает, что этот файл должен быть обработан PHP, так как файл обладает расширением «.php», о котором в настройках сервера сказано, что подобные файлы должны передаваться PHP. Рассматривайте его как обычный HTML-файл, которому посчастливилось заполучить набор специальных тегов (доступных также и вам), способных на кучу интересных вещей.

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

Цель примера — показать формат специальных тегов PHP. В этом примере мы использовали . Таким образом можно где угодно «запрыгивать» и «выпрыгивать» из режима PHP в HTML файле. Подробнее об этом можно прочесть в разделе руководства Основной синтаксис.

Замечание: Замечание о переводах строк

Переводы строк немногое означают в HTML, однако считается хорошей идеей поддерживать HTML в удобочитаемом виде, перенося его на новую строку. PHP автоматически удаляет перевод строки, идущий сразу после закрывающего тега ?> . Это может быть чрезвычайно полезно, если вы используете множество блоков PHP-кода или подключаете PHP-файлы, которые не должны ничего выводить. В то же время, это может приводить в недоумение. Можно поставить пробел после закрывающего тега ?> и тогда пробел будет выведен вместе с переводом строки, или же вы можете специально добавить перевод строки в последний вызов echo/print из блока PHP-кода.

Замечание: Пара слов о текстовых редакторах

Существует множество текстовых редакторов и интегрированных сред разработки (IDE), в которых вы можете создавать и редактировать файлы PHP. Список некоторых редакторов содержится в разделе » Список редакторов PHP. Если вы хотите порекомендовать какой-либо редактор, посетите данную страницу и попросите добавить редактор в список. Использование редактора с подсветкой синтаксиса может быть очень большим подспорьем в вашей работе.

Замечание: Пара слов о текстовых процессорах

Текстовые процессоры (StarOffice Writer, Microsoft Word, Abiword и др.) в большинстве случаев не подходят для редактирования файлов PHP. Если вы всё же хотите использовать какой-либо из них для тестового скрипта, убедитесь, что сохраняете файл как простой текст (plain text), иначе PHP будет не в состоянии прочесть и запустить ваш скрипт.

Теперь, когда вы успешно создали работающий PHP-скрипт, самое время создать самый знаменитый PHP-скрипт! Вызовите функцию phpinfo() и вы увидите множество полезной информации о вашей системе и настройке, такой как доступные предопределённые переменные, загруженные PHP-модули и параметры настройки. Уделите некоторое время изучению этой важной информации.

Пример #2 Получение информации о системе из PHP

Как запустить PHP в HTML

PHP in HTML

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

Для полноценного выполнения PHP-скрипта в HTML нам поможет простое правило для файла .htaccess.

Просто добавьте этот код в свой .htaccess файл:

AddType application/x-httpd-php .html .htm

Бывают случаи, когда необходимо использовать запуск PHP-скрипта только на определенной странице HTML-сайта (например, contact.html). Тогда правило для .htaccess будут выглядеть следующим образом:

 AddType application/x-httpd-php .html .htm 

Эти правила для .htaccess приведут к обработке файла HTML, как если бы это был PHP. Теперь вы можете встроить свой PHP-код в HTML-файл необходимой страницы сайта для корректной обработки скрипта сервером.

Еще варианты правил .htaccess для запуска PHP в HTML:

AddHandler x-httpd-php .html .htm

Если Apache выполняет PHP как CGI, используйте следующее:

AddHandler application/x-httpd-php5 .html .htm

Если ваш сервер использует PHP5, используйте следующее:

AddType application/x-httpd-php5 .html .htm
AddHandler application/x-httpd-php5 .html .htm

Прочие варианты правил .htaccess для запуска PHP в HTML:

RemoveHandler .html .htm AddType application/x-httpd-php .php .htm .html
 ForceType application/x-httpd-php 
AddHandler fcgid-script .html FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .html
Options +ExecCGI AddType application/x-httpd-php .php .html AddHandler x-httpd-php5 .php .html

Где я могу найти файл .htaccess?:

Файл .htaccess находится в корневой папке вашего сайта, обычно на сервере хостинга в директории public_html.

Запуск PHP-скрипта без веб-сервера: Подробное руководство

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

В этой статье мы рассмотрим, как запустить PHP-скрипт без веб-сервера на операционных системах Linux и Windows.

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

  1. Откройте терминал.
  2. Убедитесь, что PHP установлен на вашей системе. Введите следующую команду, чтобы проверить установку и получить версию PHP:

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

Ubuntu/Debian:

sudo apt-get install php

CentOS:

sudo yum install php

  1. Создайте PHP-скрипт, используя консольный текстовый редактор, например, «nano» или «vim». Для создания нового скрипта с именем «script.php», выполните следующую команду:
  1. В открывшемся редакторе введите PHP-код для вашего скрипта. Например:

  1. Сохраните скрипт и закройте редактор.
  2. Теперь вы можете запустить созданный PHP-скрипт. Введите следующую команду в терминале:

Готово! Вы успешно запустили PHP-скрипт в командной строке Linux. В данном случае, на экране появится вывод «Hello, World!».

Этот подход можно также использовать для выполнения более сложных скриптов и автоматизации различных задач в Linux-среде.

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

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

  1. Откройте командную строку в Windows. Для этого зажмите сочетание клавиш Win+R, введите «cmd» и нажмите Enter.
  2. Убедитесь, что PHP установлен в вашей системе. Чтобы проверить наличие PHP в системе и узнать установленную версию, введите:

Если PHP не установлен, загрузите и установите его с официального сайта PHP.

Важно! На момент написания нашего руководства релевантная версия PHP – 8.2. Вы же можете установить ту, которая будет актуальна для вас. Всегда выбирайте версию «Thread Safe».

Загрузите соответствующий установщик PHP для Windows и следуйте инструкциям по установке.

  1. Создайте PHP-скрипт, используя любой текстовый редактор. В данной инструкции мы воспользуемся Блокнотом.

Для создания нового скрипта с именем «script.php», выполните следующую команду:

  1. В открывшемся редакторе введите PHP-код для вашего скрипта. Например:

  1. Сохраните скрипт и закройте редактор.
  2. Теперь вы можете запустить PHP-скрипт. В командной строке пропишите команду:

Готово! Вы успешно запустили PHP-скрипт в командной строке Windows. В данном случае, на экране появится вывод «Hello, World!».

Вы можете использовать этот подход для выполнения более сложных скриптов и автоматизации различных задач в среде Windows.

Различные опции запуска PHP-скриптов в командной строке

Опции запуска PHP скриптов в командной строке предоставляют собой различные возможности и параметры для управления выполнением скриптов. Запустив команду php -h можно ознакомиться со следующими опциями:

Опция

Полное название

Функция

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

Указывает каталог, где находится файл php.ini.

Ставит задачу не использовать php.ini

Задаёт пользовательское значение для каждой конфигурационной опции php.ini.

Генерирует расширенную информацию для отладчика/профайлера.

Разбирает и выполняет указанный файл.

Предоставляет справку доступных опций.

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

Проверяет синтаксис кода.

Показывает встроенные и загруженные модули.

Выполняет PHP-код без использования тегов скрипта.

Выполняет PHP-код перед обработкой входных строк.

Выполняет PHP-код для каждой входной строки.

Разбирает и выполняет указанный PHP-файл для каждой входной строки.

Выполняет PHP-код после обработки всех входных строк.

Запускает встроенный веб-сервер.

Указывает корневой каталог документов для встроенного веб-сервера.

—syntax-highlight и —syntax-highlighting

Выводит исходный код с подсветкой синтаксиса HTML .

Указывает номер версии.

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

Загружает расширение Zend.

Показывает имена конфигурационных файлов.

Предоставляет информацию об указанной функции.

Предоставляет информацию об указанном классе.

Предоставляет информацию об указанном расширении (модуле).

Предоставляет информацию об указанном модуле Zend.

Предоставляет информацию о конфигурации заданного модуля.

Больше о существующих опциях вы можете узнать из официальной документации PHP.

Как проверить синтаксис PHP-скрипта с помощью опции -l

Как мы уже рассмотрели выше, при использовании опции -l можно проверить синтаксис кода PHP, чтобы убедиться, что он не содержит ошибок и соответствует правилам.

Для этого способа не требуется запуск скрипта, – проверка будет произведена внутри командной строки.

php -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 файла в командной строке, вы можете использовать следующие команды:

php -f путь/к/файлу.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!» вы можете использовать:

php -r ‘echo ‘Hello, World!’;’

После ввода команды и нажатия Enter, PHP выполнит указанный код и выведет результат в командной строке. В данном примере, результатом будет строка «Hello, World!».

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

Заключение

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

Теперь вы можете использовать этот гибкий способ работы с PHP в вашей системе.

Как запустить php скрипт прямо в html?

Добрый день! Сразу перейду к вопросу:
Можно ли запустить php скрипт прямо в html без помощи файла, т.е

Заменить, чтоб сам php скрипт находился в HTML и мог исполняться при нажатии кнопки
P.s скрипт назначен для отправки деталей заказа в телеграм

  • Вопрос задан более двух лет назад
  • 236 просмотров

1 комментарий

Простой 1 комментарий

FanatPHP

РНР скрипт нельзя вызвать «прямо в html»

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

Решения вопроса 1

Kozack

Alex @Kozack Куратор тега HTML
Thinking about a11y
Что-то в таком духе возможно:

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

Ответ написан более двух лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 1

ThunderCat

ThunderCat @ThunderCat Куратор тега PHP

php выполняется НА СЕРВЕРЕ. До того как вы получили хтмл на клиенте, можно сказать его получение на клиенте — результат работы php скрипта на сервере. По этому ответ — нет.

скрипт назначен для отправки деталей заказа в телеграм

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

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

Как выполнить один php файл внутри другого?

Есть папка dir в ней лежит файл 1.php . 1.php файл содержит в себе вперемешку html и php код. В общем вот такой путь к файлу dir/1.php . А в корне сайта лежит файл index.php . Задача: при открытии файла index.php этот файл должен полностью копировать в себя содержимое dir/1.php и выполнять, чтобы в адресной строке был адрес на http://домен.ру/index.php , а не на http://домен.ру/dir/1.php . Как такое реализовать с помощью PHP? (Апачевскую подмену ссылок не предлагать, не тот случай.)

Отслеживать

51.2k 86 86 золотых знаков 266 266 серебряных знаков 505 505 бронзовых знаков

Выполнить PHP-скрипт при нажатии на кнопку

Как сделать чтобы при нажатии кнопки выполнялась обработка в php скрипте, и что прописать в php чтобы выполнялась обработка?

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Выполнить PHP при нажатии на кнопку
Здравствуйте! Подскажите как выполнить код при нажатию на кнопку. Есть такая кнопка: <button.

При нажатии на кнопку выполнить PHP функцию
Как можно выполнить PHP функцию main() из файла fuction.php?

При нажатии на кнопку нужно запустить скрипт php
создал с помощью генератора кнопки — Кнопку) <style> .

Php скрипт выводит значение в текстовое пое при нажатии на кнопку
Добрый вечер! Интересует такой вопрос Что следует сделать если задача состоит а том , что при.

71 / 69 / 22
Регистрация: 24.11.2012
Сообщений: 502
Записей в блоге: 1
Dragwor, а что именно должно происходить при нажатии на кнопку?
Регистрация: 01.04.2013
Сообщений: 112
По нажатии должен происходить переход на сайт робокассы для оплаты
71 / 69 / 22
Регистрация: 24.11.2012
Сообщений: 502
Записей в блоге: 1

Dragwor, если тебе нужно передавать какие-то параметры, то делай это с помощью GET, или с помощью JS+JSON, например. Это нужно подробно рассматривать какой у тебя случай.

Эксперт HTML/CSS

2964 / 2597 / 1068
Регистрация: 15.12.2012
Сообщений: 9,855
Записей в блоге: 11

ЦитатаСообщение от Dragwor Посмотреть сообщение

По нажатии должен происходить переход на сайт робокассы для оплаты
Специально по этому случаю на сайте робокассы существует документация.
Регистрация: 01.04.2013
Сообщений: 112

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
 // регистрационная информация (логин, пароль #1) // registration info (login, password #1) $mrh_login = "demo"; $mrh_pass1 = "password_1"; // номер заказа // number of order $inv_id = 0; // описание заказа // order description $inv_desc = "Оплата заказа в Тестовом магазине ROBOKASSA"; // сумма заказа // sum of order $out_summ = "11.00"; // тип товара // code of goods $shp_item = 1; // язык // language $culture = "ru"; // кодировка // encoding $encoding = "utf-8"; // формирование подписи // generate signature $crc = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1:shpItem=$shp_item"); // HTML-страница с кассой // ROBOKASSA HTML-page print ""; ?>

HackWare.ru

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

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

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

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

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

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

В Debian, Kali Linux, Linux Mint, Ubuntu:

sudo apt install php

В Arch Linux, BlackArch:

sudo pacman -S php

Установка полного веб-сервера в 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 -h

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

php.exe -h

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

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

php [опции] [-f] [--] [аргументы. ] php [опции] -r [--] [аргументы. ] php [опции] [-B ] -R [-E ] [--] [аргументы. ] php [опции] [-B ] -F [-E ] [--] [аргументы. ] php [опции] -S : [-t docroot] [router] php [опции] -- [аргументы. ] php [опции] -a

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

-a Запустить интерактивный шелл (оболочку) -c | Искать файл php.ini в этой директории -n Не будут использоваться конфигурационные (ini) файлы -d foo[=bar] Установить INI запись для значения 'bar' -e Сгенерировать расширенную информацию для отладчика/профайлера -f Разобрать и выполнить . -h Справка -i Информация о PHP -l Только проверка синтаксиса (lint) -m Показать скомпилированные модули -r Запустить PHP без использования тэгов скрипта -B Запустить PHP перед обработкой строк ввода -R Запустить PHP для каждой строки ввода -F Разобрать и выполнить для каждой строки ввода -E Запустить PHP после обработки всех строк ввода -H Спрятать любые переданные аргументы от внешних инструментов. -S : Запустить встроенный веб-сервер. -t Указать корневую папку документов для встроенного веб-сервера. -s Подсветка для HTML кода. -v Номер версии -w Вывести исходник с убранными комментариями и белыми пробелами. -z Загрузить расширение Zend . args. Передаваемые в скрипт аргументы. Используйте -- args когда первый аргумент начинается с — или скрипт считывается с stdin (стандартного ввода) --ini Показать имена конфигурационных файлов --rf Показать информацию о функции . --rc Показать информацию о классе . --re Показать информацию о расширении . --rz Показать информацию о расширении Zend . --ri Показать конфигурацию для расширения .

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

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

php -f путь\до\файла.php

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

php путь\до\файла.php

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

php -f C:\Users\Alex\Documents\PHP\test.php
php C:\Users\Alex\Documents\PHP\test.php

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

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

php путь\до\файла.php 'аргумент1' 'аргумент2' 'аргумент3' 'аргумент_n'

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

php C:\Users\Alex\Documents\PHP\test.php 'Alex' 'hackware.ru' 'Admin'

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

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

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

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

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

php C:\Users\Alex\Documents\PHP\test.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 в командной строке

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

php -l C:\Users\Alex\Documents\PHP\test.php No syntax errors detected in C:\Users\Alex\Documents\PHP\test.php

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

php -l C:\Users\Alex\Documents\PHP\test.php PHP Parse error: syntax error, unexpected end of file in C:\Users\Alex\Documents\PHP\test.php on line 20 Parse error: syntax error, unexpected end of file in C:\Users\Alex\Documents\PHP\test.php on line 20 Errors parsing C:\Users\Alex\Documents\PHP\test.php

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

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

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

php -a

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

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

php -r 'echo 2**100;'

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

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

-S : Запустить встроенный веб-сервер. -t Указать корневую папку документов для встроенного веб-сервера.

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

php -S 127.0.0.1:84 -t C:\Users\Alex\Documents\PHP\

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

   Параметр Значение    Удалённый IP " . $_SERVER ['REMOTE_ADDR'] . "  Пограммы сервера " . $_SERVER ['SERVER_SOFTWARE'] . "  Язык " . $_SERVER ['HTTP_ACCEPT_LANGUAGE'] . "  Откуда пришёл " . $_SERVER ['HTTP_REFERER'] . "  Браузер (или что там) " . $_SERVER ['HTTP_USER_AGENT'] . "  Метод запроса " . $_SERVER ['REQUEST_METHOD'] . "  Время запроса " . $_SERVER ['REQUEST_TIME'] . "  Строка запроса " . $_SERVER ['QUERY_STRING'] . "  Заголовок запроса " . $_SERVER ['HTTP_ACCEPT'] . "  Адрес запроса " . $_SERVER ['REQUEST_URI'] . "  Название сервера " . $_SERVER ['SERVER_NAME'] . "   ");

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

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

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

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

php --rf readline Function [ function readline ] < - Parameters [1] < Parameter #0 [ $prompt ] > >

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

php --rf readfile Function [ function readfile ] < - Parameters [3] < Parameter #0 [ $filename ] Parameter #1 [ $flags ] Parameter #2 [ $context ] > >

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

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

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

-s Подсветка для HTML кода. -w Вывести исходник с убранными комментариями и белыми пробелами.

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

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

-i Информация о PHP -v Номер версии --ini Показать имена конфигурационных файлов

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

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

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

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

open_basedir = /srv/http/:/etc/webapps/:/usr/share/webapps/:/tmp/:

Данная запись означает, что 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 -n скрипт.php

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

php --ini
Configuration File (php.ini) Path: /etc/php Loaded Configuration File: /etc/php/php.ini Scan for additional .ini files in: /etc/php/conf.d Additional .ini files parsed: (none)

Заключение

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

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

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

Связанные статьи:

  • Как установить Python и PIP на Windows 10. Настройка Python в качестве модуля веб-сервера (66.7%)
  • Как установить и использовать Ruby в Windows (66.7%)
  • Настройка рабочего окружения PowerShell в Windows и Linux (63.4%)
  • Какой язык программирования выбрать для изучения (59.8%)
  • Регулярные выражения в PHP (ч. 1) (59.8%)
  • Утечка имён файлов в .DS_Store: как просмотреть содержимое и как эксплуатировать (RANDOM — 6.1%)

факультете информационной безопасности от GeekBrains? Комплексная годовая программа практического обучения с охватом всех основных тем, а также с дополнительными курсами в подарок. По итогам обучения выдаётся свидетельство установленного образца и сертификат. По этой ссылке специальная скидка на любые факультеты и курсы!

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

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