Почему код возвращает значение лишь единожды? Почему возвращает значение всего один раз? И дайте оценку коду - где чего не хватает или что-то лишнее? Возможно, можно было написать проще?url = $url;
}
public function parseIt() {
$content = file_get_contents($this->url);
preg_match("~url, PHP_URL_HOST);
return $gotHost;
}
}
$parser = new parser('http://vk.com/id1');
echo $parser->parseIt();
?>

21 Авг 2019 в 07:09
218 +1
1
Ответы
1

Код возвращает значение лишь один раз, потому что после первого вызова метода parseIt() свойство $parsed класса parser уже заполнено, и при последующих вызовах parseIt() результат остается тем же.

Оценка кода:

В методе parseIt() нет обработки случая, когда не удается найти нужный контент в странице.Метод getHost() не используется в данном коде, поэтому лишний.Класс parser не имеет проверки на существование файла перед его чтением функцией file_get_contents.

Проще можно было написать следующим образом:

class Parser {
protected $url;
public function __construct($url) {
$this->url = $url;
}
public function parseAndReturnImgSrc() {
$content = file_get_contents($this->url);
if (preg_match("~<img src=\"(.*)\"~Uis", $content, $parsed)) {
return $parsed[1];
} else {
return "Image source not found";
}
}
}
$parser = new Parser('http://vk.com/id1');
echo $parser->parseAndReturnImgSrc();

Если требуется работать с хостом, можно добавить метод в класс Parser:

public function getHost() {
return parse_url($this->url, PHP_URL_HOST);
}

Обратите внимание на изменения в названии класса (camelCase) и исправления в методе parseAndReturnImgSrc().

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 887 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир