xml — php сортирует несколько xmlDoc по дате

Я вытягиваю список страниц блога из файла .XML и печатаю 2 самые новые записи для веб-страницы. Однако я понятия не имею, как сортировать файлы .XML по pubDate или же file_edited,

Код успешно извлекает файлы и печатает две новейшие записи.

Вот блок кода PHP, который извлекает файлы и печатает их.

<?php
date_default_timezone_set('Europe/Helsinki');

/* XML Source URL:s */
$pages=("blog/data/other/pages.xml");

/* XML Doc Conversions */
$xmlDoc = new DOMDocument();

echo "<div class='blog_article_wrapper'>";

function myFunction($x){
// Run 2 times, skip first file and stop loop.
for ($i=1; $i<=2; $i++) {

//Get "Title
$item_title=$x->item($i)->getElementsByTagName('title')
->item(0)->childNodes->item(0)->nodeValue;

//Get "Date" from .XML document.
$item_date=$x->item($i)->getElementsByTagName('pubDate')
->item(0)->childNodes->item(0)->nodeValue;

//Get "URL" from .XML document.
$item_url=$x->item($i)->getElementsByTagName('url')
->item(0)->childNodes->item(0)->nodeValue;

//Get "Author" from .XML document.
$item_author=$x->item($i)->getElementsByTagName('author')
->item(0)->childNodes->item(0)->nodeValue;

//Format date and author
$item_date = date('d.m.Y', strtotime($item_date));
$item_author = ucfirst(strtolower($item_author));

//Get content data from specifix .XML document being iterated in loop
$url=("blog/data/pages/" . $item_url . ".xml");
$xmlDoc = new DOMDocument();
$xmlDoc->load($url);
$y=$xmlDoc->getElementsByTagName('content')->item(0)->nodeValue;

//Limit content to 150 letters and first paragraph tag.
$start = strpos($y, '<p>="') + 9;
$length = strpos($y, '"</p>') - $start;
$src = substr($y, $start, $length);
$item_content = "\"" . (substr($src, 0, 150)) . "...\"";

// Page specific code for output comes here.
}
}

//Call loop and iterate data
$xmlDoc->load($pages);
$x=$xmlDoc->getElementsByTagName('item');
myFunction($x);
?>

Любой совет, код или статьи, указывающие в правильном направлении, будут высоко оценены.

Спасибо!

1

Решение

Я понял это сам, используя другой stackoverflow вопрос а также php.net

//Directory where files are stored.
$folder = "blog/data/pages/";

$array = array();

//scandir and populate array with filename as key and filemtime as value.
foreach (scandir($folder) as $node) {
$nodePath = $folder . DIRECTORY_SEPARATOR . $node;

if (is_dir($nodePath)) continue;
$array[$nodePath] = filemtime($nodePath);
}

//Sort entry and store two newest files into $newest
arsort($array);
$newest = array_slice($array, 0, 2);

// $newest is now populated with name of .XML document as key and filemtime as value
// Use built in functions array_keys() and array_values() to access data

?>

Теперь я могу изменить исходный код в вопросе, чтобы использовать только эти два выведенных файла для получения нужных данных.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]