在PHP的json_encode()函数中,中文会被编码为ASCII码,这样中文就变成类似于\u4e2d\u56fd的编码了,这样的编码或造成数据显示和识别的问题,下面我们针对这种问题给出了3中解决办法。

阅读更多:About your home page

      今天我使用 include 包含了一个 含有中文文件名 的html文件,结果报错;后来使用 file_get_contents 测试也报错;这是因为中文文件名的编码跟系统的不一致所致。只需要 $filepath=iconv('utf-8','gb2312',$filepath); 转换一下编码即可。

遇到的错误:

Warning: include(***): failed to open stream: Invalid argument in ***.php on line *

Warning: file_get_contents(***): failed to open stream: No such file or directory in ***.php on line *

本文主要讲述了怎么从代码和配置文件来控制是否显示错误和要显示的错误级别。

阅读更多:About your home page

PHP正则表达式主要用于字符串的模式分割、匹配、查找及替换操作。使用正则表达式在某些简单的环境下可能效率不高,因此如何更好的使用PHP正则表达式需要综合考虑。

阅读更多:About your home page

function getDataTree($rows,$id = 'id',$pid = 'pid',$child = 'children',$root = 0) {
    $tree = array();
    if(!is_array($rows)) {
        return $tree;
    }
    $array = array();
    foreach($rows as $key => $item) {
        $array[$item[$id]] = &$rows[$key];
    }
    foreach($rows as $key => $item) {
        $parentId = $item[$pid];
        if($root == $parentId) {
            $tree[] = &$rows[$key];
        } else {
            if(isset($array[$parentId])) {
                $parent = &$array[$parentId];
                $parent[$child][] = &$rows[$key];
            }
        }
    }
    return $tree;
}

$arr=array(
    array('id'=>'1','pid'=>'0','name'=>'a'),
    array('id'=>'2','pid'=>'0','name'=>'b'),
    array('id'=>'11','pid'=>'1','name'=>'aa'),
    array('id'=>'12','pid'=>'1','name'=>'ab'),
    array('id'=>'21','pid'=>'2','name'=>'ba'),
    array('id'=>'111','pid'=>'11','name'=>'aaa')
);
var_dump(getDataTree($arr));