У меня есть сайт PHP, который анализирует XML и отображает его на веб-странице. XML файл изменяется каждый раз так часто, поэтому изменение веб-страницы. Он меняется каждые 30 минут.
Я хочу иметь возможность принимать XML-данные и вставлять их в свою базу данных MySQL. Тем не менее, я не могу найти способ вставить данные в базу данных каждый раз, когда XML обновляется, потому что клиент должен быть задействован, и даже поэтому данные будут вставлены несколько раз, если страница была посещена более одной за эти 30 минут промежуток времени.
Каждый раз, когда файл XML обновляется, я хотел бы, чтобы мои данные были следующими:
XML → PHP → База данных
Это может быть невозможно, поэтому я понимаю, что мне, возможно, придется использовать отдельный язык сценариев для обновления базы данных с использованием XML-контента. Из-за того, что изменения XML должны запускаться, обновление базы данных PHP может не работать в этом случае. XML обновляется через короткий скрипт Bash. Я изучил использование BASH, но для анализа XML и обновления баз данных это, похоже, не помогло, плюс это было бы огромной кривой обучения для меня. Я запускаю это на машине Ubuntu.
Любые предложения и помощь приветствуются.
Благодаря кузнецу и Тиму Мортону я нашел решение.
Я создал отдельный PHP файл, который будет анализировать XML в переменных и вставлять данные в базу данных.
Чтобы запустить сценарий Nmap, который обновил файл XML, я использовал задание cron, которое вызвало сценарий bash. В сценарии bash после запуска Nmap я изменил расположение каталога на папку, содержащую мой скрипт, а также мой XML файл. Затем я запустил PHP файл с PHP CLI (php -f/xxx/xxx/php.php).
Поэтому вместо того, чтобы использовать триггер, чтобы узнать, изменился ли файл XML, я обновил базу данных в другом PHP файле, который был вызван в том же сценарии bash.
ИТ работал так:
Cron job > BASH script > Run Nmap > update XML
> call PHP file > update database
Еще раз спасибо, Смит и Тим Мортон