1 / 13

Автоматическая загрузка и обработка данных для

Автоматическая загрузка и обработка данных для. веб-порталов. Автоматическая загрузка данных на сайт. Для чего это необходимо:. $. сайт. Новости. Автоматическая загрузка данных на сайт. Для чего это необходимо:. $. сайт. Новости. Более глобальные задачи:.

Download Presentation

Автоматическая загрузка и обработка данных для

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Автоматическая загрузка и обработка данных для веб-порталов

  2. Автоматическая загрузка данных на сайт • Для чего это необходимо: $ сайт Новости Company Logo

  3. Автоматическая загрузка данных на сайт • Для чего это необходимо: $ сайт Новости • Более глобальные задачи: Головная организация поставщик поставщик поставщик HTML 1С Company Logo

  4. Скачивание каталога продукциив html-формате 1. Получение данных с указанного URL 2. Извлечение содержимого из полученной страницы 3. Дополнительная обработка и вывод на сайте Company Logo

  5. Скачивание каталога продукциив html-формате • 1. Получение данных с указанного URL Для этого в РНР существует несколько возможностей: Соединение через сокеты fsockopen fopen file_get_contents БиблиотекаcURL Открываем сокет Log Сервер $fp = fsockopen($host, 80, $errno, $errstr, 20); Строка заголовка для пакета Пакет Ответ $out = "GET $path HTTP/1.0\r\n"; $out .= "Host: $host\r\n"; $out .= "User-Agent: Opera/8.01 (J2ME/MIDP; ". "Opera Mini/2.0.4509/1716; ru; U; ssr)\r\n"; $out .= "Cache-Control: no-cache\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); $body = ""; while (!feof($fp)) $body .= fgets($fp); Company Logo

  6. Скачивание каталога продукциив html-формате • 2. Извлечение содержимого из страницы … <div class="content"> Мама мыла раму </div> <div class="footer"> … Регулярные выражения Мама мыла раму Company Logo

  7. Скачивание каталога продукциив html-формате • 3. Обработка и отображение на сайте 1. Поиск ссылок и формирование массива function parseLinks( $data ) { $pattern = "/<a\\s+[^>]*href\\s*=\s*[\"']?([^\"'>]+)[\"'][^>]*>(?:(?U)(.*)<\\/a>)/i"; $a = preg_replace_callback($pattern, array(&$this, 'linkRender'), $data ); } function linkRender( $matches ) { if ( strpos($matches[1], 'http:/') || strpos($matches[1], 'ftp:/')) return; $link_key = 'http://'.$this->domain.$matches[1]; if ( strpos($matches[1], '/products') && !array_key_exists ($link_key, $this->links) ){ $this->links[ $link_key ] = '-1'; } } 2. Исключение стилей и классов 3. Абсолютные ссылки и абсолютные пути для картинок 4. Сохранение обработанного текста во временное хранилище Company Logo

  8. Скачивание каталога продукциив html-формате • 4. Отображение на сайте подразделения Company Logo

  9. Обновление каталогов продукцииот разных поставщиков • О проекте поставщик поставщик поставщик аналог бронь заказ запрос Покупатель Company Logo

  10. Обновление каталогов продукцииот разных поставщиков • Способы загрузки данных Поставщики передают свои данные разными способами: • HTTP c Basic-авторизацией $out = "GET $uri HTTP/1.1\r\n"; $out .= "Host: ".$host."\r\n"; $out .= "Connection: Close\r\n"; $out .= 'Authorization: Basic '.base64_encode($user.':'.$pwd)."\r\n"; $sock = @fsockopen($host, 80, $errno, $errstr, 10); fwrite($sock, $out); • FTP Устанавливаем соединение $conn_id = ftp_connect($server_); Передаем логин и пароль Log $result = ftp_login($conn_id, $login_, $pass_); Скачиваем server_file и сохраняем в local_file ftp_get($conn_id, $local_file, $server_file, FTP_ASCII); Company Logo

  11. Обновление каталогов продукцииот разных поставщиков • Архивы с данными ZIP-файл PCLZip $archive = new PclZip('archive.zip');$list = $archive->extract(PCLZIP_OPT_BY_NAME, "data/archive.xml", PCLZIP_OPT_EXTRACT_AS_STRING); XML-данные Company Logo

  12. Обновление каталогов продукцииот разных поставщиков • Варианты обработки XML В PHP существует несколько встроенных вариантов обработки XML - SimpleXML, DOM, SAX. • SimpleXML $xml = simplexml_load_file($file); foreach($arr as $k=>$atr) $goods[]=Array( “articul”=>$atr->articul, ”name”=>$atr->name, “price”=>$atr->price, “descr”=>$atr->description); $arr = $xml->Xpath(”/document/products/*”); Array – массив объектов • Примеры использования Xpath $result = $xml->Xpath(”//*”); - найдетвообщевсеобъекты;$result = $xml->Xpath(”//div”); - найдетвсеобъекты div;$result = $xml->Xpath(”//div[@id='head']”); - найдетобъект div c id = head Company Logo

  13. Обновление каталогов продукцииот разных поставщиков • Отображение на сайте Company Logo

More Related