XML--做rss订阅

用的商城项目的表,xml的 rss里没加上地址


就是建一个xml文件,但是能导入有商品信息的二维数组,而且要符合rss的条件(有channel节点)


<?php
/*把商城的信息推送
取出最新的十条商品*/
class feed{
	public $template='temp.xml';
	// channel的三个属性
	public $title="";
	public $link="";
	public $desc="";
// null和空啥区别,上面是要填入字符串;null的这个是对象
	public $dom=null;
	public $rss=null;
	public $goods=array();

	// 创对象;load模板;取rss
	public function __construct(){
		$this->dom=new DomDocument('1.0','utf-8');
		$this->dom->load($this->template);
		// rss必须要item0才能收到,要不然是
		$this->rss=$this->dom->getElementsByTagName('rss')->item(0);
	}

	// 运行方法:channel,商品主体,输出
	public function display(){
		// 造channel
		$this->createChannel();
		// 造商品
		$this->creategoods($this->goods);

		// 需要echo
		header('content-type:text/xml');
		echo $this->dom->savexml();
	}

	/*创一个节点
	name 节点名 value 里面的值*/
	public function createEle($name,$value){
		$name=$this->dom->createElement($name);
		$value=$this->dom->createTextNode($value);
		$name->appendChild($value);
		return $name;
	}

	/*创主块节点,里面有很多个并列子节点*/
	public function createItem($arr){
		$items=$this->dom->createElement('items');
		foreach ($arr as $k => $v) {
			// 把数组里的全创成节点
			$item=$this->createEle($k,$v);
			// 再放进item节点里
			$items->appendChild($item);
		}
		return $items;
	}

	// 造channel,要用到title啊之类的
	public function createChannel(){
		$channel=$this->dom->createElement('channel');
		$channel->appendChild($this->createEle('title',$this->title));
		$channel->appendChild($this->createEle('link',$this->link));
		$channel->appendChild($this->createEle('desc',$this->desc));
		return $this->rss->appendChild($channel);
	}

	// 把商品放进rss里
	public function creategoods($goods){
		foreach ($goods as $good) {
			$good=$this->createItem($good);	
			$this->rss->appendChild($good);
		}

	}
}
$con=mysqli_connect('localhost','root','123456','boolshop');
$sql='select goods_name from goods limit 10';
mysqli_query($con,'set names utf8');

$rs=mysqli_query($con,$sql);
while ($row=mysqli_fetch_assoc($rs)) {
	$list[]=$row;
}

$feed=new feed();
$feed->title='布尔商品推送';
$feed->link='www.sonic.com';
$feed->desc='商品质量好绝无欺瞒';
$feed->goods=$list;

$feed->display();

?>

模板

<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0">
</rss>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值