PHP 小技巧
=================================
mb_substr($str, 0, 1, "gbk");
如果提供了第四个参数,php会解析这个参数
1. 将这个参数转换成字符串.
2. 调用mbfl_name2no_encoding获得编码器序号
3. 第二步会调用mbfl_name2encoding,这个函数在循环中使用了strcasecmp
strcasecmp是忽略大小写的字符串匹配,性能很低,
而且,如果第四个参数提供的 编码名字 不规范,会造成标准名字列表中找不到
还会做进一步的尝试,从MIME charset name中寻找,如果还是找不到
会继续尝试,通过别名来查找,这个过程是相当慢的,假如有20种编码,每种有10个别名
就要从20*10个字符串中,查找出匹配的,还是不区分大小写的匹配,相当的慢
所以,尽量使用跟内部编码一致的编码,如果不能,编码名字一定要写的规范
解决方案:
mb_internal_encoding("gbk");
for($i = 0; $i < 100000; $i ++){
$a = mb_substr($str, 0, 1);
}
=================================
我们经常会用到file_get_contents函数,用于抓取别人网站的信息,制作简单的采集器,但是在使用file_get_contents函数的时候,经常会出现超时的错误,这里介绍两种解决办法:
一、增加超时的时间限制
这里需要注意:set_time_limit只是设置你的PHP程序的超时时间,而不是file_get_contents函数读取URL的超时时间。
我一开始以为set_time_limit也能影响到file_get_contents,后来经测试,是无效的。真正的修改file_get_contents延时可以用resource $context的timeout参数:
代码如下:
$opts = array(
'http'=>array(
'method'=>”GET”,
'timeout'=>60,
)
);
$context = stream_context_create($opts);
$html =file_get_contents('http://www.phpzixue.cn', false, $context);
fpassthru($fp);
二、一次有延时的话那就多试几次
有时候失败是因为网络等因素造成,没有解决办法,但是可以修改程序,失败时重试几次,仍然失败就放弃,因为file_get_contents()如果失败将返回 FALSE,所以可以下面这样编写代码:
复制代码 代码如下:
$cnt=0;
while($cnt < 3 && ($str=@file_get_contents('http://www.phpzixue.cn'))===FALSE) $cnt++;
=========================================
代码量统计
统计.php和.htm文件 需要单词和字符信息,把wc -l的-l去掉
find path_to_source -type f -name
相关文档:
<?
require ("config.php3");
?>
<?
if($submit)
{
//echo $action;
//if($action=='update') &nb ......
在PHP.net的牛人回复中找到一个自动根据图片文件类型打开图片的PHP函数,很方便.
/**
*
* Loads a file based on its filetype and returns false if it fails.
*/
function imagecreatefromfile($path, $user_functions = false)
{
$info = @getimagesize($path);
if(!$info)
{ ......
一、安装
1. 首先安装SSH
sudo apt-get install ssh
2.安装MySQL(虽然现在最新版为5.1,但是还只能装5.0版本)
sudo apt-get install mysql-server-5.0
3.安装Apache
sudo apt-get install apache2
4.安装PHP
sudo apt-get install php5 libapache2-mod-php5
5.重启Apache
sudo /etc/init.d/apache2 restart ......
1、前言
分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一。对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问题摸不着头绪,因此特地撰写此文对这个问题进行详细的讲解,力求让看完这篇文章的朋友在看完以后对于分页显示的原 ......
1.类和对象。
类是一类事物的描述。抽象,概念上的定义。
对象是实际存在的每个个体。也叫实例。对象是new出来的。$p = new Person();
2.属性
用来描述类中的数据元素。(也叫数据/状态)
修饰符(PHP5中必须修饰):public(公开,类的内外部读取修改),private(私有只在当前类中读取修改),protected(保护,能在这个类和 ......