魏长东

weichangdong

正在查看: 2015年03月日志归档(第 1 页 / 共 20 篇)

http_build_query的相对函数

大家都知道php的http_build_query函数能把一个数组,变成一个url字符串,但是要想把一个url字符串变成一个数组呢?

比如需要吧这个字符串给变成key对应value的形式。

$get='act=ad.jump&androidid=a433bf43c56fbbe5&devid=7796bfce-639c-3664-8044-
da5fafd20d3c&version=1.8&klsso=qS4QHBw2zcaRVLH-5kOVBQ-qw8KYxsYU1ZoAYviEM0&k
lperson=n4e4Egh33WgqsHqKRJEsn.tq694_id4v3sqf_Akt3tDT_vdN11sfkyJfxSZLdSZ44Sf6h9
V2sQT9pgQ&userid=1256513&adid=1091&src=http://track.12trackway.com/aff_c?offer
_id=14952&aff_id=1873&aff_sub={clickid}&clickid=1091_7796bfce-639c-3664-8044-
da5fafd20d3c&ts=1425376774&sign=2f8cd4aa2956';
$new = explode('&',$get);
//print_R($new);
foreach ($new as $v) {
    $tmp = explode('=',$v);
    $$tmp[0] = $tmp[1];
    $ok[$tmp[0]] = $tmp[1];
}
print_r($ok);
extract($ok);
//echo $act;
//还原回去
//echo http_build_query($ok);

输出结果

Array (
[act] => ad.jump
[androidid] => a433bf43c56fbbe5 
[devid] => 7796bfce-639c-3664-8044-da5fafd20d3c
[version] => 1.8 
[klsso] => qS4QHBw2zcaRVLH-5kOVBQ-qw8KYxsYU1ZoAYviEM0 
[klperson] => n4e4Egh33WgqsHqKRJEsn.tq694_id4v3sqf_Akt3tDT_vdN11sfkyJfxSZLdSZ44Sf6h9V2sQT9pgQ
[userid] => 1256513
[adid] => 1091 
[src] => http://track.12trackway.com/aff_c?offer_id 
[aff_id] => 1873
[aff_sub] => {clickid}
[clickid] => 1091_7796bfce-639c-3664-8044-da5fafd20d3c 
[ts] => 1425376774
[sign] => 2f8cd4aa2956
) 

protobuf实例-PHP

protobuf简介
protobuf是google提供的一个开源序列化框架,类似于XML,JSON这样的数据表示语言,其最大的特点是基于二进制,因此比传统的XML表示高效短小得多。虽然是二进制数据格式,但并没有因此变得复杂,开发人员通过按照一定的语法定义结构化的消息格式,然后送给命令行工具,工具将自动生成相关的类,可以支持php、java、c++、python等语言环境。通过将这些类包含在项目中,可以很轻松的调用相关方法来完成业务消息的序列化与反序列化工作。

protobuf在google中是一个比较核心的基础库,作为分布式运算涉及到大量的不同业务消息的传递,如何高效简洁的表示、操作这些业务消息在google这样的大规模应用中是至关重要的。而protobuf这样的库正好是在效率、数据大小、易用性之间取得了很好的平衡。

»»阅读全文

php登陆不用session,用cookie

之前的管理后台是用session实现的,但是现在不让用session了,就改成cookie模式了。

这是之前的代码(登陆存储session):

 

$_SESSION['manage']['showName'] = $rst['showName'];//为了和功能性的session区别开,
//特意用了一个manage的数组来存储admin相关的数值
        $_SESSION['manage']['userPid'] = $rst['userPid'];
        $_SESSION['manage']['gameName'] = $rst['gameName'];

修改之后的:

setcookie("manage[showName]", $rst['showName']);
        setcookie("manage[userPid]", $rst['userPid']);
        setcookie("manage[gameName]", $rst['gameName']);

»»阅读全文

结婚了

于2015年正月初六结婚了。在老家办的酒席,之前没有参加过别人娶媳妇的婚礼(酒店的参加了一次,我妹妹出嫁也算是一次),这次自己亲身经历了一把,挺累人的,哈哈。

在北京提前三天请假回家,家里好多事情都没有筹办,然后第二天就跟着一起上凤凰镇街。买东西,订酒店,定盘头的,租车花,订酒店,租铜镜等等。

期 间,一个初中同学,党显明,听说我结婚,初四要来我家(因为他定了初六的车票),但是那天我上街上去买菜了,就没让他来,他几次给我打电话,说是上街回来 去他家停下,让他哥或者他妈把红包给我,我没好意思,但是最后这个兄弟还是通过魏来把500的红包给我捎过来了。很够意思的一个兄弟。之前在他家附近上初 中的时候,都照顾了我好多。

年过完了,又上街买东西,买菜,遇上下雨,路上湿漉漉的,我哥哥用摩托车带我,路上下车了好几次,路上湿滑,然后我舅舅的五征蹦蹦车轮子带链子才勉强开到家门口。

家乡的男孩子结婚,要办3天。初五就陆陆续续来了好多亲戚,有厨房帮忙的,有去邻居家借家具的。我媳妇是湖北的,她家来8个人,自己开了两辆车过来的。他们一大早就从襄阳出发,到下午14点才到我们镇上(在镇上定的酒店)。然后我和我媳妇一起,坐着他们开的车然后一起去凤凰镇(我们那算是比较有名的旅游景点)。然后我带他们去定的农家乐,因为酒店初五不开餐,农家乐定了一桌子饭菜,550,然后我去外面买了西凤酒,陪他们吃饭喝酒。因 为我们这风俗和他们那里不一样,这个酒席,让他们大开眼界,见识到我们坐席这么讲究,做一次酒席需要这么久。我迟到一半,就让他们之中的一个人开车把我送 到铁佛,然后我一个人准备走回去,但是路上一个骑摩托车的,说是我同学,把我捎了一段,但是我当时没想起来,后来想了好久,也不确定是不是那个人,然后我 打电话让我哥,来接我(上我家的一段崎岖山路)。

回到家,已经都在坐席了。结婚前一天都是招待帮忙的。比如立桌子的,担菜的,担饭的,司客的,发烟的,管事的,摩托车接人送人的,借家具的,厨房做菜的,做饭的。

»»阅读全文

虚拟机下linux装nginx

本来以为安装nginx很简单,就是下载然后编译安装,但是装完之后,只能静态起作用,php没法用(我这个原因很多,但是最基本的原因是nginx有些依赖库没有安装)。

tar xvzf nginx-1.7.10.tar.gz

cd  nginx-1.7.10

 ./configure --without-http_rewrite_module【编译的时候有报错,然后提示加这个参数--without-http_rewrite_module】

make 

make install

添加nginx的路径

export PATH=$PATH:/usr/local/nginx/sbin/

启动nginx

nginx -c /usr/local/nginx/conf/nginx.conf

curl http://localhost/ 已经可以看到欢迎的界面了

在我的电脑访问,http://192.168.137.129(这是我虚拟机linux的ip),也可以看到欢迎的界面

因为想找一些文件,就安装了locate这个软件。

yum  install mlocate

updatedb


静态页面没问题,但是访问php文件还是不行。

就修改了nginx.conf文件之后,但是启动后,提示nginx: [emerg] using regex "\.php$" requires PCRE library in /usr/local/nginx/conf/nginx.conf:65,是一些库缺失。

如是我决心重装nginx。因为rpm -qa|grep nginx,居然没有,所以只好去安装的目录,直接rm掉nginx的安装目录。

»»阅读全文

修改yum的repo后缀文件

安装的虚拟机的linux,用yum安装php,版本低得很,还没有php-fpm,用yum search php-fpm,还搜不到,在公司正式的服务器上搜索,能找到,就决定把yum的源文件换下,就把公司的/etc/yum.repos.d/目录下的闻不见全部都搞过来了,但是还是不能用,报错http://121.78.58.156/centos/5/cr/i386/repodata/repomd.xml: [Errno 14] HTTP Error 404: Not Found,我访问这个地址一看,知道为啥了。原来是我这个虚拟机是32位的,但是这个ip的源文件都是64位的,如是我就想着修改CentOS-Base.repo 这种文件。

»»阅读全文

编译安装php

之前用yum安装了php,但是因为yum的repo源问题,导致php-fpm没有安装成功。然后就试着用编译安装。

yum -y install gcc automake autoconf libtool make
yum -y install gcc gcc-c++ glibc

yum -y install libmcrypt-devel mhash-devel libxslt-devel \
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \
zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \
ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \
krb5 krb5-devel libidn libidn-devel openssl openssl-devel
 
wget http://cn2.php.net/distributions/php-5.4.38.tar.gz
tar zvxf php-5.4.38.tar.gz
cd php-5.4.38
./configure --prefix=/usr/local/php  --enable-fpm --with-mcrypt \
--enable-mbstring --disable-pdo --with-curl --disable-debug  --disable-rpath \
--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \
--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \
--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \
--with-gd --with-jpeg-dir
make test
make 
make install

第一次装完,惊奇的发现php居然还是之前的5.16版本,还没有php-fpm。当时我是用了yum erase命令的,吧之前yum install的都erase了,但是这次编译安装完居然这样。

没办法,我又用rpm -e卸载了php,又重新来了一遍。贺!终于ok了!

/usr/local/php/bin/php -v

PHP 5.4.38 (cli) (built: Mar 13 2015 00:20:52) 

/usr/local/php/sbin/php-fpm -v

PHP 5.4.38 (fpm-fcgi) (built: Mar 13 2015 00:21:15)

之前装php-fpm挺顺利的,没遇见啥问题。

配置php-fpm和nginx

折腾了好久终于把nginx和php-fpm安装好了。但是只能访问静态文件,不能访问php,中间改了一些配置,可以王文index.php但是不能访问别的php文件,例如wcd.php。

具体过程就不说了,直接上结果。主要是这个文件nginx.conf 。

»»阅读全文

曲折的过程-linux安装composer

网上看了安装composer的教程,就两行命令,结果我安装的时候,一个雷接一个雷的。

虚拟机linux装composer,

curl -sS https://getcomposer.org/installer | /usr/local/php/bin/php 

报错说连不上host,然后我用我的电脑用浏览器代理把php文件下载下来,然后传到虚拟机linux再去执行。

/usr/local/php/bin/php composer.php,结果又报错

【Some settings onyour machine make Composer unable to work properly.
Make sure thatyou fix the issues listed below and run this script again:
The opensslextension is missing, which means that secure HTTPS transfers areimpossible.
If possible youshould enable it or recompile php with --with-openssl】

然后一看,我当时装php的时候,装了openssl,但是编译安装php的时候,确实没有加--with-openssl选项。

如是,决定装php的openssl。

»»阅读全文

Tags: composer

虚拟机linux下安装git

之前也安装过git,这些时日没事做,就再来倒腾倒腾。

wget https://www.kernel.org/pub/software/scm/git/git-2.3.2.tar.gz
tar xvzf git-2.3.2.tar.gz 
 cd git-2.3.2  
 ./configure
 make && make install
 git --version安装成功!

下面是具体应用和配置。

»»阅读全文

Tags: git