1、遍历文件夹
<?php
function scan($path){
foreach(glob($path) as $p){
if(is_dir($p)){
scan($p.'/*');
}
else if(is_file($p)){
echo "Filename: " . $p . "<br />";
}else{
break;
}
}
}
scan('C:/*');
?>
2、PHP 16进制转换为rgb
function hex2rgb($hexColor) {
$color = $hexColor;
if (strlen($color) > 3) {
$rgb = array(
'r' => hexdec(substr($color, 0, 2)),
'g' => hexdec(substr($color, 2, 2)),
'b' => hexdec(substr($color, 4, 2))
);
} else {
$color = $hexColor;
$r = substr($color, 0, 1) . substr($color, 0, 1);
$g = substr($color, 1, 1) . substr($color, 1, 1);
$b = substr($color, 2, 1) . substr($color, 2, 1);
$rgb = array(
'r' => hexdec($r),
'g' => hexdec($g),
'b' => hexdec($b)
);
}
return $rgb;
}
3、获得客户端ip
function getip() {
if (isset ( $_SERVER )) {
if (isset ( $_SERVER ['HTTP_X_FORWARDED_FOR'] )) {
$aIps = explode ( ',', $_SERVER ['HTTP_X_FORWARDED_FOR'] );
foreach ( $aIps as $sIp ) {
$sIp = trim ( $sIp );
if ($sIp != 'unknown') {
$sRealIp = $sIp;
break;
}
}
} elseif (isset ( $_SERVER ['HTTP_CLIENT_IP'] )) {
$sRealIp = $_SERVER ['HTTP_CLIENT_IP'];
} else {
if (isset ( $_SERVER ['REMOTE_ADDR'] )) {
$sRealIp = $_SERVER ['REMOTE_ADDR'];
} else {
$sRealIp = '0.0.0.0';
}
}
} else {
if (getenv ( 'HTTP_X_FORWARDED_FOR' )) {
$sRealIp = getenv ( 'HTTP_X_FORWARDED_FOR' );
} elseif (getenv ( 'HTTP_CLIENT_IP' )) {
$sRealIp = getenv ( 'HTTP_CLIENT_IP' );
} else {
$sRealIp = getenv ( 'REMOTE_ADDR' );
}
}
return $sRealIp;
}
4、php求最大值
function getArrayMax($arr)
{
static $max = NULL;
foreach($arr AS $v)
{
if(is_array($v))
{
$temp = getArrayMax($v);
}
else
$temp = $v;
if(is_null($max) || $max<$temp)
{
$max = $temp;
}
}
return $max;
}
$arr = array(0, 1, 2, 3, array(33, 44, 66, array(7, 10, 12, array(99))));
echo getArrayMax($arr);//结果99
5、多维数组转一维数组
function rebuild_array($arr){ //rebuild a array
static $tmp=array();
for($i=0; $i<count($arr); $i++){
if(is_array($arr[$i])){
rebuild_array($arr[$i]);
}else{
$tmp[]=$arr[$i];
}
}
return $tmp;
}
实例:
$arr=array('123.html','456.html',array('dw.html','fl.html',array('ps.html','fw.html')),'ab.html');
print_r(rebuild_array($arr));
6、php 去掉数组重复的元素
有现成的函数
array_unique (PHP4 >= 4.0.1)
array array_unique (array array)
例:
<?php
$aa = array(1,2,4,2,4,1);
print_r($aa);
print_r(array_unique($aa));
?>
</pre>
public function array_unique_fb($array2D,$keyArray){
$temp=array();
foreach ($array2D as $v){
$v = join(",",$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
$temp[] = $v;
}
$temp = array_unique($temp); //去掉重复的字符串,也就是重复的一维数组
foreach ($temp as $k => $v){
//$temp[$k] = explode(",",$v); //再将拆开的数组重新组装
$temp[$k]= array_combine($keyArray ,explode(",",trim($v)));
}
return $temp;
}
//二维数组去掉重复值
function unique_arr($array2D){
foreach ($array2D as $v){
$v = join(",",$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
$temp[] = $v;
}
$temp = array_unique($temp); //去掉重复的字符串,也就是重复的一维数组
foreach ($temp as $k => $v){
$temp[$k] = explode(",",$v); //再将拆开的数组重新组装
}
return $temp;
}