Я получаю описание с некоторых веб-сайтов RSS-каналов. Некоторые из этих описаний содержат изображения и определенный текст, который я хочу удалить.
Код для получения фида:
$rss = simplexml_load_file($website);
foreach ($rss->channel->item as $item) {
$description = (string)$item->descritpion;
}
Это разные форматы, которые я получаю:
<description><![CDATA[
<p> //Post Description </p>
<p>The post <a rel="nofollow" href="">
//Post Title.</a> appeared first on
<a rel="nofollow" href="">//Feed Website.</a>.
</p>
]]></description>
_________________________________________________________________
<description><![CDATA[
<div>
<strong>//Some Text.</strong>
</div>
<div>
</div>
<div>//Some Text.</div>
<div>
<img alt="" src="" style="width: 640px; height: 427px;" />
</div>
]]></description>
_______________________________________________________________
<description>
<img style="margin:0 1em 1em 0;" align="left" src=""/>
„//Some Text.
</description>
Чтобы удалить изображения:
$description = (string)strip_tags($item->description);
Текст «Сообщение (Заголовок сообщения) появилось первым на (Веб-сайте)».
Чтобы удалить этот текст, я использую:
if (strpos($description, 'appeared first')) {
$siteNames = array('a.com', 'b.com', 'c.com');
foreach ($siteNames as $siteName) {
if(strpos($description, $siteName)){
$appeared = 'The post '.$item->title.' appeared first on '.$siteName;
$description = str_replace($appeared, '', $description);
}
}
}
Так, например, если описание содержит:
<p>The post
<a rel="nofollow" href="http://a.com/what-is-php">What is PHP.</a>
appeared first on
<a rel="nofollow" href="http://a.com">a.com.</a>.
</p>
Затем этот текст следует удалить.
Затем я использую strip_tags($item->description)
, изображения не отображаются.
Но когда я использую код для удаления строки, он не работает со всеми описаниями, и в некоторых из них все еще есть строка.
UPDATE:
<description><![CDATA[
<p>Við vorum að fá inn til okkar forfallaholl í Laugardalsá á best tíma. Annarsvegar er um að ræða hollið 18-21. júlí og síðan hollið 24-27. júlí. Bæði eru hollin á frábærum tíma í ánn. Þó svo um 3ja daga holl sé að ræða, er að hægt að skoða staka daga eða 1 1/2 eða 2
</p>
<p>The post <a rel="nofollow" href="https://a.com/post-title/">Laugardalsá – forfallaholl á besta tíma</a> appeared first on <a rel="nofollow" href="https://a.com">a.com</a>.</p>
]]></description>