Насколько я понимаю, корпус представляет собой открытый-закрытый тег, состоящий только из атрибутов.
<enclosure length="1280" url="http://m.gmgrd.co.uk/res/108.$plit/C_71_article_1469226_short_teaser_group_short_teaser_image.jpg" type="image/jpeg" />
Это означает, что вы не можете просто получить доступ к его значениям, как вы делаете с guid
или title
, но вы должны получить доступ к атрибутам .
В настоящее время вы даже не устанавливаете индекс, к которому пытаетесь обратиться позже:
$item_array[] = array(
'title' => $title,
'url' => $url,
'description' => $description,
'timestamp' => $timestamp
// Here enclosure is missing
);
Я не знаю ваш класс XML, но вам нужно выяснить, можете ли вы каким-либо образом получить доступ к атрибутам элемента после использования element_set. Или, если есть другой метод для доступа к атрибутам.
Как только вы узнаете URL-адрес, вы можете извлечь изображение из этого URL-адреса и создать копию на своем собственном сервере. Однако оба варианта вызывают разные проблемы:
- Если вы создадите собственную копию на своем сервере, вы можете нарушить авторские права
- Если вы даете ссылки на URL-адрес, который нарушаете в отношении здравого смысла при разработке HTML, поскольку дип-линки к изображениям воспринимаются как зло (возможно, отображение изображения на вашем сайте также противоречит авторскому праву, я не знаю там международного права)
В зависимости от того, по какому пути вы пойдете, вы либо просто позвоните
// $attribute is the url-attribute of the enclosure-tag
<img src="'.$attribute.'">
или скопируйте изображение на свой сервер и затем наберите
<img src="'.$urlToImageOnYourServer.'">
Если вы используете функции из bobulous.org.uk и уже включают part 3 , вы можете отредактировать ваш цикл foreach следующим образом, чтобы получить URL-адрес вложения:
foreach($news_items as $item) {
$title = value_in('title', $item);
$url = value_in('link', $item);
$description = value_in('description', $item);
$timestamp = strtotime(value_in('pubDate', $item));
$imageAttrs = attributes_in('enclosure', $item));
$imageUrl = $imageAttrs['url'];
$item_array[] = array(
'title' => $title,
'url' => $url,
'description' => $description,
'timestamp' => $timestamp,
'enclosure' => $imageUrl,
);
}