Archive for the ‘PHP’ Category

php fwrite() 无法写文件,原因可能有几种?

Wednesday, September 30th, 2009




比较特别的原因之一:磁盘接近满了。

PHP导入导出Excel方法小结

Thursday, April 16th, 2009




最近因项目需要,需要开发一个模块,把系统中的一些数据导出成Excel,修改后再导回系统。就趁机对这个研究了一番,下面进行一些总结。 基本上导出的文件分为两种: 1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已。修改这种文件后再保存,通常会提示你是否要转换成Excel文件。 优点:简单。 缺点:难以生成格式,如果用来导入需要自己分别编写相应的程序。 2:Excel格式,与类Excel相对应,这种方法生成的文件更接近于真正的Excel格式。 如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourStr从utf-8转换成了gb2312: $yourStr = mb_convert_encoding("gb2312", "UTF-8", $yourStr); 下面详细列举几种方法。 一、PHP导出Excel 1:第一推荐无比风骚的PHPExcel,官方网站: http://www.codeplex.com/PHPExcel 导入导出都成,可以导出office2007格式,同时兼容2003。 下载下来的包中有文档和例子,大家可以自行研究。 抄段例子出来: <?php /** * PHPExcel * * Copyright (C) 2006 - 2007 PHPExcel * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at ...

php json_encode注意问题

Tuesday, April 7th, 2009




json_encode  一定要用utf8编码,否则中文显示不了

php自带SOAP扩展调用web service 分享[转]

Thursday, March 19th, 2009


提起php调用web service,在php4年代的人会立即想到用nusoap调用,这个nusoap是个好东东,不过年久未更新,恐其中会有众多漏洞了,正好已经进入了php5年代了,调用web service用自带的扩展岂不快哉! 前提:打开php5的web service扩展 环境需求: This extension makes use of the GNOME xml library. Download and install this library. You will need at least libxml-2.5.4. Linux下, This extension is only available if PHP was configured with --enable-soap Windows下: php.ini文件中 extension=php_soap.dll 去掉注释即可 其次:调用实践,以下是俺近期调用的算是一些总结吧 手册摘录: SoapClient->__soapCall() 说明 class SoapClient { mixed __soapCall ( string function_name, ...

PHP Big5 Utf-8 GB2312 相互转码解决办法

Thursday, December 4th, 2008


编写 PHP 代码的过程中,经常会遇到需要对中文转码的问题,如 GB2312 <=> Unicode、GB2312 <=> Big5 等等。如果 PHP 编译时带有 mbstring 的话,可以使用 Multi-Byte String Function 实现部分转码工作。然而由于很多虚拟主机不支持 mbstring,或者 mbstring 的编译、配置过于麻烦,很多 PHP 代码无法使用这一序列的函数。 最近为了解决这个问题,找到一个不错的项目:PHP News Reader,这是一个基于 WEB 的新闻阅读器,支持基于 NNTP (RFC 977) 协议的新闻文章的阅读、发布、删除、回复等功能。这个项目实现了 GB2312 Big5 Unicode(UTF-8) 之间的相互转码,这个正是我所关心的部分。 使用 CVS 客户端(Linux 下直接用命令行就行,Windows 下推荐使用 Tortoise CVS)将项目的代码 Check Out 出来: # cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/pnews login Logging in to :pserver:anonymous@cvs.sourceforge.net:2401/cvsroot/pnews CVS password: ...

zenphoto代码解读

Wednesday, June 25th, 2008


发现zenphoto是一个不错的开源相册程序。最近开始逐渐阅读一下其代码,方便以后对其定制。 程序安装完成之后默认是启用urlrewrite的,可登录后台设置是否启用rewrite。网站前台采用单一入口,都是通过在index.php进行控制。可以向其传递album、image等参数,如果传递p参数,则会运行当前模板下的文件名为p参数值的php文件。 待续……

php命令行的参数使用

Wednesday, May 14th, 2008


原来程序使用list.php?n=1来实现一个功能,现在需要让其自动执行。 在命令行下,cd /www/hx/;/usr/local/bin/php /www/hx/list.php 但list.php要如何获取参数呢? 通过浏览文档,PHP 的命令行模式: http://www.itlearner.com/code/php_manual/features.commandline.html 知道了在使用命令行时,会产生$argc 和 $argv两个参数。$argc就是所有的参数个数+1,$argv则为保 存所有参数的数组。$argv[0]为脚本的名称,所以$argc是参数个数+1,$argv[1]则为第一个参数的值。 现在list.php只需要加一个参数,开始改编list.php的获取程序。 原获取程序一句话,$num = $_GET[$n]; 现改为: if($argc==2){ $num = $argv[1]; }else{ $num = $_GET['n']; } 这样在命令行下,cd /www/hx/;/usr/local/bin/php /www/hx/list.php 1 就可以与在浏览器上输入list.php?n=1实现相同的功能了。

linux主机也中木马了?

Monday, April 21st, 2008


最近搜索site:ideagrace.com的时候,在google发现竟然有恶意软件的提示。仔细查发现很多htm页面被放了不可见iframe代码。。得赶快杀毒了。目前尚不知漏洞出在哪里。

抽象工厂模式

Wednesday, January 9th, 2008


抽象工厂模式(Abstact Factory)是一种常见的软件设计模式。该模式为一个产品族提供了统一的创建接口。当需要这个产品族的某一系列的时候,可以从抽象工厂中选出相应的系列创建一个具体的工厂类。 目录 ...

抽象的工厂模式

Wednesday, January 9th, 2008


<?php     /**     * 抽象工厂模式     *     * @author 小黑米 edwardhey@163.com     * @package modules     * @version 1.0     */     interface line{        public function human();        public function animal();    }         class YangFactory implements line {        public function human(){            return new Man();        }        public function animal(){            return new Bull();        }    }         class YinFactory implements ...