在PHP中显示XML中的随机元素 [英] Display random elements from XML in PHP
本文介绍了在PHP中显示XML中的随机元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我认为我的问题很简单,但是我找不到任何适合我的东西.我有一个PHP文件,使我能够显示XML文件中的信息.我想从那里显示此文件中的3个随机元素.
I think my problem is simple but I could not find anything that can match me. I have a PHP file that enables me to display information from an XML file. I would like to display from there 3 random elements from this file.
这是我的XML
<?xml version="1.0" encoding="UTF-8"?>
<items>
<item>
<id>1</id>
<thumb>images/portfolio/thumb/website1.jpg</thumb>
<titre>website1</titre>
<description>Lorem ipsum.</description>
<image>images/portfolio/website1.jpg</image>
<category>Cat 1</category>
<link>portfolio.html</link>
</item>
<item>
<id>2</id>
<thumb>images/portfolio/thumb/website2.jpg</thumb>
<titre>website2</titre>
<description>Lorem ipsum.</description>
<image>images/portfolio/website2.jpg</image>
<category>Cat 2</category>
<link>portfolio.html</link>
</item>
<item>
<id>3</id>
<thumb>images/portfolio/thumb/website3.jpg</thumb>
<titre>website3</titre>
<description>Lorem ipsum.</description>
<image>images/portfolio/website3.jpg</image>
<category>Cat 3</category>
<link>portfolio.html</link>
</item>
<item>
<id>4</id>
<thumb>images/portfolio/thumb/website4.jpg</thumb>
<titre>website4</titre>
<description>Lorem ipsum.</description>
<image>images/portfolio/website4.jpg</image>
<category>Cat 4</category>
<link>portfolio.html</link>
</item>
<item>
<id>5</id>
<thumb>images/portfolio/thumb/website5.jpg</thumb>
<titre>website5</titre>
<description>Lorem ipsum.</description>
<image>images/portfolio/website5.jpg</image>
<category>Cat 5</category>
<link>portfolio.html</link>
</item>
<item>
<id>6</id>
<thumb>images/portfolio/thumb/website6.jpg</thumb>
<titre>website6</titre>
<description>Lorem ipsum.</description>
<image>images/portfolio/website6.jpg</image>
<category>Cat 6</category>
<link>portfolio.html</link>
</item>
</items>
在那里,我的PHP用于显示我的XML元素.
There, my PHP for display my XML elements.
<?php
$xmldata = simplexml_load_file('portfolio.xml');
foreach($xmldata->item as $item) {
echo '<li class="col4 item ' . $item->category . '">';
echo '<img src="' . $item->thumb . '" alt="">';
echo '<div class="col4 item-info">';
echo '<h3 class="title"><a href="' . $item->image . '" data-rel="prettyPhoto['. $item->category .']">' . $item->titre . '</a></h3>';
echo '</div>';
echo '<div class="item-info-overlay">';
echo '<div>';
echo '<h4>' . $item->category . '</h4>';
echo '<p>' . $item->description . '</p>';
echo '<a href="' . $item->image . '" class="preview" data-rel="prettyPhoto['. $item->category .']">preview</a>';
echo '</div>';
echo '</div>';
echo '</li>';
}
?>
感谢您的帮助.
推荐答案
array_rand 很有用.
尝试这样的事情:
$xmldata = simplexml_load_file('portfolio.xml');
$random = array_rand($xmldata->xpath('item'), 3);
foreach ($random as $key) {
$item = $xmldata->item[$key];
echo '<li class="col4 item ' . $item->category . '">';
echo '<img src="' . $item->thumb . '" alt="">';
echo '<div class="col4 item-info">';
echo '<h3 class="title"><a href="' . $item->image . '" data-rel="prettyPhoto['. $item->category .']">' . $item->titre . '</a></h3>';
echo '</div>';
echo '<div class="item-info-overlay">';
echo '<div>';
echo '<h4>' . $item->category . '</h4>';
echo '<p>' . $item->description . '</p>';
echo '<a href="' . $item->image . '" class="preview" data-rel="prettyPhoto['. $item->category .']">preview</a>';
echo '</div>';
echo '</div>';
echo '</li>';
}
未经测试
请确保您已阅读array_rand会产生并使用count()的警告,以确保xml中有足够的项目.
Make sure you read up on the warnings array_rand can produce and use count() to make sure there are enough items in your xml.
这篇关于在PHP中显示XML中的随机元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文