| |
|
|
| | Всем здрасти :)
Этот класс для парсинга, оцените правильно ли я его сконструировал? подскажите как улучшить :)
<?php
class parser{
# Объявляем открытые члены класса
// Адрес сайта
public $host;
// Путь до странички
public $path;
// Регулярное выражени
public $pattern;
// Содержимое страници
public $content;
# Объявляем зактрытые члены класса
// Результаты парсинга
private $result;
# Конструктор
function __construct($host,$path,$pattern){
$this->host = $host;
$this->path = $path;
$this->pattern = $pattern;
}
# Объявляем методы класса
// Метод getPages(), помещает содержимое страници в $content, также возвращает его
public function getPages(){
if(!$this->content=file_get_contents($this->host.$this->path))
error("Страничка не взялась..:(");
return $this->content;
}
// Метод parserPage(), парсит страницу и результат помещает в $result
public function parserPage(){
if (empty($this->content)) $this->error("Нечего еще парсить");
if (!preg_match_all($this->pattern,$this->contents,$this->result)) error("Чего-то не парситься");
unset($this->result[0]);
return $this->result;
}
// Метод showResult(), показывает $result
public function showResult(){
if (empty($this->result)) $this->error("Нечего показывать пока");
echo "<pre>";
print_r($this->result);
echo "</pre>";
}
// Метод getResult(), возвращает $result
public function getResult(){
if (empty($this->result)) $this->error("Нечего отдать тебе, солнце :)");
return $this->result;
}
// Метод error(), сообщает об ощибке и завершает скрипт
private function error($error){
die($error);
}
}
|
| |
| |
|
|
| |
|
|
| |
для: CrazyAngel
(03.12.2006 в 11:55)
| | | У вас вызов методов зависит от порядка вызова, т.е. нужно помнить какие фукнции в каком порядке вызывать - это плохо и считается серьёзной ошибкой проектирования. Задача парсинга сводится к тому, что объект или функция получает параметры страницы и возвращает результат в виде строки (вывод на страницу должен осуществлять другой объект или функция, так как может потребоваться изменить дизайн). Поэтому методы getPages(), parserPage(), showResult() - лишние. | |
| |
|
|