Запуск php-скрипта в консоли.
Дальше будет банальщина, наверняка всем известная, но все же, вдруг кто не знает, да и себе от склероза.
Есть у меня маленький, но очень полезный
Заметил, кстати, удивительную странность - на машине с 12 Гб оперативной памяти и четвероядерным процессором, но под MinGW и, соответственно, Виндой, сборка происходит медленнее, чем на компьютере с Linux, скромным двухведерным процессором и двумя же Гб ОП.
Впрочем, все эти танцы с бубном были совершенно лишними.
Все оказалось банально и элементарно, php прекрасно работает из консоли. Формат команды:
php.exe [параметры] <скрипт> [параметры_скрипта]
Скрипт может "найти" свои параметры в элементах глобального массива
$_SERVER
:$_SERVER['argc']
хранит количество параметров$_SERVER['argv']
их значения. $_SERVER['argv']
сам является индексированным массивом. В элементе 0 содержится имя файла скрипта.Примечание:
Начиная с PHP 4.3.0, при использовании CLI SAPI переменные $argc и and $argv зарегистрированы и заполнены соответствующими значениями. В более ранних версиях создание этих переменных, так же, как и для CGI или модуля веб-сервера, требует значение on директивы register_globals. Независимо от версии PHP или статуса опции register_global они всегда доступны как элементы массива $_SERVER или $HTTP_SERVER_VARS. Например: $_SERVER['argv']
Скрипт, выводящий в консоль свои параметры:
<?php
echo "Console test \n\n";
echo "Arguments count: ".$_SERVER['argc']."\n";
echo "Arguments values:\n";
$i=0;
foreach ($_SERVER['argv'] as $arg)
{
echo $i.": ".$arg."\n";
$i++;
}
?>
Если запустить скрипт, например так:
php.exe con-test.php param1 param2 param3 tramparamparamparam
Все это не имело бы большого смысла, если бы для запуска скрипта пришлось бы тащить с собой Web-сервер или весь дистрибьютив PHP, со всеми модулями и прочим. Для минимального запуска PHP под Windows нужно всего 2 файла:
php.exe
и php*ts.dll
, где * - версия PHP. Например, для использованного мной PHP5, это php5ts.dll
- Инклюды. Если скрипт подразумевает использование инклюдов, то их лучше держать либо в директории с главным скриптом, либо в поддиректориях, и прописывать в основном скрипте относительные пути. Т.е. так, как это обычно делается на сервере. Иначе PHP будет искать их либо в include_path, который прописан в php.ini, либо вообще неведомо где, точнее ведомо - это указывается как параметр при сборке самого PHP, если мне не изменяет склероз.
-
php.ini
Вообще, для запуска PHP он не нужен, но тут может вкрасться чущественная гадость. Если на машине уже установлен PHP, или php.ini
подложен каким-то злоумышленником в каталог по умолчанию, для многих сборок под Windows это %WINDIR%
, то может случиться неприятность.Сам PHP ищет свой
php.ini
сначала в каталоге с самим собой, так что можно туда его подложить.- Расширения PHP. Можно подложить нужные DLL расширений в подкаталог в каталоге с php.exe и прописать в
extension_dir
в php.ini
относительный путь к каналогу, а в соответствующих параметрах extension
- имена DLL- PHP я цельностянул из Denwer :)
- Архив с примером и "портабельным" PHP
1. Создание EXE приложений на PHP Копия
2. Оффлайновые лекционные тетради в клеточку.
Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2018/07/18/zapu