php

二维数组的array_unique函数

关于php的array_unique函数,此函数只适用于一维数组,对多维数组并不适用,以下提供一个二维数组的array_unique函数 

//二维数组去掉重复值
function array_unique_fb($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;
}

原文:http://blog.sina.com.cn/s/blog_60c5cbf50100e4qz.html

Popularity: 2%

php

GBK的页面输出JSON

encode之前转换为utf-8,decode之后转回gbk:

function tb_json_encode($value, $options = 0)
{
  return json_encode(tb_json_convert_encoding($value, “GBK”, “UTF-8″));
}

function tb_json_decode($str, $assoc = false, $depth = 512)
{
  return tb_json_convert_encoding(json_decode($str, $assoc), “UTF-8″, “GBK”);
}

function tb_json_convert_encoding($m, $from, $to)
{
  switch(gettype($m)) {
    case ‘integer’:
    case ‘boolean’:
    case ‘float’:
    case ‘double’:
    case ‘NULL’:
      return $m;

    case ’string’:
      return mb_convert_encoding($m, $to, $from);
    case ‘object’:
      $vars = array_keys(get_object_vars($m));
      foreach($vars as $key) {
        $m->$key = tb_json_convert_encoding($m->$key, $from ,$to);
      }
      return $m;
    case ‘array’:
      foreach($m as $k => $v) {
        $m[tb_json_convert_encoding($k, $from, $to)] = tb_json_convert_encoding($v, $from, $to);
      }
      return $m;
    default:
  }
  return $m;
}

原文:http://sanmuding.com/i/660

Popularity: 14%

php

文本转HTML

//文本转HTML
function Text2Html($txt)
{
$txt = str_replace(”  ”,” ”,$txt);
$txt = str_replace(“<”,”&lt;”,$txt);
$txt = str_replace(“>”,”&gt;”,$txt);
$txt = preg_replace(“/[\r\n]{1,}/isU”,”<br/>\r\n”,$txt);
return $txt;
}

Popularity: 2%

php

在字符串指定位置插入一段字符串

//插入一段字符串
function str_insert($str, $i, $substr)
{
for($j=0; $j<$i; $j++){
$startstr .= $str[$j];
}
for ($j=$i; $j<strlen($str); $j++){
$laststr .= $str[$j];
}
$str = ($startstr . $substr . $laststr);
return $str;
}

Popularity: 5%

php

php数组二分法查找

<?php
//search函数 其中$array为数组,$k为要找的值,$low为查找范围的最小键值,$high为查找范围的最大键值
function search($array, $k, $low=0, $high=0)
{
if(count($array)!=0 and $high == 0)                 //判断是否为第一次调用
{
$high = count($array);
}
if($low <= $high)                                //如果还存在剩余的数组元素
{
$mid = intval(($low+$high)/2);                  //取$low和$high的中间值
if ($array[$mid] == $k)                         //如果找到则返回
{
return $mid;
}
elseif ($k < $array[$mid])                       //如果没有找到,则继续查找
{
return search($array, $k, $low, $mid-1);
}
else
{
return search($array, $k, $mid+1, $high);
}
}
return -1;
}
$array = array(4,5,7,8,9,10);                           //测试search函数
echo search($array, 8);                             //调用search函数并输出查找结果
?>

原文:http://blog.csdn.net/zhuzhao/archive/2009/03/09/3969044.aspx

Popularity: 4%

php

正确获得访客IP

if(getenv(‘HTTP_CLIENT_IP’) && strcasecmp(getenv(‘HTTP_CLIENT_IP’), ‘unknown’)) {
$onlineip = getenv(‘HTTP_CLIENT_IP’);
} elseif(getenv(‘HTTP_X_FORWARDED_FOR’) && strcasecmp(getenv(‘HTTP_X_FORWARDED_FOR’), ‘unknown’)) {
$onlineip = getenv(‘HTTP_X_FORWARDED_FOR’);
} elseif(getenv(‘REMOTE_ADDR’) && strcasecmp(getenv(‘REMOTE_ADDR’), ‘unknown’)) {
$onlineip = getenv(‘REMOTE_ADDR’);
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], ‘unknown’)) {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
preg_match(“/[\d\.]{7,15}/”, $onlineip, $onlineipmatches);
$onlineip = $onlineipmatches[0] ? $onlineipmatches[0] : ‘unknown’;

Popularity: 3%

php

加强版htmlspecialchars

//取消HTML代码

function shtmlspecialchars($string) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = shtmlspecialchars($val);
}
} else {
$string = preg_replace(‘/&amp;((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/’, ‘&\\1′,
str_replace(array(‘&’, ‘”‘, ‘<’, ‘>’), array(‘&amp;’, ‘&quot;’, ‘&lt;’, ‘&gt;’), $string));
}
return $string;
}

Popularity: 2%

php

支持数组的ADDSLASHES

//SQL ADDSLASHES
function saddslashes($string) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = saddslashes($val);
}
} else {
$string = addslashes($string);
}
return $string;
}

Popularity: 83%

php

运行时间计算

/*
enjoy整理,计算php程序运行时间
*/
function microtime_float()
{
list($usec, $sec) = explode(” “, microtime());
return ((float)$usec + (float)$sec);
}
//开始计时,放在头部
$starttime = microtime_float();
//结束计时,放在最底部
$runtime = number_format((microtime_float() – $starttime), 4).’s’;
//输出
echo ‘RunTime:’.$runtime;

Popularity: 59%

php

按ID返回一个二级目录

/*
二级目录
作者:enjoy http://www.9enjoy.com
按ID返回一个二级目录,用于将内容平均分布在36*36个目录中。
36个目录为a-z0-9
*/
function IDcat($id){
$p0 = $id % 1296;
$p1 = ceil($p0 / 36)-1;
$p2 = ($p0-1) % 36 ;
return IDnum($p1).’/’.IDnum($p2).’/';
}
function IDnum($i){
if($i<10){
if($i==-1){
return ‘z’;
}else{
return $i;
}
}else{
return chr(87+$i);
}
}

Popularity: 49%