转到正文

浪淘沙

静观己心,厚积薄发

存档

标签: php

原文地址:http://blog.csdn.net/lxzo123/article/details/6718771

在做一些互联网应用的时候,往往需要抓取网络文件大多数网页文件,一般情况下都是利用php模拟浏览器的访问,通过http请求访问url地址,然后得到html源代码或者其它格式的数据,然后对这些数据进行处理格式化,按照我们事先约定好的方式输出到终端或其它接口。

一、 PHP抓取页面的主要方法:

1. file()函数

2. file_get_contents()函数

3. fopen()->fread()->fclose()模式

4.curl方式

5. fsockopen()函数 socket模式

6. 使用插件(如:http://sourceforge.net/projects/snoopy/) 继续阅读

原文地址:http://bbs.phpchina.com/forum.php?mod=viewthread&tid=159107

1. 在合适的时候使用PHP – Rasmus Lerdorf
没有谁比PHP的创建者Rasmus Lerdorf明白PHP用在什么地方是更合理的, 他于1995年发布了PHP这门语言,从那时起,PHP就像燎原之火,烧遍了整个开发阵营,改变了互联网的世界。 可是,Rasmus并不是因此而创建PHP的。PHP是为了解决web开发者的实际问题而诞生的。
和许多开源项目一样,PHP变得流行,流行的动机并不能用正常的哲学来进行解释,甚至流行得有些孤芳自赏。它完全可以作为一个案例,一个解决各种web问题的工具需求所引起的案例,因此当PHP刚出现的时候,这种工具需求全部聚焦到PHP的身上。
但是,你不能奢望PHP可以解决所有问题。Lerdorf是第一个承认PHP只是一种工具的人,并且PHP也有很多力所不能及的情况。
根据工作的不同来选择合适的工具。我跑了很多家公司,为了说服他们部署和使用PHP,但是这并不意味着PHP对所有问题都适用。它只是可以一个解决大部分问题的front-end脚步语言。
作为一个web开发者,尝试用PHP解决所有问题是不科学的,同时也会浪费你的时间。当PHP玩不转的时候,不要犹豫,试用一下其他的语言吧。
2. 使用多表存储提高规模伸缩性 – Matt Mullenweg
继续阅读

原文地址:http://bbs.phpchina.com/forum.php?mod=viewthread&tid=177258

身为一名中级PHPer菜鸟..无聊了就爱在各个PHP论坛瞎转.看到了好多PHP初学者都问到了很多相同的问题.而且我学PHP的时候也都遇到过.为了让PHP初学者少走一些弯路.所以突然神经恍惚.决定写下此文章.仅供PHP初学者参考.如有错误.还望指出.不甚感激.

PHP其实是一种很简单易学的语言.如果要精通PHP多则三年.少则一年就足够了.但是为什么三年之后我们照样是菜鸟?

不知道从什么开始.学习PHP我们不得不学习数据库.学习架构.学习面向对象.学习前端.学习linux.学习协议甚至美工等直接导致了现在PHPer都是最累的一种程序员.

最累就不算什么了.往往PHP会被认为是下等的程序.拿着最低级的工资.却要掌握web方面几乎全部的知识.这实在是不公平.

可喜的是 我们逐渐在国内看到了转变.国内越来越多的公司从Java或者C#等转到了PHP.所以各位PHPer一定要有自己的梦想.你们都会很牛B的.请坚信.
继续阅读

原文地址:http://my.oschina.net/cfanlds/blog/14876

目前,有人使用的PHP框架有400多。很多开发了发布的PHP框架可以说是近乎上千个之多。在选择PHP开发框架时,很多人都会陷入迷茫,或因此走很多弯路。
因此,我们这里简单讲一下,如何寻找一个不会让你后悔的PHP开发框架。
首先要明确,先择框架,绝不是为了学习,也不是为了做一个企业网站或小型个人网站。面临选择问题的根本点在于,你这个网站是大型网站,或将来会成为大型网站。你不能因为框架而阻碍你的发展。
那么,我们先讲一下,目前选择框架的种种误区:
1、选择流行的。并非流行的就是非常好的。举例来说,CI相当流行。但CI只能用于小型网站开发,并且,可扩展性相当差,它的最大的优点是初学者易上手。但不能很好地运用PHP5面向对象的特性。
2、选择官方的。无非就是用Zend,但它并不是最具扩展性的代码,或者,它的一切也只有在ZEND SERVER中才能充分体现。可ZEND SERVER是要收费的。另一坏处,那就是,它的更新速度并不是很快。一个很复杂的代码,相对于一个网站的发展,无法等待官方的更新,需要时,你需要自己去修改的。所以,以官方更新有保障,这是靠不住的理论。
3、选择简单的。目前国产的,声称极简单的框架也不下于上百种。但这些简单的框架,实际最终会浪费你很多的时间。为什么呢?比如,无日志,出错后,不知错在何处。无TRACE,跟踪调试不方便。
那么,我们选择框架有什么样的标准昵?
继续阅读

php中array_merge的功能如同其字面意思:将array进行merge操作。将多个数组合并成一个数字。

需要特别特别注意的事情就是:“如果数组是数字索引的,则键名会以连续方式重新索引。”

是的。没有错。FCK,该函数会将数字索引重新索引。

如果需要将多个数组合并成一个且不希望重新索引数字索引的话,请千万不要使用array_merge。

如果要合并2个数组又不能重新索引数字索引的话,可以尝试使用 “+”(加号) 这个操作符。 使用这个操作符

需要注意的事情是:

“+”(加号)会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉。 

所以,一定要注意两个数组的先后顺序。

如果需要了解”+”(加号)和array_merge 的区别可以 参考网址“PHP合并数组+与array_merge的区别分析

原文地址:http://blog.csdn.net/alexdream/article/details/6120204

要判断客户端是否使用代理服务器,可以从客户端所发送的环境变量信息来判断。

具体来说,就是看HTTP_VIA字段,如果这个字段设置了,说明客户端使用了代理服务器。

匿名级别可以参考下表来判断。

给出一个应用例子,可以挂上代理试试效果: http://ip.mixsec.org/
继续阅读

用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字 符串中 搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正 的函数,故把函数加上了双引号)。
1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。
2、$row[’id’] 的速度是$row[id]的7倍。
3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。
4、在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。
5、注销那些不用的变量尤其是大数组,以便释放内存。
6、尽量避免使用__get,__set,__autoload。
7、require_once()代价昂贵。
8、include文件时尽量使用绝对路径,因为它避免了PHP去include_path里查找文件的速度,解析操作系统路径所需的时间会更少。
9、如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()。 继续阅读

LazyPHP

3月 30

原文地址:http://bbs.phpchina.com/thread-233224-1-1.html

github 地址: https://github.com/easychen/LazyPHP

LazyPHP(以下简称LP)是一个轻框架.

之所以开发这么一个框架,是因为其他框架给的太多。在高压力的情况下,ORM和盘根错节的对象树反而将简单的页面请求处理复杂化,在调试和性能上带来反面效果。

LP采用函数式接口封装对象,对内通过面向对象实现代码重用,对外则提供简明扼要的操作函数。开发者甚至不用理解面向对象就能很好的使用,这让一些初级程序员很容易就开发出强壮的应用。

在数据库等模块的加载上,LP采用LazyLoad方式,并用$GLOBALS实现全局单件,在方便和高效之间找到了一个平衡点。这也是LP框架名字中Lazy的来源。

LP在新浪大量使用已经将近3年,每天承载的请求达千万级别。由于LP易读易学,使用LP的开发者之间沟通非常容易,而新同事也可以很快融入进来。

LP3是LP最新的版本,最主要的调整是重新定义了Layout规则,以应对日益增多的Ajax,Mobile和Rest请求。同样是由于这个原因,LP3和之前的版本不兼容,我们建议大家在新项目中采用LP3。

继续阅读