Получать пользовательский ввод для запуска php-скрипта с этим пользовательским значением ввода с клавиатуры - PullRequest
2 голосов
/ 25 апреля 2011

У меня есть php-скрипт, который я запускаю из командной строки в linux (НЕ интерактивно), который выполняет поиск в базе данных mysql и на основе значения поля «SentOrNotSent» отправляет электронные письма или нет. Работает нормально, этот скрипт php.

Теперь я хочу изменить сценарий так, чтобы при первом запуске он запрашивал «идентификационный» номер для ввода с клавиатуры, затем входил в базу данных MySql и удалял запись с этим идентификатором. Я знаю, как сделать удаление, я заблудился, как заставить этот скрипт запрашивать ввод, а затем использовать это значение для части оператора обновления mysql, чтобы удалить запись.

Этот скрипт запускается ТОЛЬКО из командной строки и базируется в каталоге, к которому ТОЛЬКО администратор имеет доступ.

спасибо за любую помощь.

Ответы [ 3 ]

6 голосов
/ 25 апреля 2011

Вы можете проверить аргументы командной строки через $ argc (количество аргументов cli) и $ argv (массив фактических значений аргументов). Или вы можете запросить ввод и получить его, считывая данные со стандартного ввода (STDIN).

С учетом командной строки:

$ ./myscript 1234

myscript.php:
<?php
if (isset($argv[1])) {
   $myid = (int)$argv[1]; // use the command line argument for ID
} else {
   print("Enter an ID number: ");
   $myid = (int)fgets(STDIN); // prompt the user for an ID
}
... proceed with $myid = 1234 or whatever you entered.
3 голосов
/ 01 мая 2012

Одна строка кода (строка 2):

<?php
$id = trim(shell_exec("read -p 'Enter your ID: ' id\necho \$id"));
echo "The ID you entered was $id (this is PHP speaking… do your database stuff next…)\n";
exit;

Проверить источник ответа на http://oneqonea.blogspot.com/2012/04/how-can-i-capture-user-input-from-cmd.html

0 голосов
/ 25 апреля 2011

"php script.php 1234" просто добавьте идентификатор, действительно ли он должен быть интерактивным?1234 будет в массиве $ argv, который вы затем можете использовать в скрипте

http://php.net/manual/en/reserved.variables.argv.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...