Pages (39) « Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Next »

金算盘软件-招聘PHP软件工程师

职责简述:

1、按计划完成亿禧网及网站产品、项目的编码开发工作;

2、完成模块单元测试。

任职要求:

1、精通PHP开发语言,熟悉面向对象的软件设计方法;

2、熟悉HTTP、CSS、DIV、Javascript等页面技术;

3、熟悉数据库的设计和编程,性能优化等基本操作技能;

4、至少2年PHP开发经验;

5、有大型门户网站、电子商务网站开发经验者优先。

联系方式:

地 址:重庆市北部新区星光大道62号海王星科技大厦三区5层

邮 箱:hrm@72ec.com 或直接发送邮件到luocheng.cn@luocheng.cn

电 话:023-67031666

关于PHP截字的那些事儿

这是一个初级问题,新手会关注,同样是一个高级问题,老手也常栽跟头。

我负责公司在线产品的底层开发,对这种基础函数也采用拿来主义。

本以为Discuz的cutstr函数应该很完美,但也难逃公司测试人员的法眼。仔细一看,原来也有BUG。

首先,我们分析一下该函数需要实现的功能。对于我们的用户(这里指开发人员),他们需要得到的结果的让一列文字整齐的截断。

他们并不关注文字的个数,也不关注是何编码,只关注字符位置长度。在PHP中汉字和编码有关,gbk是双字节,utf8三字节。


bcastr4修改

bcastr3、bcastr4都是非常优秀的Flash轮播插件,在大大小小的项目中常用到,但bcastr4的标题位置被固定到了顶部,我所经历的项目所有客户都要求调到下面,这是一件难受的事情。

我喜欢做一劳永逸的事,将bcastr4做了一下小修改,主要是标题位置、字体、按钮位置等。

点击下载bcastr4修改版

php无限级分类-php无限级数据排序(原创)

我们经常遇到这样的问题,读取无限级分类数据,通常运用在地区、类别、商品类目等。

通常数据库设计如下:

id name   pid

1  北京   0

2  重庆   0

3  北部新区 2

4  江北区  2

pid记录了上级ID(父ID)

初级方法:

最简单的思路或者说常规的思路就是递归算法了。递归算法是比较快的和准确的,但是有一个问题就是会比较浪费不必要的资源,递归算法执行的过程中会开启N个函数入口,也就是函数需要一直保存状态等待起递归的运算结果。例如这个树形有5层*60行,则在递归算法中浪费的运算至少60次,并且保持5个函数一直是运算中状态,不合理的是同样要做60+次的数据库查询,因为不管其有没有子类,算法执行过程中都需要去重复执行递归运算,事实上实际执行过程中不止这个数。

可以写个简单的例子来测试递归算法调用函数的次数。

/* 先假设我的数据是这样子的

array(

   array(id=>1,pid=>0),

   array(id=>2,pid=>0),

   array(id=>3,pid=>2),

   array(id=>4,pid=>0),

   array(id=>5,pid=>3), 

   array(id=>6,pid=>1),

   array(id=>7,pid=>1),

   array(id=>8,pid=>6),

   array(id=>9,pid=>7),

   array(id=>10,pid=>9)

); */

$db = new MysqlDb();

$num = 0;

function treeArray($pid) {

 global $db, $num;

 $num++;

 $data = $db -> getAll("SELECT * FROM geo WHERE pid = ".$pid); //返回一个二维数组

 $result = array();

 foreach($data as $val) {

  $val['child'] = treeArray($val['id']);

  $result[] = $val;

 }

 return $result;

}

print_r(treeArray(0)); //树形的结果

var_dump($num);

    

中级方法:

然后我们系统越作越大了,数据库资源紧张了,我们要求在不改变数据库结构的同时尽可能的减少数据库的操作。那么这样做就需要我们有一算法来给你的数据排序了。


Pages (39) « Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Next »