基于xml文件生成array文件(使用与seo)

 

<?php
	/*
	 * 把xml文件的内容转化为数组
	 */
	function parseXML(){
		$file	= realpath('seo.xml');	//realpath() 取绝对路径
		$seo	= @simplexml_load_file($file);	//simplexml_load_file() 把xml文档载入对象中 	@忽略提示
		$seos	= array(); 
		foreach($seo->section->article as $art){
			$keywords = array();
			foreach($art->seo->keywords->keyword as $keyword){
				$keywords[] = $keyword;	//把keyword内容写成一个数组
			}
			$path = '/'.$art->seo->url->path;
			$path = filterPath($path);	//调用filterPath()函数
			$seos[$path] = array(
				'title'			=> ''.$art->seo->title,
				'keywords'		=> implode(', ', $keywords),	//implode() 把数组元素组合为一个字符串
				'description'	=> ''.$art->seo->description,
			);
		}
		return $seos;
	}
	
	/*
	 * 获取seo.array文件的内容,数组形式
	 */
	function getSeos(){
		$seos = unserialize(@file_get_contents('seo.array'));	//file_get_contents() 把整个文件读入到一个字符串中
																//unserialize()与 serialize()相反
		if(!$seos){	//判断是否存在seo.array文件,不存在就生成
			$seos = parseXML();
			setSeos($seos);
		}
		return $seos;
	}
	
	/*
	 * 根据$path路径获取seo的值
	 */
	function getSeo($path){
		$seos = getSeos();
		return $seos[$path];
	}
	
	/*
	 * 设置seo,把$seos数组转换为流写入seo.array文件中
	 */
	function setSeos($seos){
		return file_put_contents('seo.array', serialize($seos));	//serialize() 返回字符串,此字符串包含value的字节流
																	//file_put_contents() 把一个字符串写入到文件中
	}
	
	/*
	 * 路径处理函数
	 */
	function filterPath($path){
		$pos = strrpos($path, '?');	//strrpos() 查找字符串在另一个字符串最后一次出现的位置
		return ($pos>0) ? substr($path, 0, $pos) : $path ;	//substr() 返回字符串的一部位,根据起始位置与结束位置
	}
	

这是同事写的一个Helper类文件,我只是讲解里边的一些内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值