PHP处理xml的方法

好久不用php了 这几天用php做一个小东西 处理xml是一个很基本的常识  总结了一下 以后用的时候找起来方便

其实就是利用了一个php内置的方法simplexml_load_string();下面用直接上代码说的清楚,我用了dict.cn的辞典API,准备做一个简单的辞典小应用~ 嘻嘻

	function object_to_array($object){
        $result = array();
        $object = is_object($object) ? get_object_vars($object) : $object;
        if(empty($object) || (!is_object($object) && !is_array($object))){
			return false;
		}
		foreach ($object as $key => $val) {
		    $val = (is_object($val) || is_array($val)) ? object_to_array($val) : $val;
		    if(is_numeric($val) || is_string($val))
    		{
				$val = mb_convert_encoding($val,"GB2312","UTF-8");
    		}
    		$result[$key] = $val;
        }
        return $result;
    }

        $word = $_GET['word'];
	$str = file_get_contents('http://api.dict.cn/ws.php?utf8=true&q='.$word);
	$obj = simplexml_load_string($str);
	$arr = object_to_array($obj);
	var_dump($arr);

过程就是先把字符串读过来 然后把字符串用内置方法转成对象 然后再把对象 用自定义的函数 转成数组
我们来看一下他的结果把~

xml to array

linux下面的编码转换

由于最近工作中 同事从windows系统传给我的文件大多都是gbk编码的 每次用的时候都要转码 把转码的知识总结了一下
这张图显示了转码的过程

第一步 察看编码 发现乱码以后 要先看看目标文件是什么编码 有两种方法
vim对gb2312支持不太好 有时候显示为latin 不知道为什么

//使用enca来 这是很好很方便的
sudo apt-get install enca
enca filename

//使用vim
vim filename
:set fileencoding

 

第二步 发现编码了以后 开始转码 两种方法 enconv 和 iconv
enconv比较方便 不用新建一个文件

//enconv
enconv -L zh_CN -x UTF-8 filename

//iconv
iconv -f GB2312 -t UTF-8 file1 -o file2

自己写的焦点图插件 vslide

其实早就写好了 一直放在那里 前几天往github里面又传了一个东西 发现还有这么个东西 改了改 就先放出来 一开始本来设想要加好几中动画效果的 后来想想先这样 越简单越好只要实现功能即可  使用也比较简单 现在动画效果只有一种向右滑动 本来设想添加了一个动画组件 里面有多种效果 根据用户需要来添加

效果请看   DEMO

用法 很简单 看下面说明

//两个参数 一个是数据 一个是配置参数 css可以自己按照喜好填写
//第一个是图片的数组 包括图片地址 链接 和下面的说明
var data =[{img:'1.jpg',link:'#',desc:'there you go bitch'},
{img:'2.jpg',link:'#',desc:'this is not cool'},
{img:'3.jpg',link:'#',desc:'under attack'},
{img:'4.jpg',link:'#',desc:'fuck this shit, fuck you all'},
{img:'http://www.wallcoo.com/flower/Amazing_Color_Flowers_2560x1600_II/wallpapers/1280x1024/Amazing_Flowers_Wallpapers_53.jpg',link:'#',desc:'u\'er going down bro'}
];

//默认的配置参数
var settings = {
		pagnation:true,//是否显示下面的页码
		autoPlay:true,//是否自动播放
		speed:3000,//播放速度
		event:'click',//切换事件
		height:327,//高度
		width:960//宽度
	}

//可以用你想要的配置覆盖他
var opts = {speed:2000,event:'mouseover'};

//最后~
$('.test2').vslide(opts,data);

配置很简单 焦点图还算好用 中意的可以在这里fork

DOWNLOAD&FORK

ubuntu下apache2建立虚拟主机

其实这玩意儿我两年前就已经会了  但是每次我重新建的时候都要找一阵 而且ubuntu下的方法 和其他linux系统有些不一样 这里就只写ubuntu的方法 做个备忘。

虚拟主机 (Virtual Host) 是在同一台机器搭建属于不同域名或者基于不同 IP 的多个网站服务的技术. 可以为运行在同一物理机器上的各个网站指配不同的 IP 和端口, 也可让多个网站拥有不同的域名.

1. 打开目录 /etc/apache2/sites-available/, 发现 default 和 default-ssl 两个文件, 其中 default 是 http 虚拟主机服务的配置文件, default-ssl 是配置 https 服务使用的. 新建一个文件, 文件名必须与域名一致 (如: test.viking.com)

2. 打开新建的配置文件, 修改 DocumentRoot, ServerName 和对应的配置目录. 例子如下:

ServerAdmin viking@viking.com
DocumentRoot /var/www/test
ServerName test.viking.com
ErrorLog ${APACHE_LOG_DIR}/test.viking.com-error.log
CustomLog ${APACHE_LOG_DIR}/test.viking.com-access.log combined

3.用命令激活刚才添加的虚拟主机

sudo a2ensite test.viking.com

这时候你应该已经发现 在/etc/apache2/sites-enabled 已经添加了一个叫test.viking.com的文件 说明这个网站已经成功添加了
4.然后重启服务器来让这个域名生效

sudo /etc/init.d/apache2 restart

现在在浏览器里面输入域名 感受一下把~

5.当然还可以删除这个域名

sudo a2dissite test.viking.com

诡异的梦

昨天做梦 其实我当时已经醒了 不是做梦 感觉自己的肋骨断了 但是我用手能摸到断了的骨头的边缘 那个时候我很害怕 我为了确定自己不再梦中 做了很多事情 感觉身边的场景就是很熟悉的 是我的屋子里的样子 我也感觉自己已经醒来了 但是不能站起来 只有手能动 所以我就一遍一遍的摸着自己那个断了的骨头 感觉边缘处很锋利 有些扎手 空气昏昏沉沉 夜色也没有透进来
第二天我还一直上班 到现在我还条件反射一样的 摸这自己的腰部 仿佛那里的骨头会突然断掉一样

自己总是能做一些很非比寻常的梦 比如前几天那一个多层的梦 起来后每个细节都特别清楚 连上面数学卷的考题都能背出来 也许这是我另一重的生活 而我却比较不一样 可以残留另一个世界的一些零碎的记忆 呵呵 要是那样 我自己感觉真的很荣幸~

这几天装了ubuntu11.10 很喜欢gnome3 等闲下来一定要好好写几篇日志总结一下