Забыли пароль?
Запросите новый здесь.

Автор темы: Polarfox
ID темы: 1270
Информация:
Тема содержит 6 сообщения, была просмотрена 2444 раз.
Просмотр темы
PHP-Fusion Russia » Поддержка 7 версии » Народное творчество
 Распечатать тему
[class] Thief - граббер для копирования с сайта
Polarfox
Из обязательного - PHP 5 и выше, больше ничего не требуется.


Новый эксперимент под PHP 5... и выше
Класс Thief
Более менее простая (проще пока некуда) обертка для сдирания кусочка с иного сайта, и копирования этого кусочка на ваш сайт.
Другими словами граббилка - служит делу динамически отображать интересные куски с чужих сайтов.

Немного о принципе работы:
Класс содержит несколько базовых стадий
Поиск куска сайта -> Чистка/замена -> Кэширование -> Выдача/Отображение

Управляется еще легче:
Создаем экземпляр, добавляем свойства (или создаем уже с свойствами), даем команду на кэширование, даем команду на вывод.
Опционально можно насильно удалить кэш и вывести лог.
(простой пример уже включен в архив)

Тема поддержки и описание и документация (пока не совсем полно)
http://unlogic.in...ead_id=276
Скачать (Скрытый текст: не читая и догадаться как работает, используя каплю логики и бутыль):
http://unlogic.in...etfile=242

Если кто желает разнос меня кода сделать по тегу ООП - я не против, ну или по теме скрипту - тоже, если есть желание, конечно.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
 
Web
Rush
интересно. потом гляну
 
Web
SchreiBear
вот такую простенькую штуку видел

/
Скачать исходники  Код
/ Create DOM from URL or file
$html = file_get_html('http://www.google.com/');

// Find all images
foreach($html->find('img') as $element)
       echo $element->src . '<br>';

// Find all links
foreach($html->find('a') as $element)
       echo $element->href . '<br>';


 
Rush
посмотрел.
почему бы конфиг данные не хранить в массиве. делаешь private $confing = array(default data);
в конструктор передаешь массив __consturct($my_config=array()), и в конструкторе далаешь array_merge (или что-то вроде с заменой если надо дефолтных значений). это по крайней мере избавит от метода set_data, который мягко говоря брр)
разбор страницы регекспом тоже не есть хорошо, в пхп есть как и встроенные полезные вещи для работы с DOM, так хватает и сторонних либ.
в конфиге указываешь тэг (к примеру table, можно указать его номер eq (но с этим косяки бывают), и это дело облегчает задачу, т.к. скока пхп занимаюсь, регулярки до сих пор не осилил толком
nuclear launch detected порадовал
 
Web
Polarfox
Ну я считал что все данные итак доступны внутри без пробросов массива, а присваивание все равно лучше вручную делать каждому значению... Хотя этот момент я не смотрел как нада делать, да.

в пхп есть как и встроенные полезные вещи для работы с DOM
нужно чтоб работало сразу без особых заморочек, такое есть? просто разные сборки, разные наборы. Это потом в итоге падает с фатальной ошибкой если нету чего-то.
И собрать конечно регулярку сложней, но волокиты в итоге с ней меньше, хотя если есть правильные альтернативы - это я за.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
 
Web
Rush
из нативных http://www.php.ne...ok.dom.php dom, http://www.php.ne...-basic.php simplexml/xpath

обычно если конфигурационные данные постоянны и их много, то как-то логичней передавать массивом. если мало или меняются - делать методы сеттеры
x1
 
Web

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Топ 5 пользователей форума
Alex Alex (1,180)   Zaxap Zaxap (1,078)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)