. 두 가지 첫 번째 답변은 내 경우에 어떤 이유로 작동하지 않았습니다. 이것은 두 번째 것과 매우 비슷합니다.
<?php
header("Content-Type: text/xml");
if (isset($_GET["rss"])) {
$url = $_GET["rss"];
randomizeAndDumpRss($url);
}
function randomizeAndDumpRss($url) {
$dom = new DOMDocument;
$dom->load($url);
$channel = $dom->getElementsByTagName('channel')[0];
$items = $channel->getElementsByTagName('item');
$allitems = array();
foreach ($items as $item) {
$allitems[] = $item;
}
foreach ($allitems as $item) {
$channel->removeChild($item);
}
shuffle($allitems);
foreach ($allitems as $item) {
$channel->appendChild($item);
}
print $dom->saveXML();
}
?>
이 PHP를 ?rss=rss_url_to_randomize
과 함께 사용하기 만하면됩니다.
그런데 데이터베이스에서 데이터를 가져 오는 것과 달리 XML (XML)을 구문 분석하는 것은 집중적입니다. – Radek
getElementsByTagName()은 배열이 아닌 객체를 반환하며 셔플 링 될 수 없습니다. –
당신이 맞아요, 그래서 약간의 업데이 트가 먼저 노드에서 배열()에 데이터를 저장 후 셔플 :) – Radek