2010-04-18 5 views
1

У меня есть страница формы на PHP, которая читает DBF и условно преобразует ее в MySQL - извлечение данных из старого, но все же производственного приложения учета. Преобразование должно выполняться без вмешательства пользователя, то есть с помощью сценария из командной строки веб-хоста на задание cron.авто отправить форму из командной строки

Как я могу заставить PHP автоматически отправлять форму при приеме переменных в командной строке, например, в качестве переменной столбца? Каждая автоматическая подача, которую я нашел до сих пор, опиралась на javascript, который бесполезен в командной строке PHP.

+0

Что такое DBF? - –

+0

старый формат базы данных (clipper/xBase) – user132192

ответ

2

Если вы правильно поняли, вы пытаетесь передать данные в скрипт PHP автоматически, который использовался для передачи через HTML-форму. При автоматизации этого процесса в задании cron никакая форма не отображается, поэтому автоподача не может быть и речи - вы, как правило, сразу передаете данные в скрипт.

методы, чтобы сделать это включают в себя:

  • Если данные формы невысок (менее 1k, нет файлов загрузки), то вы не могли бы вызвать скрипт из хрон, но еще через веб-сервер, используя wget или curl:

    curl www.example.com/script.php?field1=value1&field2=value2&field3=value3 
    
  • Если данные формы более 1-2 килобайт, используйте curl передать поля в качестве значения POST (смотрите руководство по curl)

  • Вызвать PHP-скрипт из командной строки с использованием двоичного кода PHP; передайте данные в качестве аргументов скрипту. Подробности here

  • Если данные слишком много для передачи через командную строку, поместите их во временный файл и проанализируйте ваш PHP-скрипт.

+0

Спасибо, вы подтвердили мои подозрения. Да, я хочу, чтобы командная строка работала, но для той же формы также работает так же, как и для прямого взаимодействия пользователя в браузере. Данные огромны ... около 5 мб для загрузки страницы html, так как имеется более 6000 элементов. Поэтому я думаю, что мне придется перейти к вашему последнему варианту ... и для условия командной строки, записать в другой файл, а затем получить скрипт получения и проанализировать этот файл, если он существует. Cheers: D – user132192

+0

@combatwombat не проблема. Если вы хотите, чтобы форма HTML продолжала работать с тем же скриптом, рассмотрите второй вариант.С curl вы можете даже загружать файлы так, как в HTML-форме. Это лучшее решение, если вы хотите оставить сценарий приема нетронутым. –

0

Вы можете написать скрипт Cli практически на любом языке, который поддерживает создание запросов GET/POST (PHP, Python, Bash с завитком, Java ...) и выполнить тот же вызов, как представление формы будет делать .. .

Supose форма с 2 TextFields: Foo и бар

Существует 2 основных случая:

  • GET: ваша форма выглядит следующим образом: <form action="formaction.php" method="GET">...</form> просто выполняет запрос GET в http://example.com/formaction.php?foo=test&bar=test будет делать
  • POST: ваша форма выглядит следующим образом: <form action="formaction.php" method="POST">...</form> выполнить запрос POST к http://example.com/formaction.php проходящему в обув тела запроса = тест & бара = тест
Смежные вопросы