запустить URL в командной строке без использования содержимого curl или wget на том же сервере - PullRequest
0 голосов
/ 26 марта 2020

Справочная информация об этом у меня есть функция на веб-сайте я sh для запуска один раз в день, cron и веб-сайт или на том же сервере. Мой сайт использует cloudflare, и мой cron запускает команду curl для запуска функции. Это работает примерно в 50% случаев, остальные 50% я получаю ошибку 522 cloudflare. Поэтому мне нужно действительно обойти cloudlfare для запуска этого.

Итак, допустим, мой curl был https://my-site.com/index.php?action=do-task и путь на сервере к индексу. php file is var / www/html/index.php

как лучше всего это сделать, чтобы действие do-task было передано в индекс. php файл?

я думаю что-то вроде

php /var/www/html/index.php

может работать, но не может понять, как я передам действие = часть задачи

спасибо

Крейг

1 Ответ

1 голос
/ 26 марта 2020

Если страница уже использует $_GET, проверьте аргументы командной строки, превратите их в строку запроса и разберите их на $_GET:

if(isset($argv)) { parse_str(implode('&', $argv), $_GET); }

Затем вызовите свой скрипт следующим образом:

php /var/www/html/index.php action=do-task

$_GET будет содержать:

Array
(
    [index_php] =>
    [action] => do-task
)

Для дополнительных параметров просто отделите их пробелом:

php /var/www/html/index.php action=do-task foo=bar
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...