显示标签为“php”的博文。显示所有博文
显示标签为“php”的博文。显示所有博文

2009年5月15日星期五

PHP常用的数组操作函数

PHP常用的数组操作函数

本类函数允许用多种方法来操作数组和与之交互。数组的本质是储存,管理和操作一组变量。
PHP 支持一维和多维数组,可以是用户创建或由另一个函数创建。有一些特定的数据库处理函数可以从数据库查询中生成数组,还有一些函数返回数组。

array_change_key_case — 返回字符串键名全为小写或大写的数组
array_chunk — 将一个数组分割成多个
array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
array_count_values — 统计数组中所有的值出现的次数
array_diff_assoc — 带索引检查计算数组的差集
array_diff_key — 使用键名比较计算数组的差集
array_diff_uassoc — 用用户提供的回调函数做索引检查来计算数组的差集
array_diff_ukey — 用回调函数对键名比较计算数组的差集
array_diff — 计算数组的差集
array_fill_keys — Fill an array with values, specifying keys
array_fill — 用给定的值填充数组
array_filter — 用回调函数过滤数组中的单元
array_flip — 交换数组中的键和值
array_intersect_assoc — 带索引检查计算数组的交集
array_intersect_key — 使用键名比较计算数组的交集
array_intersect_uassoc — 带索引检查计算数组的交集,用回调函数比较索引
array_intersect_ukey — 用回调函数比较键名来计算数组的交集
array_intersect — 计算数组的交集
array_key_exists — 检查给定的键名或索引是否存在于数组中
array_keys — 返回数组中所有的键名
array_map — 将回调函数作用到给定数组的单元上
array_merge_recursive — 递归地合并一个或多个数组
array_merge — 合并一个或多个数组
array_multisort — 对多个数组或多维数组进行排序
array_pad — 用值将数组填补到指定长度
array_pop — 将数组最后一个单元弹出(出栈)
array_product — 计算数组中所有值的乘积
array_push — 将一个或多个单元压入数组的末尾(入栈)
array_rand — 从数组中随机取出一个或多个单元
array_reduce — 用回调函数迭代地将数组简化为单一的值
array_reverse — 返回一个单元顺序相反的数组
array_search — 在数组中搜索给定的值,如果成功则返回相应的键名
array_shift — 将数组开头的单元移出数组
array_slice — 从数组中取出一段
array_splice — 把数组中的一部分去掉并用其它值取代
array_sum — 计算数组中所有值的和
array_udiff_assoc — 带索引检查计算数组的差集,用回调函数比较数据
array_udiff_uassoc — 带索引检查计算数组的差集,用回调函数比较数据和索引
array_udiff — 用回调函数比较数据来计算数组的差集
array_uintersect_assoc — 带索引检查计算数组的交集,用回调函数比较数据
array_uintersect_uassoc — 带索引检查计算数组的交集,用回调函数比较数据和索引
array_uintersect — 计算数组的交集,用回调函数比较数据
array_unique — 移除数组中重复的值
array_unshift — 在数组开头插入一个或多个单元
array_values — 返回数组中所有的值
array_walk_recursive — 对数组中的每个成员递归地应用用户函数
array_walk — 对数组中的每个成员应用用户函数
array — 新建一个数组
arsort — 对数组进行逆向排序并保持索引关系
asort — 对数组进行排序并保持索引关系
compact — 建立一个数组,包括变量名和它们的值
count — 计算数组中的单元数目或对象中的属性个数
current — 返回数组中的当前单元
each — 返回数组中当前的键/值对并将数组指针向前移动一步
end — 将数组的内部指针指向最后一个单元
extract — 从数组中将变量导入到当前的符号表
in_array — 检查数组中是否存在某个值
key — 从关联数组中取得键名
krsort — 对数组按照键名逆向排序
ksort — 对数组按照键名排序
list — 把数组中的值赋给一些变量
natcasesort — 用“自然排序”算法对数组进行不区分大小写字母的排序
natsort — 用“自然排序”算法对数组排序
next — 将数组中的内部指针向前移动一位
pos — current() 的别名
prev — 将数组的内部指针倒回一位
range — 建立一个包含指定范围单元的数组
reset — 将数组的内部指针指向第一个单元
rsort — 对数组逆向排序
shuffle — 将数组打乱
sizeof — count() 的别名
sort — 对数组排序
uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
uksort — 使用用户自定义的比较函数对数组中的键名进行排序
usort — 使用用户自定义的比较函数对数组中的值进行排序




-------------------------------------------
i3server
i3server
www.86-00.com

PHP操作数组的全部函数

一、数组操作的基本函数
数组的键名和值
array_values($arr);获得数组的值
array_keys($arr);获得数组的键名
array_flip($arr);数组中的值与键名互换(如果有重复前面的会被后面的覆盖)
in_array(”apple”,$arr);在数组中检索apple
array_search(”apple”,$arr);在数组中检索apple ,如果存在返回键名
array_key_exists(”apple”,$arr);检索给定的键名是否存在数组中
isset($arr[apple]):检索给定的键名是否存在数组中

数组的内部指针
current($arr);返回数组中的当前单元
pos($arr);返回数组中的当前单元
key($arr);返回数组中当前单元的键名
prev($arr);将数组中的内部指针倒回一位
next($arr);将数组中的内部指针向前移动一位
end($arr);将数组中的内部指针指向最后一个单元
reset($arr;将数组中的内部指针指向第一个单元
each($arr);将返回数组当前元素的一个键名/值的构造数组,并使数组指针向前移动一位
list($key,$value)=each($arr);获得数组当前元素的键名和值

数组和变量之间的转换
extract($arr);用于把数组中的元素转换成变量导入到当前文件中,键名当作变量名,值作为变量值
注:(第二个参数很重要,可以看手册使用)使用方法 echo $a;
compact(var1,var2,var3);用给定的变量名创建一个数组

二、数组的分段和填充
数组的分段
array_slice($arr,0,3);可以将数组中的一段取出,此函数忽略键名
array_splice($arr,0,3,array(”black”,”maroon”));可以将数组中的一段取出,与上个函数不同在于返回的序列从原数组中删除


分割多个数组
array_chunk($arr,3,TRUE);可以将一个数组分割成多个,TRUE为保留原数组的键名

数组的填充
array_pad($arr,5,’x');将一个数组填补到制定长度

三、数组与栈
array_push($arr,”apple”,”pear”);将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素的个数
array_pop($arr);将数组栈的最后一个元素弹出(出栈)

四、数组与列队
array_shift($arr);数组中的第一个元素移出并作为结果返回(数组长度减1,其他元素向前移动一位,数字键名改为从零技术,文字键名不变)
array_unshift($arr,”a”,array(1,2));在数组的开头插入一个或多个元素

五、回调函数
array_walk($arr,’function’,'words’);使用用户函数对数组中的每个成员进行处理(第三个参数传递给回调函数function)
array_mpa(”function”,$arr1,$arr2);可以处理多个数组(当使用两个或更多数组时,他们的长度应该相同)
array_filter($arr,”function”);使用回调函数过滤数组中的每个元素,如果回调函数为TRUE,数组的当前元素会被包含在返回的结果数组中,数组的键名保留不变
array_reduce($arr,”function”,”*”);转化为单值函数(*为数组的第一个值)

六、数组的排序
通过元素值对数组排序
sort($arr);由小到大的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
rsort($arr);由大到小的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
usort($arr,”function”);使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)忽略键名的数组排序
asort($arr);由小到大的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
arsort($arr);由大到小的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
uasort($arr,”function”);使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)保留键名的数组排序

通过键名对数组排序
ksort($arr);按照键名正序排序
krsort($arr);按照键名逆序排序
uksort($arr,”function”);使用用户自定义的比较函数对数组中的键名进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)

自然排序法排序
natsort($arr);自然排序(忽略键名)
natcasesort($arr);自然排序(忽略大小写,忽略键名)

七、数组的计算
数组元素的求和
array_sum($arr);对数组内部的所有元素做求和运算

数组的合并
array_merge($arr1,$arr2);合并两个或多个数组(相同的字符串键名,后面的覆盖前面的,相同的数字键名,后面的不会做覆盖操作,而是附加到后面)
“+”$arr1+$arr2;对于相同的键名只保留后一个
array_merge_recursive($arr1,$arr2);递归合并操作,如果数组中有相同的字符串键名,这些值将被合并到一个数组中去。 如果一个值本身是一个数组,将按照相应的键名把它合并为另一个数组。当数组具有相同的数组键名时,后一个值将不会覆盖原来的值,而是附加到后面

数组的差集
array_diff($arr1,$arr2);返回差集结果数组
array_diff_assoc($arr1,$arr2,$arr3);返回差集结果数组,键名也做比较

数组的交集
array_intersect($arr1,$arr2);返回交集结果数组
array_intersect_assoc($arr1,$arr2);返回交集结果数组,键名也做比较

八、其他的数组函数
range(0,12);创建一个包含指定范围单元的数组
array_unique($arr);移除数组中重复的值,新的数组中会保留原始的键名
array_reverse($arr,TRUE);返回一个单元顺序与原数组相反的数组,如果第二个参数为TRUE保留原来的键名
//srand((float)microtime()*10000000); 随机种子触发器
array_rand($arr,2);从数组中随机取出一个或 多个元素
shuffle($arr);将数组的顺序打乱


-------------------------------------------
i3server
i3server
www.86-00.com

2009年4月19日星期日

i3原创: php 常用数组操作函数

1 . array_values() 取数组值:
例子:
$array = array("size" => "XL", "color" => "gold");
print_r(array_values($array));
?>

The above example will output:

Array
(
[0] => XL
[1] => gold
)

--------------------------
2. array_keys() 取数组键值
例子:
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));

$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));
he above example will output:

Array
(
[0] => 0
[1] => color
)
Array
(
[0] => 0
[1] => 3
[2] => 4
)






-------------------------------------------
i3server
i3server
www.86-00.com

2009年3月12日星期四

i3: php常用的几个数组函数

数组运用的熟练有时候能解决很多问题。熟悉相关函数就能事半功倍。
看看下面有关数组的函数你是否都熟悉呢?


一、数组操作的基本函数
数组的键名和值
array_values($arr);获得数组的值
array_keys($arr);获得数组的键名
array_flip($arr);数组中的值与键名互换(如果有重复前面的会被后面的覆盖)
in_array("apple",$arr);在数组中检索apple
array_search("apple",$arr);在数组中检索apple ,如果存在返回键名
array_key_exists("apple",$arr);检索给定的键名是否存在数组中
isset($arr[apple]):检索给定的键名是否存在数组中

数组的内部指针
current($arr);返回数组中的当前单元
pos($arr);返回数组中的当前单元
key($arr);返回数组中当前单元的键名
prev($arr);将数组中的内部指针倒回一位
next($arr);将数组中的内部指针向前移动一位
end($arr);将数组中的内部指针指向最后一个单元
reset($arr;将数组中的内部指针指向第一个单元
each($arr);将返回数组当前元素的一个键名/值的构造数组,并使数组指针向前移动一位
list($key,$value)=each($arr);获得数组当前元素的键名和值

数组和变量之间的转换
extract($arr);用于把数组中的元素转换成变量导入到当前文件中,键名当作变量名,值作为变量值
注:(第二个参数很重要,可以看手册使用)使用方法 echo $a;
compact(var1,var2,var3);用给定的变量名创建一个数组

二、数组的分段和填充
数组的分段
array_slice($arr,0,3);可以将数组中的一段取出,此函数忽略键名
array_splice($arr,0,3,array("black","maroon"));可以将数组中的一段取出,与上个函数不同在于返回的序列从原数组中删除

分割多个数组
array_chunk($arr,3,TRUE);可以将一个数组分割成多个,TRUE为保留原数组的键名

数组的填充
array_pad($arr,5,'x');将一个数组填补到制定长度

三、数组与栈
array_push($arr,"apple","pear");将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素的个数
array_pop($arr);将数组栈的最后一个元素弹出(出栈)

四、数组与列队
array_shift($arr);数组中的第一个元素移出并作为结果返回(数组长度减1,其他元素向前移动一位,数字键名改为从零技术,文字键名不变)
array_unshift($arr,"a",array(1,2));在数组的开头插入一个或多个元素

五、回调函数
array_walk($arr,'function','words');使用用户函数对数组中的每个成员进行处理(第三个参数传递给回调函数function)
array_mpa("function",$arr1,$arr2);可以处理多个数组(当使用两个或更多数组时,他们的长度应该相同)
array_filter($arr,"function");使用回调函数过滤数组中的每个元素,如果回调函数为TRUE,数组的当前元素会被包含在返回的结果数组中,数组的键名保留不变
array_reduce($arr,"function","*");转化为单值函数(*为数组的第一个值)

六、数组的排序
通过元素值对数组排序
sort($arr);由小到大的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
rsort($arr);由大到小的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
usort($arr,"function");使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)忽略键名的数组排序
asort($arr);由小到大的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
arsort($arr);由大到小的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
uasort($arr,"function");使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)保留键名的数组排序

通过键名对数组排序
ksort($arr);按照键名正序排序
krsort($arr);按照键名逆序排序
uksort($arr,"function");使用用户自定义的比较函数对数组中的键名进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)

自然排序法排序
natsort($arr);自然排序(忽略键名)
natcasesort($arr);自然排序(忽略大小写,忽略键名)

七、数组的计算
数组元素的求和
array_sum($arr);对数组内部的所有元素做求和运算

数组的合并
array_merge($arr1,$arr2);合并两个或多个数组(相同的字符串键名,后面的覆盖前面的,相同的数字键名,后面的不会做覆盖操作,而是附加到后面)
“+”$arr1+$arr2;对于相同的键名只保留后一个
array_merge_recursive($arr1,$arr2);递归合并操作,如果数组中有相同的字符串键名,这些值将被合并到一个数组中去。 如果一个值本身是一个数组,将按照相应的键名把它合并为另一个数组。当数组具有相同的数组键名时,后一个值将不会覆盖原来的值,而是附加到后面

数组的差集
array_diff($arr1,$arr2);返回差集结果数组
array_diff_assoc($arr1,$arr2,$arr3);返回差集结果数组,键名也做比较

数组的交集
array_intersect($arr1,$arr2);返回交集结果数组
array_intersect_assoc($arr1,$arr2);返回交集结果数组,键名也做比较

八、其他的数组函数
range(0,12);创建一个包含指定范围单元的数组
array_unique($arr);移除数组中重复的值,新的数组中会保留原始的键名
array_reverse($arr,TRUE);返回一个单元顺序与原数组相反的数组,如果第二个参数为TRUE保留原来的键名
//srand((float)microtime()*10000000); 随机种子触发器
array_rand($arr,2);从数组中随机取出一个或 多个元素
shuffle($arr);将数组的顺序打乱

-------------------------------------------
By i3server
www.i3.net.cn
www.86-00.com

2008年8月12日星期二

eAccelerator binaries for PHP 5.2.5 (windows builds)

eAccelerator是一个的免费、开源的PHP模块,它能够为提供PHP加速、优化、加码、和动态内容缓存功能。它通过存储PH脚本编译后的状态而加快执行PHP脚本的速度,而不需要频繁的编译这个PHP脚本。而且它能优化PHP脚本,以提高执行PHP的速度。eAccelerator特色是减少了服务器负载、使PHP脚本加速1-10倍。

you can download the eAccelerator binaries for your version of PHP 5.2.5
//对应你的php版本下载相应的dll文件.如果是PHP 5.2.5请下载eAccelerator 0952 for PHP 5.2.5 eLoader 0952 for PHP 5.2.5

Attachment Size
eAccelerator 095 Final for PHP 5.1.6 120 KB
095_final_useful _files.zip 41.97 KB
eAccelerator 0.9.5 Final for PHP 5.1.5 120 KB
eAccelerator 095 Final for PHP 5.1.6 Optimized for Size 108 KB
eAccelerator 095 Final for PHP 5.2.0 120 KB
eAccelerator 095 Final for PHP 5.0.5 120 KB
eAccelerator 095 for PHP 5.0.4 (OLDER PHP VERSION) 120 KB
eAccelerator 0951 for PHP 5.2.2 120 KB
eAccelerator 0951 for PHP 5.2.1 120 KB
eAccelerator 0951 for PHP 5.2.2 Built with VC2005 SP1 128 KB
eAccelerator 0951 for PHP 5.1.4 120 KB
eAccelerator 0951 for PHP 5.2.3 120 KB
eAccelerator 0951 for PHP 5.2.0 (OLDER PHP VERSION) 120 KB
eAccelerator 0951 for PHP 5.2.4 120 KB
eLoader 0951 for PHP 5.2.4 28 KB
0952_final_useful _files.zip 42.27 KB
eLoader 0952 for PHP 5.2.3 28 KB
eAccelerator 0952 for PHP 5.2.3 120 KB
eLoader0952_5.2.4.dll 28 KB
eAccelerator 0952 for PHP 5.2.4 120 KB
eAccelerator 0952 for PHP 5.2.5 120 KB
eLoader 0952 for PHP 5.2.5 28 KB


We have been using this PHP accelerator (0.9.5), on multiple servers, for a long time. It's used on some high traffic sites without any problem.
Install:
a) Download a copy of eAccelerator that is compatible with your version of PHP.
This can be an issue with eAccelerator. Sometimes it can take a little time before the Windows binaries are available for the most recent version of PHP.
b) Copy a compatible eaccelerator.dll to your PHP extensions folder (like: c:\php\extensions replace with your actual folder location).
Make sure the configuration directive extension_dir in your php.ini is properly pointing to your extensions folder.
Like: extension_dir = "c:/php/extensions"
//将dll文件复制到c:/php/ext下.
c) Create a folder (with the appropriate permissions) for the temporary cached files.
For example: D:\tmp\eaccelerator
//创建tmp目录 权限可写
d) Add the following to your php.ini (as the first loaded extension):
.
.
.
;extension=php_yaz.dll
;extension=php_zip.dll
//编辑php.ini 在extension=php_zip.dll之后添以红字部分

[eaccelerator]
zend_extension_ts="C:\php\ext\eAccelerator0952_5.2.4.dll"
zend_extension="C:\php\ext\eAccelerator0952_5.2.4.dll"
eaccelerator.cache_dir = "D:\tmp\eaccelerator"
eaccelerator.shm_size="64"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.debug ="0"
eaccelerator.check_mtime="1"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl ="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.keys= "shm"
eaccelerator.sessions="shm"
eaccelerator.c
zend_extension="C:\php\ext\eLoader0952_5.2.4.dll"

;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
.
.
.

e) Restart your Web Server.You can see..D:\tmp\eaccelerator have folders
//重启iis 你会看到tmp目录下有相应的文件出现
C:\tmp\eaccelerator
0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f

f)testing eAccelerator
测试 eAccelerator
C:\Documents and Settings\Administrator>php -v
PHP 5.2.5 (cli) (built: Nov 8 2007 23:18:51)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with eAccelerator v0.9.5.2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies
And You can see phpinfo.
你也可以通过phpinfo.php查看是否成功

使 eaccelerator 与 Zend Optimizer 和平相处

使 eaccelerator 与 Zend Optimizer 和平相处


Zend Optimizer 是Zend官方发布的免费PHP优化器,国内外大多数用户对这一产品的唯一评价是“Zend Loader”。这种说法是因为该产品所谓的优化只是提供了一个页面压缩输出功能,其最主要的目的是为Zend相继推出的PHP代码“混淆器”铺桥搭路,让混淆后的PHP代码可以在计算机上得到执行。如果您打算真正获得高效PHP缓存,建议您选择 eaccelerator 。

Zend的市场推广能力非常之强,这样致使国内外大多数人采用Zend混淆器加密PHP代码。如果想使用被Zend混淆器加密过的代码,那么你必须安装Zend Optimizer。这就引出了我们的主要问题,如何既可以获得执行Zend混淆器加密代码的能力,又可以获得 eaccelerator 的高效率优化。

值得庆幸的是 eaccelerator 提供了对Zend扩展界面的支持,它可以和Zend Optimizer和平相处。让您轻松达到 “既可以获得执行Zend混淆器加密代码的能力,又可以获得 eaccelerator 的高效率优化”的目的。

我习惯性以ZEND扩展的方式配置该模块,下面是我使用的配置(官方标配):

在PHP.INI文件段,eaccelerator的配置内容写在Zend Optimizer之前,并做如下配置:

[Zend]
zend_extension_ts="d:\xampp\xampp\php\ext\eAccelerator.dll"
;eAccelerator加速器路径部分PHP版本此处使用 zend_extension
eaccelerator.shm_size="16"
;eAccelerator使用的内存
eaccelerator.cache_dir="D:\xampp\xampp\tmp"
;eAccelerator缓冲目录,记得给web server可读写权限。
eaccelerator.enable="1"
;eAccelerator是否启用
eaccelerator.optimizer="1"
;eAccelerator优化功能
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
zend_extension_ts = "d:\xampp\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts = "d:\xampp\xampp\php\zendOptimizer\lib\Optimizer"
;zend_optimizer.enable_loader = 1
;开启Zend Loader以解析Zend混淆器加密过的PHP代码。默认开启,此行配置只是起到说明作用。
zend_optimizer.optimization_level=1023
;禁止优化功能,避免冲突。
;zend_optimizer.optimization_level=15
;zend_optimizer.license_path =

window+lighttpd+php 配置经验简谈

网上找了很多资料,但都不是很全,这里汇总一下
准备工作:
1 从 lighttpd 的官方网下载window版的exe安装版
2 php 的可以是 window下的安装版或解压版都可以

安装步骤:
1 安装lighttpd,安装到指定目录下比如C:\Server\lighttp1.4.19-1\,本人装的LightTPD-1.4.19-1-Win32-SSL.exe
2 解压或安装php到指定目录下,比如C:/Server/php5/

接下来就是配置了
第一步把 C:\Server\lighttp1.4.19-1\conf\lighttpd-inc.conf打开
把cgi的modules放开
server.modules = (
"mod_access",
"mod_accesslog",
"mod_alias",
# "mod_auth",
"mod_cgi",
# "mod_cml",
# "mod_compress",
# "mod_dirlisting",
# "mod_evasive",
# "mod_evhost",
# "mod_expire",
# "mod_extforward",
"mod_fastcgi",
# "mod_flv_streaming",
# "mod_indexfile",
# "mod_magnet",
# "mod_mysql_vhost",
# "mod_proxy",
# "mod_redirect",
# "mod_rewrite",
## "mod_rrdtool",
"mod_scgi",
# "mod_secdownload",
# "mod_setenv",
# "mod_simple_vhost",
"mod_ssi",
# "mod_staticfile",
"mod_status",
## "mod_trigger_b4_dl",
# "mod_userdir",
# "mod_usertrack",
# "mod_webdav"
)


#修改这里
cgi.assign = ( ".php" => "C:/Server/php5/php-cgi.exe" )

lighttpd的配置先到这里,接下来看看php的配置

php的主要是php.ini文件的配置,它是是否配置成功的关键
cgi.force_redirect = 1
cgi.fix_pathinfo=1
这两个把前面的分号去掉

找到doc_root= 前面加;号
;extension=php_sockets.dll 把分号去掉,其他的dll根据需要去掉分号即可

注:到此为止貌似已经配置完成了,但发现lighttpd的默认虚拟目录是HTDOCS/
这种情况下测试php程序是行不通的,这个可能是个lighttpd的win下的bug吧
所以把虚拟路径改变一下,最好不在安装目录下,比如:server.document-root = "D:/phpv"

好了 到此为止配置已完成,
启动lighttpd 运行C:\Server\lighttp1.4.19-1\bin\Service-Install.exe
(停止是Service-Remove.exe)或C:\Server\lighttp1.4.19-1\TestMode.bat
可以了
我们在D:/phpv 下建立一个test.php
写入.
访问 http://1270.0.1/test.php
看到php信息页面就是配置成功了

2008年6月25日星期三

PHP 去掉回车换行符

通过 str_replace实现 回车换行操作
$str = str_replace(array("\r","\n"),array('',''), $str);