0

RSS フィードを読むときは、画像や動画へのリンクをテキストから切り離すようにしています。RSSフィードはこちらhttp://stopgame.ru/rss/rss_news.xml

youtubeリンク付きの説明があるテキストがいくつかあります
<br><br>http://www.youtube.com/...

.

<br><a href="link"></a><br>
<br><a href="link"></a><br>

ビデオや画像を含むものもあります

<br><br>http://www.youtube.com/...<br>
<br><a href="link"></a><br>
<br><a href="link"></a><br>

配列へのすべての画像リンクと配列$imagesへのビデオリンクを分離する必要があります$video。現在、PHP は次のようなコードです。

    if (preg_match_all("/\<br\>\<a href=\"http:\/\/images.stopgame.ru\/(.*)\"\>\<\/a\>\<br\>/", $item->description, $images)) {
        $item->description = preg_replace("/\<br\>\<a href=\"http:\/\/images.stopgame.ru\/(.*)\"\>\<\/a\>\<br\>/", "", $item->description);
    } else {
        $images = null;
    }

    if (preg_match_all("/http:\/\/www.youtube.com\/(.*)\<\/p\>/", $item->description, $video)) {
        $item->description = preg_replace("/\<br\>\<br\>http:\/\/www.youtube.com\/(.*)\<\/p\>/", "", $item->description);
    } else {
        $video = null;
    }


しかし、それはあまり良い結果を示していません:
var_dump($video) は次のようなものを返します:

array(2) { [0]=> array(1) { [0]=> string(46) "http://www.youtube.com/watch?v=ZJc2W8SBE5U

" } [1]=> array(1) { [0]=> string(19) "watch?v=ZJc2W8SBE5U" } } 

var_dump($images) は次のようなものを返します:

array(2) { [0]=> array(1) { [0]=> string(237) "





" } [1]=> array(1) { [0]=> string(188) "news/2013/03/15/1363362690.jpg">
4

1 に答える 1

1

simplexml を使用してください:
残念ながら、構造を理解できるような方法で xml ファイルを投稿していないため、リンクが画像またはビデオを参照しているかどうかを判断する方法がわかりません。
XML のわかりやすいスニペットを投稿しない限り、-nodes からすべての href-Attributes を抽出する一般的な解決策を示します。

$xml = simplexml_load_file('yourfile.xml');

$urls = $xml->xpath("//a/@href");

foreach ($urls as $url) {

    echo $url;
}
于 2013-03-17T19:24:26.543 に答える