Archive for the ‘PHP’ Category
Wednesday, September 30th, 2009
比较特别的原因之一:磁盘接近满了。
Posted in PHP | No Comments »
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 ...
Posted in PHP | No Comments »
Tuesday, April 7th, 2009
json_encode 一定要用utf8编码,否则中文显示不了
Posted in PHP | No Comments »
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, ...
Posted in PHP | No Comments »
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: ...
Posted in PHP | No Comments »
Wednesday, June 25th, 2008
发现zenphoto是一个不错的开源相册程序。最近开始逐渐阅读一下其代码,方便以后对其定制。
程序安装完成之后默认是启用urlrewrite的,可登录后台设置是否启用rewrite。网站前台采用单一入口,都是通过在index.php进行控制。可以向其传递album、image等参数,如果传递p参数,则会运行当前模板下的文件名为p参数值的php文件。
待续……
Posted in PHP | No Comments »
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实现相同的功能了。
Posted in PHP | No Comments »
Monday, April 21st, 2008
最近搜索site:ideagrace.com的时候,在google发现竟然有恶意软件的提示。仔细查发现很多htm页面被放了不可见iframe代码。。得赶快杀毒了。目前尚不知漏洞出在哪里。
Posted in PHP | 1 Comment »
Wednesday, January 9th, 2008
抽象工厂模式(Abstact Factory)是一种常见的软件设计模式。该模式为一个产品族提供了统一的创建接口。当需要这个产品族的某一系列的时候,可以从抽象工厂中选出相应的系列创建一个具体的工厂类。
目录
...
Posted in PHP | No Comments »
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 ...
Posted in PHP | No Comments »