Простой код работы с mysql и curl
Задача: требуется реализовать два php-скрипта, работающие с mysql (использовать библиотечные функции mysql_*)
I. Сделать скрипт, который скачивает данные, парсит (разбирает их) и вставляет в таблицу mysql
Это скрипт предназначет для автоматичемского запуска из крона.
Назначение скрипта: для айдишников сохранять ссылки, а ссылки меняются раз в сутки.
Алгоритм:
1. запросить библиотекой curl xml-данные.
Урл для запроса http://exat.ru/touronline/xml/?action=xml_desc&desc[]=places&desc[]=hotels
где постом отправляются два поля:
user_auth_login=zvezda-xml, user_auth_password=zvezda-xml234
Страница для тестового xml-запроса через браузер:
http://exat.ru/touronline/xml/xmltest.php Смотри "xml_desc с отелями и курортами, new style (action=xml_desc)"
2. В полученном тексте
из все тегов ,
там указан атрибут url,
сохранить пару id,url в таблицу exat_hotel
Вставку делать реплейсом (REPLACE)
II. Скрипт перенаправления обращений (пример урла http://exat.ru/Hotels/4v6276/)
1. В файле .htaccess сделать редирект обращений по маске ^/Hotels/ на php-скрипт
2. в php-скрипте извлечь айдишник после /Hotels/4v (может быть отрицательный) и для него в базе получить урл
3. сделать редирект: header("Location: http://exat.ru".$row['url'],TRUE,307);
4. если урл не найден, записать в лог
Примечания:
1. id может быть отрицательным.
2. коннект к базе вынести в инклюд.
Схема таблицы
CREATE TABLE `exat_stats2`.`exat_hotel` (
`id` INT NOT NULL ,
`url` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = InnoDB