欢迎访问 ‘ php ’ 的所有文章

百度Laruence谈php

惠新宸(网名:Laruence,博客),百度PHP高级顾问,年二十有八,好追根究底,有不良嗜好,
幸性本善。乙酉年识互联网,丁亥年入雅虎,翌年入百度。虽性好安稳,然经变无数,唯常叹”人生,菠菜汤尔”。

大家好,今天我主要介绍是PHP在百度一个发展历程,最早的时候百度成立于2000年,2000年的时候,百度刚刚成立,刚刚在北大资源宾馆建立百度,直到2001年的竞价排名,我不评价这个产品怎么样,竞价排名当时是第一个采用PHP,在百度的PHP系统。从2001年到今年已经10年时间了,这10年时间百度PHP经历一些什么变化呢?

我们现在看到是百度,那天我自己脑子里想了一遍,当然不是全部,大家能够知道的一些用户产品,无线产品,商业产品。包括贴吧这个比较大了,还有最新的旅游。对于贴吧来说,前端可能是CUI,或者业务逻辑,一直到后来已经迁到PHP。我列出来这些产品,都是使用了PHP,还有没列出来也是使用了PHP的,很多。所以,如果说让我去介绍每个产品是怎么用PHP的,我觉得这个不太现实,我一共只有30分钟。

这30分钟我主要想跟大家分享的我们发现一些问题和怎么去解决,这些问题是大家都会遇到的。我们最早的时候,就像我刚才提到的我们一些,因为处于最高性能要求,以及对于PHP的不了解,以及对于外部我们可能觉得PHP很慢,所以我们以前的时候,这些大的访问量产品都是用C来做的。他可能在模板上用Cu-i来做展现,这样的方式大家都知道开发,调试,部署都很复杂,成本也比较高,门槛也比较高,招人也比较难招。 阅读全文

参加培训不如多买几本书看.

 过年回来竟然有种参加培训的想法, 想提升一下自己的php技术水平,看看培训费用2000~6000不等.有免费的但是条件是交2000元押金,签合同,每天在培训学校上班,周末上课.

自己以前是很厌烦培训的,参加培训不如买几本好的书看看.最多消费不过1000块钱,而且很全面.

在amazon.cn 输入想培训的行业 很多受欢迎,流行的书籍就出来了.肯定不会超过1000元. 

我买的php书籍 没超过300块. 到新华书店看过内容,最后买了下面几本书. 阅读全文

fetch_array,fetch_row,fetch_assoc,fetch_object区别

fetch_array,fetch_row,fetch_assoc,fetch_object这几个是从mysql查询结果集中取得数据的函数,让我们来看看他们之间的区别,自己记录下,便于日后遗忘了好查询,下面通过一个实例开始分析:

<?php

$link=mysql_connect(’localhost’,’root’,”);
mysql_select_db(’abc’,$link);
$sql = “select * from book”;
$result = mysql_query($sql);
while($row = mysql_fetch_row($result))
{
echo $row['cid'].’::’.$row[1].’<br>’;
}

$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
echo $row['cid'].’::’.$row[1].’<br>’;
}

$result = mysql_query($sql);
while($row = mysql_fetch_object($result))
{
echo $row->cid.’::’.$row->title.”<br>”;
}

$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result))
{
echo $row['cid'].’::’.$row[1].’<br>’;
}
?>
分析:

mysql_fetch_row,这个函数是从结果集中取一行作为枚举数据,从和指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结 果的列储存在一个数组的单元中,偏移量从 0 开始。 注意,这里是从0开始偏移,也就是说不能用字段名字来取值,只能用索引来取值,所以如下代码是取不到值的:

while($row = mysql_fetch_row($res)){
echo $row['cid'].’::’.$row[1].”;
} //这里的$row['cid'] 取不到值。

mysql_fetch_array,从结果集中取得一行作为关联数组,或数字数组,或二者兼有,除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。 也就是说他得到的结果像数组一样,可以用key或者索引来取值,所以

while($row = mysql_fetch_array($res)){
echo $row['cid'].’::’.$row[1].”;
}//这里$row['cid'],$row[1]都能得到相应的值。

mysql_fetch_object,顾名思义,从结果集中取得一行作为对象,并将字段名字做为属性。所以只有这样才能取到值
while($row = mysql_fetch_object($res)){
echo $row->cid.’::’.$row->title.””;
}

mysql_fetch_assoc,从结果集中取得一行作为关联数组,也就是说这个函数不能像mysql_fetch_row那样用索引来取值,只能用字段名字来取,所以

while($row = mysql_fetch_assoc($res)){
echo $row['cid'].’::’.$row[1].”;
}  //$row[1]这样是取不到值的

补充一点:

mysql_fetch_array函数是这样定义的:array mysql_fetch_array ( resource result [, int result_type]),返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE

mysql_fetch_array() 中可选的第二个参数 result_type 是一个常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。其中:
1、mysql_fetch_assoc($result)==mysql_fetch_array($result,MYSQL_ASSOC);
2、mysql_fetch_row($result)==mysql_fetch_array($result,MYSQL_NUM);

所以mysql_fetch_array()函数在某种程度上可以算是mysql_fetch_row()与 mysql_fetch_assoc()的集合。另外,mysql_fetch_array()另外还有MYSQL_BOTH参数,将得到一个同时包含关 联和数字索引的数组。

odbc 里面的函数可以参考mysql 类来理解

odbc_fetch_row  odbc_fetch_array

阅读php源代码经验

php技术的快速进步,最好的途径就是阅读源代码了。自己也阅读了很多开源的程序,感觉方法很重要,好的方法可以达到事半功倍的效果。 

一份好的源代码例如 dz的论坛,wind论坛,帝国cms,phpcms,dedecms,ecshop magento等优秀的开源程序,都具有自己的一套设计思路和设计模式,所以在看某个产品之前就要做好心理准备,可以把自己的经验和这些产品做对比,但千万别一直用自己的思维去评判。一句话就是“以学习和批评的辩证思想去看待”。

     那具体的我们怎样去阅读一份php的源代码呢?
    一。先把源代码安装起来,结合它的文档和手册,熟悉其功能和它的应用方式。
    二。浏览源代码的目录结构,了解各个目录的功能。
    三。经过以上两步后相信你对这个开源的产品有了一个初步的了解了,那现在就开始分析它的源码吧。这一步我们开始分析源代码框架。例如入口方式是单入口还是多入口,页面之间的调用规则,能根据规则找出某个功能用到的页面。
    四。熟悉源代码的代码写作风格,例如缩进方式,排版格式等。
    五。熟悉一下源代码用到的数据库和表,可以参考它的技术支持文档。
阅读全文

php+access+smartycms计划

自己学php有段时间了,现在想开发个cms检验一下自己.

之前做过idc行业,考虑购买虚拟主机是一般小企业的最终选择,虚拟主机一般只是asp php

mysql数据库需要单独购买. 而大多的php程序都是mysql数据库,企业为节约成本会选择

asp+access,近来随着seo的流行,越来越多的人考虑优化自己的网站,选择的程序也是php+mysql

的居多.

我查了一些资料,说的最多的是asp+access php+mysql 绝配,php如果配合access性能方面会很慢.

到底多慢咱们暂且不说,如果是一个小企业的网站已经足够,至少可以做为一个前期过渡的最佳产品,

如果数据很大,asp+access肯定也不适合,所以作为一个小企业前期整站互联网的选择,php+access

构建的网站会使一个最佳选择. 阅读全文

php 读取文件修改时间

filemtime ( string filename )
返回文件上次被修改的时间,出错时返回 FALSE。时间以 Unix 时间戳的方式返回,可用于 date()。

例如:$a=filemtime(“log.txt”);
echo “修改时间:”.date(“Y-m-d H:i:s”,$a);

filectime ( string filename )
返回文件上次 inode 被修改的时间,如果出错则返回 FALSE。时间以 Unix 时间戳的方式返回。

例如:$a=filectime(“log.txt”);
echo “创建时间:”.date(“Y-m-d H:i:s”,$a);

fileatime ( string filename )
返回文件上次被访问的时间,如果出错则返回 FALSE。时间以 Unix 时间戳的方式返回。

例如:$a=fileatime(“log.txt”);
echo “修改时间:”.date(“Y-m-d H:i:s”,$a);

php计算程序执行的时间

得到当前时间:

得到当前时间:

function getmicrotime(){
    list($usec, $sec) = explode(" ",microtime());
    return ((float)$usec + (float)$sec);
}//程序开始执行的时间
//放在需要开始计时的地方,计算整页放在开头

$time_start = getmicrotime();//程序结束时的时间
//放在计时结束的地方

$time_end = getmicrotime();
$time = $time_end - $time_start;
print_r( "Page executed in $time seconds");

如果是在类中,请别忘记用 $this-> getmicrotime();哦