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;
}
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;
}
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
{
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));
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;
}
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;
}
转载于:https://blog.51cto.com/mickelfeng/1010807