Используя procmail для передачи скрипта php, могу ли я добавить переменную для проверки?

У меня настроен скрипт procmail, который передает скрипт PHP при совпадении строки темы электронного письма:

:0
* ^[email protected]|^Subject.*(REMOVE|Undelivered Mail)
| /usr/bin/php -f /var/www/somefolder/script.php

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

| /usr/bin/php -f /var/www/somefolder/script.php?iscron=1
| /usr/bin/php -f /var/www/somefolder/script.php --iscron=1

Я хочу, чтобы PHP-скрипт мог проверять, что его запускает. Спасибо за любую помощь.

Это довольно неясно; Вы спрашиваете, как отличить, какая часть регулярного выражения Procmail совпала (что пытается решить мой ответ) или как анализировать аргументы в PHP (на что, как я полагаю, должны быть подробно даны ответы на существующие вопросы)? Пожалуйста, отредактируйте, чтобы уточнить.

tripleee 24.06.2024 13:20

Я немного отредактировал, надеюсь, стало понятнее. @ken-lee ответил на вопрос, поэтому я отмечу это как ответ. Спасибо.

jamminjames 25.06.2024 08:39

Отвечает ли это на ваш вопрос? PHP, передача параметров из командной строки в PHP-скрипт

TylerH 25.06.2024 15:25

@triplee, я искал и не нашел этого, вероятно, потому, что искал что-то, связанное с procmail. Я думаю, что было бы хорошо опубликовать этот вопрос для тех, кто ищет то же самое.

jamminjames 26.06.2024 20:13
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Более подробную информацию можно найти в официальной документации

Предположим, что ваша команда (для передачи от procmail к PHP):

/usr/bin/php -f /var/www/somefolder/script.php iscron=1 subject=stackoverflow

script.php может быть:

<?php

unset($argv[0]);
parse_str(implode('&',$argv),$_REQUEST);

if ($_REQUEST["iscron"]= = "1") {
  // do things for iscron=1
}else{
  // do other things
}

// $_REQUEST["subject"] will be "stackoverflow"

?>

Спасибо. Ответ, который мне был нужен, заключался в добавлении iscron=1 к команде канала. Пример синтаксического анализа тоже помогает.

jamminjames 25.06.2024 08:41

Другие вопросы по теме