За последние 24 часа нас посетили 16698 программистов и 1625 роботов. Сейчас ищут 1112 программистов ...

PHP из CMD

Тема в разделе "Установка PHP", создана пользователем hated8, 4 май 2014.

  1. hated8

    hated8 Активный пользователь

    С нами с:
    14 янв 2011
    Сообщения:
    50
    Симпатии:
    0
    Здравствуйте, стоит апач+пхп+мускул на winXP и есть необходимость безбраузерно загружать пхп скрипты, получается делать так из командной строки:
    Код (Text):
    1. cmd -> php.exe -q C:\***\testpage.php
    но не устраивает 2 вещи:
    1) Нельзя(или я не знаю как) передавать GET/POST параметры; (ВАЖНО!)
    2) Относительные пути в скриптах будут ссылаться на не на корневую папку скрипта, а на Windows/system32. (относительно важно)

    Подскажите пожалуйста как миновать эти недостатки или другой подходящий для меня способ решения поставленной задачи?
     
  2. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
  3. hated8

    hated8 Активный пользователь

    С нами с:
    14 янв 2011
    Сообщения:
    50
    Симпатии:
    0
    Спасибо! Но все же хочется найти какое-нибудь решение не требующее каких-то доп.софтин. Чем меньше звеньев тем крепче цепь... Иначе когда что-то падает не знаешь куда кинуться и что ковырять...

    Неужели все используют браузеры для выполнения регулярных скриптов?!


    Еще один минус нашел у вышеописанного способа - это игнор серверных настроек в .htaccess, что для меня тоже критично...
    Иными словами нужен какой-нибудь штатный способ выполнить(прогрузить) http://localhost/***/testpage.php?parm1=1&parm2=2 без браузеров...
     
  4. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Хм, в никсах для этого существует cron:
    http://ru.wikipedia.org/wiki/Cron
    на обычных хостингах он тоже должен быть и настраивается где-нибудь в панельке.

    В Windows есть планировщик заданий, который выполняет команды в определенное время, думаю его в принципе можно настроить на запуск ссылки.
     
  5. Ke1eth

    Ke1eth Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    По поводу пункта 1:
    Есть несколько решений:
    1 - прямой:
    Код (PHP):
    1. //   php myscript.php hello
    2. echo $argv[1]; // выведет hello
    3.  
    4. //   php -e myscript.php -f=world
    5. $opts = getopt('f:');
    6. echo $opts['f']; // выведет world
    7.  
    2 - чуть изощреннее и наверное не будет работать по Windows:
    Объявить переменную в окружении перед вызовом php
    Код (PHP):
    1. //  export QUERY_STRING="var=value&arg=value"; php myscript.php
    2. parse_str($_SERVER['QUERY_STRING'], $_GET);
    3. print_r($_GET);
    4. /* вывод:
    5.      Array(
    6.         [var] => value
    7.         [arg] => value
    8.      )
    9. */
    10.  
    3. использовать php-cgi
    php-cgi -f index.php left=1058 class=A language=English
    Что тебе в _GET положит:
    Код (PHP):
    1. (
    2.     [left] => 1058
    3.     [class] => A
    4.     [language] => English
    5. )
    6.  
     
  6. hated8

    hated8 Активный пользователь

    С нами с:
    14 янв 2011
    Сообщения:
    50
    Симпатии:
    0
    Ke1eth - огромное спасибо! Теперь 1й вопрос отпал, 2й можно решить добавлением
    Код (Text):
    1. ($_SERVER['DOCUMENT_ROOT']?$_SERVER['DOCUMENT_ROOT']:'').dirname($_SERVER['PHP_SELF'])."/".
    вначале каждого локального пути.
    Но вот теперь у меня с третьим вопросом проблемка - перенёс параметры из .htaccess в httpd.conf и php.ini.
    Браузерно все работает но из командной он просто игнорирует php.ini. Даже если делать так:
    Код (Text):
    1. cmd -> php.exe -с C:\***\php.ini -q C:\***\testpage.php
    Например в php.ini - max_execution_time = 5 - команда в cmd может маслать допосинения, однако если я укажу:
    Код (Text):
    1. cmd -> php.exe -d max_execution_time=5 -q C:\***\testpage.php
    Скрипт ровно через 5сек возвращает ошибку... Это конечно же хорошо, но я же не могу таким образом перечислять все параметры php.ini...
     
  7. Ke1eth

    Ke1eth Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    php.ini подгружаемый при выполнении из командной строки, это совсем не тот php.ini, который читается при работе с веб-сервером.
    смотри, у себя, их несколько.