①需要把php扩展对应的源码包拉到linux中
②解压并进入解压后的目录
③在解压的目录中,找到php的安装目录中找到phpize指令并执行。
说明:phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块
执行完后会在解压的目录生成一个configure的文件,用于后续的操作
④在解压目录执行./configure脚本, 并且指定php安装目录的php-config脚本文件路径
⑤编译和安装make && make install ,执行完毕后会在php相应的目录生成一个.so的动态库文件
⑥在php配置文件php.ini中指定.so的动态库文件的路径
⑦重启,写个phpinfo的函数进行测试有没有对应的扩展出现
php递归遍历多级分类
/** * [indexAction_white 返回[树状结构]格式化后的树] * @return [type] [description] */ public function areaData_white() { $objs = db($this->table_name)->field('id,parent_id,area_name')->select(); $arr = $this->__format_priv($objs); return json($arr); } /** * [__format_priv 与[树状结构]格式化数据, [递归]] * @param [type] $objs [description] * @param [type] $parent_id [description] * @return [type] [description] */ private function __format_priv($objs, $parent_id = null) { $arr = []; if ($objs && is_array($objs)) { foreach ($objs as $v) { if ($v['parent_id'] == $parent_id) { $arr[] = [ 'id' => $v['id'], 'text' => $v['area_name'], 'children' => $this->__format_priv($objs, $v['id']) ]; } } } return $arr; }
/** * 家谱树(面包屑导航) * @param $id * @return array */ public function getPlist($id) { $arr = collection($this->select())->toArray(); return $this->_familytree($arr, $id); } /** * 家谱树 * @param $arr * @param $id * @return array */ private function _familytree($arr, $id) { $list = array(); foreach ($arr as $v) { if ($v['id'] == $id) { $list[] = $v['area_name']; $list = array_merge($this->_familytree($arr, $v['parent_id']),$list ); } } return $list; }