Как выполнить PHP в .html файлах
В большинстве случаем скрипты, написанные на языке программирования PHP (Hypertext Preprocessor), помещают в файлы с расширением .php , что дает возможность выполнения скриптов сразу же при открытии файла с данным расширением в браузере. Однако встречаются случаи, когда на сайте требуется добавить какой либо PHP скрипт, например отправку писем с сайта, но сайт уже написан на языке гипертекстовой разметки HTML (HyperText Markup Language) без использования PHP, а файлы сайта имею расширение .html.
В подобных случаях возникает необходимость внесения дополнительных настроек на сервере, для включения возможности выполнения PHP в файлах с расширением .html. Делается это при помощи локального конфигурационного файла веб-сервера Apache, имеющего название .htaccess.
После создания файла с названием .htaccess в корневой папке сайта, необходимо открыть данный файл в текстовом редакторе и затем указать в нем следующие директивы:
AddHandler application/x-httpd-php .php .html
Как только это будет сделано и изменения в файле .htaccess будут сохранены, появится возможность выполнения PHP в файлах с расширением .html.
Советуем прочитать:
- Что такое WAP хостинг?
- Как включить режим DEBUG в CMS
- Как устранить неполадки в WordPress. Белый экран смерти.
- Как предоставить root-доступ через Sudo/SSH
- Как правильно настроить отправку почты с сайта?
Ловим попутный ветер или как запустить скрипт PHP
От автора: Если вы когда-нибудь запускали воздушного змея, то знаете, что это не так просто, хотя со стороны кажется наоборот. На самом деле нужно приловчиться, чтобы вовремя веревку натянуть или поймать воздушную «волну». Сегодня я расскажу, как запустить скрипт PHP и какие «веревочки» дергать, чтобы он не просто работал, а «летал»!
Особенности запуска
Как уже не раз упоминалось, PHP – это серверный язык программирования, поэтому сделать так, чтобы результат работы его кода отобразился в браузере, будет немного сложнее. Для этого файл должен располагаться непосредственно на серверном пространстве. Для работы с PHP используются два типа сервера:
Обычный (удаленный) –предоставляется хостером.
Локальный – устанавливается на клиентской машине.
На стороне хостинга, чтобы увидеть результат работы скрипта, в строку браузера вводится адрес следующего формата: ваш_сайт.ru/имя_файла.php
На локальном сервере все обстоит иначе. Перед тем, как запустим PHP скрипт в браузере, выясним эти особенности.
В зависимости от применяемого сервера набираемый адрес может отличаться. Чаще всего в «наших» краях используются различные сборки с Apache, из которых самой распространенной является Денвер.
Запуск скрипта в Denwer
В «апачевских» сборках все скрипты запускаются в localhost. Чтобы продемонстрировать это на практике, создадим какой-нибудь интересный пример. Вот его код:
Разместите этот код в файле PHP и сохраните его на виртуальном диске, который создается после запуска локального сервера. У меня это файл test2.php.
Вверху на снимке обозначен путь, где нужно размещать созданный файл. У вас этот путь может немного отличаться, если при инсталляции Денвера задали другое имя виртуального диска.
Теперь разберемся, как запустить PHP скрипт на компьютере. Для этого в браузере следует указать адрес в формате: localhost/имя_файла.php

Начинаем мучиться
Может, слишком и унылое название для раздела, но я немного намучился, пока получилось открыть файл PHP через командную строку. При попытке запуска система ПК выдавала вот такого рода ошибки:

Это странно, поскольку упоминаемые библиотеки у меня присутствовали в папке ext. Оказывается, что все дело в неправильно прописанных путях в конфигурационном файле php.ini.
В нем нужно найти раздел «Paths and Directories» и исправить путь, указанный в параметре extension_dir. Измените правые слэши на левосторонние и добавьте в начале адреса букву виртуального диска.

Если запустить PHP скрипт из CMD консоли опять не получается, тогда следует просмотреть все пути, упоминаемые в сообщении ошибки, и исправить их.
Если все хорошо
В командной строке системе нужно указать путь, где находится «экзешник» интерпретатора языка PHP. В Денвере он находится по этому пути: Z:\usr\local\php5
Здесь же расположен и глобальный файл конфигурации.

Запускаем командную строку Винды. Затем указываем системе путь к исполняемому файлу PHP. После чего задаем путь к нужному скрипту: Z:\usr\local\php5\php.exe Z:\home\localhost\www\test2.php
Но в итоге вы получите не совсем ожидаемый результат:

И все потому, что командная строка «не понимает» теги HTML. Перед тем, как запустить PHP скрипт из командной строки, немного модифицируем код, чтобы он возвращал нам только текущее время без эффекта «часов».
Форум
Если будет раздражать повторение строки запуска, то добавить @ в начале строки.
DelphinPRO Сообщения: 856 Зарегистрирован: 01 фев 2012, 17:27 Откуда: Самара
добавить в переменную окружения PATH путь до php.exe
тогда достаточно будет писать
php app\console
Asmodey Сообщения: 338 Зарегистрирован: 18 апр 2012, 10:33
Тогда всё (кто не пишет полный путь) будет сидеть на одной версии
Максим Сообщения: 6022 Зарегистрирован: 11 дек 2010, 20:29
Дождитесь новой версии. Так можно будет так:
Создаете закладку на консоль. Запускаете через закладку консоль и пишете в консоли
php.exe C:\app\лалалала\ваш.php
hudson Сообщения: 47 Зарегистрирован: 30 май 2012, 19:25
Максим писал(а): Дождитесь новой версии. Так можно будет так:
Создаете закладку на консоль. Запускаете через закладку консоль и пишете в консоли
php.exe C:\app\лалалала\ваш.php
О, стоит потерпеть ) Спасибо
Asmodey писал(а): Кошерней создать где надо файл php.cmd
..\..\..\server\php\PHP-5.3.13\php %1 %2 %3 %4
Если будет раздражать повторение строки запуска, то добавить @ в начале строки.
Батник тоже вариант, голова моя дурная )
DelphinPRO Сообщения: 856 Зарегистрирован: 01 фев 2012, 17:27 Откуда: Самара
Максим писал(а): Создаете закладку на консоль. Запускаете через закладку консоль
и какой currentdir будет в этой консоли?
мне удобнее открывать консоль из папки со скриптами, и currentdir становится равным этой папке.
плюсы
— не надо выполнять линюю команду типа
cd w:\domains\site\papka\
— или же не надо писать полные пути к скриптам типа
php w:\domains\site\papka\file.php
пишем просто
php file.php
но я работаю с одной версией и путь к php.exe прописан в PATH
Если принципиально нужно несколько версий — создайте батники в системной папке
php52.cmd
@path\to\php5.2\php.exe %1 %2 %3 %4
и php53.cmd
@path\to\php5.3\php.exe %1 %2 %3 %4
потом открываете консоль из папки со скриптом и пишете
php53 file.php
hudson Сообщения: 47 Зарегистрирован: 30 май 2012, 19:25
DelphinPRO писал(а):
Максим писал(а): но я работаю с одной версией и путь к php.exe прописан в PATH
Если принципиально нужно несколько версий — создайте батники в системной папке
php52.cmd
@path\to\php5.2\php.exe %1 %2 %3 %4
и php53.cmd
@path\to\php5.3\php.exe %1 %2 %3 %4
потом открываете консоль из папки со скриптом и пишете
php53 file.php
Ну как сказать, принципиально. Основные проекты пока запускаю на 5.3.13, есть пара экспериментальных на 5.4 для обучения. Не принципиально, но нужно. У меня в PATH вообще php 5.4.2 от денвера остался )
hudson Сообщения: 47 Зарегистрирован: 30 май 2012, 19:25
Похоже с приходом 4.5.6 началась свистопляска с Pear.
При установке подсовываем правильный ini, всё пока нормально:
d:\openserver\modules\php\PHP-5.3.13>php -c ..\..\..\userdata\temp\config\php.ini go-pear.phar
Are you installing a system-wide PEAR or a local copy?
(system|local) [system] : local
Please confirm local copy by typing ‘yes’ : yes
Below is a suggested file layout for your new PEAR installation. To
change individual locations, type the number in front of the
directory. Type ‘all’ to change all of them or simply press Enter to
accept these locations.
1. Installation base ($prefix) : D:\openserver\modules\php\PHP-5.3.13
2. Temporary directory for processing : D:\openserver\modules\php\PHP-5.3.13\tmp
3. Temporary directory for downloads : D:\openserver\modules\php\PHP-5.3.13\tmp
4. Binaries directory : D:\openserver\modules\php\PHP-5.3.13
5. PHP code directory ($php_dir) : D:\openserver\modules\php\PHP-5.3.13\pear
6. Documentation directory : D:\openserver\modules\php\PHP-5.3.13\docs
7. Data directory : D:\openserver\modules\php\PHP-5.3.13\data
8. User-modifiable configuration files directory : D:\openserver\modules\php\PHP-5.3.13\cfg
9. Public Web Files directory : D:\openserver\modules\php\PHP-5.3.13\www
10. Tests directory : D:\openserver\modules\php\PHP-5.3.13\tests
11. Name of configuration file : D:\openserver\modules\php\PHP-5.3.13\pear.ini
12. Path to CLI php.exe : D:\openserver\modules\php\PHP-5.3.13
1-12, ‘all’ or Enter to continue:
А вот после начала установки похоже параметр -c не пробрасывается — вылетают ошибки о невозможности подгрузить расширения:
Failed loading D:/openserver/server/php/PHP-5.3.13/ext/php_ioncube.dll
Failed loading D:/openserver/server/php/PHP-5.3.13/ext/php_xdebug.dll
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:/openserver/server/php/PHP-5.3.13/ext/php_apc.dll’ — ═х эрщфхэ єърчрээ√щ ьюфєы№.
in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library ‘D:/openserver/server/php/PHP-5.3.13/ext/php_apc.dll’ — ═х эрщфхэ єърчрээ√щ ьюфєы№.
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘D:/openserver/server/php/PHP-5.3.13/ext/php_mbstring.dll’ — ═х эрщфхэ єърчрээ√щ ьюфєы№.
in Unknown on line 0
Pear при этом вполне себе ставится.
Но это пол беды, pear.bat (и прочие батники типа phpcs, phpunit) также будут без -c стартовать.
Пока решил таким костылём: в pear.bat
:RUN "%PHP_PEAR_PHP_BIN%" -c "%PHP_PEAR_INSTALL_DIR%\..\..\..\..\userdata\temp\config\php.ini" -C -d date.timezone=UTC -d output_buffering=1 -d safe_mode=0 -d open_basedir="" -d auto_prepend_file="" -d auto_append_file="" -d variables_order=EGPCS -d register_argc_argv="On" -d "include_path='%PHP_PEAR_INSTALL_DIR%'" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9 :END
Как выполнить php скрипт в другом php скрипте?
Всем привет. Не могу реализовать выполнение скрипта после возврата с яндекс денег.
Сделал форму с данными после чего данные формы записываются в сессию, сделал дальнейший переход в платежку, после оплаты яндекс возвращает значения, и после проверки значений, если они были возвращены, я пытаюсь выполнить скрипт. создание пхп файла выполняется. Смысл работы в том, чтобы формировался договор с данными формы, и отправлялся на e-mail заказчика. происходить это должно после подтверждение оплаты. используется библиотека PHPWORD
Вот это.
file_put_contents ('finish/save.php', $_POST['datetime'] .'Пополнение на сумму через яндекс'. $_POST['amount']. PHP_EOL, FILE_APPEND);
Но если я это меняю на свой работающий скрипт в другом php ничего не происходит. В сессиях всё есть, все данные формы, при запуске принудительно файла, всё работает как положено, но в проверке подтверждения от яндекса ничего не пашет.
Как мне запустить файл со скриптом, что использовать?
PS
Пробовал инклюды — ничего, так же не работает.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Выполнить php скрипт внутри другого php скрипта
Добрый день. Есть два скрипта: outer.php и inner.php. В каком-то месте внутри outer.php нужно.
Как выполнить php скрипт в html
Добрый вечер. Мне нужно выполнить .php скрипт который находиться по адресу (123.122/script.php) на.

Как выполнить php скрипт в onclick()
PHP скрипт выполняется, когда даже не была нажата кнопка 🙁
Как обойти, Ajax не работает и выполнить php скрипт
Здравствуйте, есть ссылка по нажатию отрабатывает Ajax и выводит Hello World! Как при отключенном.
327 / 273 / 69
Регистрация: 15.09.2017
Сообщений: 1,250
Яндекс сам его запустит путем обращения по адресу, который вы указали.
Сообщение от Serega91 
но в проверке подтверждения от яндекса ничего не пашет.
Сделайте, чтобы «пахало».
И зачем вам сессии? Вы, видимо, путаете адрес возврата с адресом акцепта. В последнем случае Яндекс вернет вам все данные о состоявшемся платеже (по протоколу HTTPS), но никакого «ярлыка сессии», передаваемого в куках, естественно, не будет.
Регистрация: 18.11.2013
Сообщений: 73
Сообщение от Phantom-84 
И зачем вам сессии? Вы, видимо, путаете адрес возврата с адресом акцепта. В последнем случае Яндекс вернет вам все данные о состоявшемся платеже (по протоколу HTTPS), но никакого «ярлыка сессии», передаваемого в куках, естественно, не будет.
Объясняю зачем сессии
имеется 3 файла php
1. файл — форма которая методом пост отправляет данные во второй и содержит информацию которую не указывают при платеже, например ИНН, дату рождения, пол, и т.д.
2. файл пхп принимает данные из первого и записывает в сессию, чтобы они хранились, ФИО, ИНН и т.д. И в этом же 2ом файле находится как бы дальнейшее действие, т.е. форма с указанной суммой для оплаты через яндекс, клиент выбирает способ оплаты нажимает оплатить и идет в платежку яндекса, там выполняет действия и яндекс возвращает подтверждение платежа в 3ий файл
3. Третий файл принимает значение оплаты, была или нет, и в зависимости от результата должен выполнять скрипт подключении вордпхп библиотеки и формировать документ сохраняя его на сервере хостинга, записывая в нужные поля шаблона данные из сессий, и формируя новую переменную в сессию ссылку для скачивания, которая в перспективе отправляется на мэйл средствами пхпмэйлер.
Если это можно организовать проще я с удовольствием учту и попробую, но пока организовать пытаюсь так.
Читал пока ждал ответа разные форумы, пишут что возможно превышен тайминг выполнения скрипта, может такое быть? Как исправить невыполнение скрипта?
