PHP dış RSS beslemesi sırası rastgele

2 Cevap php

Ben onun resim kaynağı olarak bir RSS beslemesi alan bir web sitesi için bir üçüncü taraf AJAX slayt kullanıyorum. Ben resimlerin sırasını rastgele istiyorum, ama bu slayt (ya da ben gelen çekiyorum RSS) bir özelliği değildir.

Elbette bu, bir dış RSS beslemesi alır öğeleri randomizes ve 'sıra dışı' aynı yemi yeniden yayımlar PHP kısa bir işlevi yazmak zor olmamalı. Ben sadece o iş yapmak için görünmüyor olabilir.

2 Cevap

Kullandığınız DOM XML? Sonra sadece ithalat dizi shuffle.

$xml = new DOMDocument();
$articles = $xml->getElementsByTagName("article");
$data = array();
foreach ($articles as $article) {
    data[] = ...
}
shuffle($data);

Ne çalıştı:

$dom = new DOMDocument;
$dom->load($url);

// Load the <channel> element for this particular feed
$channel = $dom->documentElement->firstChild;

$items = $channel->getElementsByTagName('item');

// duplicate $items as $allitems, since you can't remove child nodes
// as you iterate over a DOMNodeList
$allitems = array();
foreach ($items as $item) {
	$allitems[] = $item;
	}

// Remove, shuffle, append
foreach ($allitems as $item) {
	$channel->removeChild($item);
}

shuffle($allitems);

foreach ($allitems as $item) {
	$channel->appendChild($item);
	}

print $dom->saveXML();

}