Tag Archives: php
五四陈透过PHP看JAVA系列:strtotime
本系列主要总结PHP与JAVA之间的一些异同,给从PHP学JAVA或者是从JAVA学PHP的同学一点启发,五四陈科学院出品。 第一部分,先看PHP的Date/Tme函数 详细见:http://www.54chen.com/p/ref.datetime.html 今天要说的是其中的strtotime函数 http://www.54chen.com/p/function.strtotime.html 函数的功能:接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数)。 例子: <?php echo strtotime("2010-3-3 3:3:3"); ?> 将得到结果: 1267585383 在PHP应用中,经常在需要记录时间的时候,使用Mysql的int(10)来保存这个 Unix 时间戳,并且时间的比较查找等操作,都用大于小于来进行。 第二部分,看JAVA对应的方法 try { fromUnixTime = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse("01/03/2010 08:00:00").getTime(); fromUnixTime /= 1000; } catch (ParseException …
PHP-FPM配置sendmail支持PHP发信
当下常用的环境CentOS+nginx+php-fpm+mysql. 之前五四陈科学院曾有一文章是介绍环境的配置的,挖一挖水,链接在这里: wordpress nginx php-cgi mysql在128m内存下的vps安装和优化手记[原创] 如果要使用mail功能,需要按如下步骤操作: 第一步、安装sendmail yum install sendmail 第二步、启动sendmail service sendmail start 第三步、设置为auto start chkconfig sendmail on 第四步、修改php-fpm.conf: 搜索sendmail,去掉那一行两头的注释如下: <value name="sendmail_path">/usr/sbin/sendmail -t -i</value> 第五步、php-fpm reload
解读PHP开源项目中列表和hook方法:while(has_items()): thme_ite();和apply_filters
在wordpress,lilina等开源项目中,常常会看到一些莫名的代码,来无影去无踪,看上去很有意味,特地拿来分析分析,看看一般的作法。 part 1 列表 循环显示 先看代码: <?php $num = 0; if(has_items()) { while(has_items()): the_item(); } ?> 以上代码,出自某开源项目。。。 再进入the_item()函数内部,可以看到一个关键的函数: * Returns the current item * * @since 1.0 * * @return bool|stdClass False if item doesn't exist, otherwise returns the specified …
PHP上传文件类型彻底判断方案及PHP+nginx上传大小彻底控制方案
上回科学院发过一篇讲述上传判断的文章,位置是 PHP JAVA C上传文件如何准确判断文件类型-mime知识普及 本文目的在于,进一步更正前文所述的mime判断方式,以及增加一个nginx环境里的文件上传大小所影响的代码。 上传类型控制: 在我(54chen)工作中发现,其实修改文件的后缀,浏览器就会很傻瓜地传送错误的mime类型,所以前文的判断是一个半错误的方法(除了C代码是正确的)。 网上流传一段PHP读取文件头判断文件类型的方法,有一些bug,经我(54chen)修改实测,应该是这个样子: /** * 读取文件前几个字节 判断文件类型 * * @return String */ function checkTitle($filename) { $file = fopen($filename, "rb"); $bin = fread($file, 2); //只读2字节 fclose($file); $strInfo = @unpack("c2chars", $bin); $typeCode = intval($strInfo['chars1'].$strInfo['chars2']); $fileType = ''; …
ubuntu 9.10快速安装nginx+php环境手记[54chen科学院]
我(54chen)因为场景需要,特地在ubuntu9.10中安装nginx+php的环境,要快速不要优化,记录如下: sudo apt-get install php5 php5-cgi php5-cli php5-gd php5-curl php5-mysql nginx sudo apt-get install lighttpd spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php-cgi 上面的操作解读: 1.安装php nginx 2.安装lighttpd,为啥要安装这个,因为他有个spawn-fcgi,因为apt下来的php不是php-fpm。 3.用spawn-fcgi启动php-cgi在9000端口监听。 sudo vim /etc/php5/cgi/php.ini 修改php.ini文件 cgi.fix_pathinfo=1; 这样php-cgi方能正常使用SCRIPT_FILENAME这个变量 sudo …
“先进的互联互通技术”–使用ice联通php和java [part 2 client]
[信曾哥,转载的都给我保留原链接地址:http://www.54chen.com/784-the-advanced-interconnection-technology-the-use-of-ice-unicom-php-and-java-part-2-client/] 这一part的目标是建立起ice的php环境,以及写PHP代码调用上一part中的10000端口的java代码。 在part 1中,我们建立了一个Server在10000端口等着我们,地址见 http://www.54chen.com/779-the-advanced-interconnection-technology-the-use-of-ice-unicom-php-and-java/ 建立带ice的PHP环境 不管是nginx+php-cgi还是别的啥,这里只表述php编译过程。 本例以 Ice 3.2.1为例 下载的位置和参考的文档都在下面 http://www.zeroc.com/download_3_2_1.html http://www.zeroc.com/doc/Ice-3.2.1/manual/Slice.5.10.html#50592 1.下载IcePHP包,进行编译。在此之前,你还需要安装Ice,记好使用3.2.1版本,如果你是用的tar.gz包,在/opt/Ice-3.2.1/,如果是rpm包,在/usr/下。 2.运行 export ICE_HOME=/opt/Ice-3.2.1 设置好ICE_HOME后进IcePHP目录直接make make install。 此时在/opt/
“先进的互联互通技术”--使用ice联通php和java [part 1 server]
PHP没有中间件,导致了对很多麻烦。比如,对数据库的操作必须要链接数据库,然后做SQL操作。WEB程序直接操作数据库的方法,这样会带来很多人为因素的事故隐患,以及管理上的麻烦,尤其是对大型的网站应用来说。规范的模式应该是,WEB程序传递参数到一个服务程序上,由该服务程序进行判断并最终操作数据库或者其它数据文件,这样做到了明确权限控制,和业务类型集中管理。去年伴随着ICE的推出,PHP终于有了可以使用的中间件。在PHP的发展史上,应该是一个里程碑。 ICE入门 ICE(Internet Communications Engine 网络通讯引擎),是由Corba原核心成员开发的一个开源中间件,据称其各种性能完全优于Corba。除此之外,我们第一次见到了直接支持PHP的中间件。 ICE的安装,去http://www.zeroc.com/download.html 下载一个Ice针对PHP的安装包,按照说明安装上。 ICE的使用:使用Slice(ICE的一种简单语法脚本),编写一个xx.ice文件。可以使用slice2cpp或slice2java等生成一个cpp或java的ICE框架程序,然后在这个框架程序中进行代码编写。ICE在PHP的应用继承了PHP的一贯传统——简单,只需要在php.ini中加载该xx.ice,在PHP中就可以使用了。 ICE在PHP应用中的缺点,无法使用PHP编写Server端,其实这也是PHP的一个缺陷——没有完善的多进程和多线程管理机制。因此,Server端可以采用ICE所支持的其它语言进行编写,比如JAVA/C++/VB/PYTHON等。 开始传说中的“
[五四陈小技巧]全站换域名时利用nginx和javascript做简单友好的换域名跳转通知
在经过上一波的xiaonei.com转renren.com后,昨夜再次迎来新一波的kaixin->renren code的过程,期间有域名要求用新的域名,并且要老域名有跳转有提示,于是采用了下面的办法。 老域名是 old.com 新域名是 new.com 迁移挂维护的过程就略过了,直接说重点, 第一步,修改nginx.conf,删除原来old.com的定义,增加: server { listen 80; server_name old.com; location / { root /old; if (!-e $request_filename){ rewrite ^/(.*)?$ /index.html?t=$1 last; } } } 第二步,在/old下放进一个index.html,代码如下: <div class="all-error"> <h1><span>old换名啦!</span> <br> 原来old更名为new,请放心不会影响您的使用,新的地址为<a href="http://new.com" id="link">new.c om</a>谢谢您的支持! </h1> <p> …
How to: redirect WordPress RSS feeds to feedburner with nginx[原创]
[转载请注明:http://www.54chen.com/727-how-to-redirect-wordpress-rss-feeds-to-feedburner-with-nginx-original/ 作者:陈臻] 可能有大多数朋友都会在用wordpress的时候需要从原始的feed地址转到feedburner上,看到一个老外的博客上说了apache的htaccess的修改方案: <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC] RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC] RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/-aboutJavaAndPhp [R=302,NC,L] </IfModule> 心想这nginx也不能没个着落下,于是就试验了一下,nginx作如下修改即可: if ($http_user_agent !~ FeedBurner) { rewrite ^/feed$ http://feeds.feedburner.com/-aboutJavaAndPhp redirect; rewrite ^/feed/$ http://feeds.feedburner.com/-aboutJavaAndPhp redirect; } 都是302跳,可能对seo不
wordpress nginx php-cgi mysql在128m内存下的vps安装和优化手记[原创]
[ 文章作者:陈臻 本文版本:v1.0 最后修改:2009.8.2 转载请注明原文链接:http://www.54chen.com/688-wordpress-nginx-php-cgi-mysql-memory-in-the-128m-to-install-and-optimize-the-vps-notes/ ] 选取CentOS,因为它是号称最安全及性能都相对较好的Linux系统。系统内存128m,系统用掉30m,有100m左右可用(如图1所示),swap已经有256M,硬盘为5G,除去系统后大约有4G可供捣腾。 图1。 首先,在空白的系统上使用下面的命令,安装gcc等一堆工具和后面php会用到的一些包: yum -y install gcc gcc-c++ autoconf 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 …
SEARCH
Update
- 54chen Twitter memo 2012-02-12
- 人肉解析riak_admin join
- go语言安装手记
- 54chen Twitter memo 2012-02-05
- Riak Core说明
- maven库nexus拖不到jar包小记
- 服务接入层小结
- 54chen Twitter memo 2012-01-15
- nginx防hashdos模块使用帮助
- 54chen Twitter memo 2012-01-08
- nginx防hashdos模块释出
- 54chen Twitter memo 2012-01-01
- 水煮鱼杯2011年度不得不总结的十件事
- 年终攻击hashDos-哈希表多碰撞实现拒绝服务-破解办法
- 54chen Twitter memo 2011-12-25
