PHP
文章平均质量分 77
TrueManWorld
爱生活爱编程
展开
-
使用PHP发送邮件的两种方法
今天研究了一下使用PHP来发送电子邮件,总结了一下,有这么两种方法:一、使用PHP内置的mail()函数看了一下手册,就直接开始写代码了,如下$to = "test@163.com";$subject = "Test";$message = "This is a test mail!";mail($to,$subject,$message); 结果就直接报错,如下:Warning: mail() [function.mail]: Failed to connect to mailserver原创 2011-03-27 18:55:00 · 98331 阅读 · 2 评论 -
PHP 的 Interactive shell 模式
臨時要測個簡單的程式片段 或 Function, 一般都會於 CLI 寫來跑一跑, Interactive 模式 可以邊寫邊測試~ (互動模式, 寫完一行就 Compile 一行)而 PHP CLI 的模式有兩種差異: (執行方法: $ php -a, 說明可見: PHP: Interactive shell)Interactive shell 比較像是 互動式, 有問有答的執行程转载 2012-03-24 00:27:20 · 6379 阅读 · 0 评论 -
php5支持posgresql
编译php5时添加 --with-pgsql,有以下报错 “configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path” 解决办法: yum install postgresql-devel ,重新编译PHP即可。转载 2012-02-10 18:32:01 · 931 阅读 · 0 评论 -
PHP5中PDO的简单使用
作者:heiyeluren http://blog.csdn.net/heiyeshuwu>时间:2006-10-29关键字:PHP PHP5 PDO 数据库抽象类 PDO(PHP Data Object) 是PHP 5新出来的东西,在PHP 6都要出来的时候,P转载 2011-08-05 17:59:31 · 758 阅读 · 0 评论 -
PHP提示用户保存文件并提供文件名
以保存PDF文件为例,其他类型的文件类似。 <?phpheader("Content-type:application/pdf");// 保存文件名是001.pdfheader("Content-Disposition:attachment;filename=00原创 2011-07-22 11:54:05 · 744 阅读 · 0 评论 -
PHP格式化输出printf,sprintf,vprintf,fprintf
语法:int printf ( string $format [, mixed $args [, mixed $... ]] )string sprintf ( string $format [, mixed $args [, mixed $... ]] )int vprintf ( string $format , array $args )int fprintf ( resource $handle , string $format [, mixed $args [, mixed $转载 2011-04-30 19:49:00 · 1712 阅读 · 0 评论 -
C和PHP中while和for效率的一点研究
<br />在网上看到很多关于while和for循环效率的讨论,有说一样没区别的,也有说这个快或者另一个更快的。<br />看了很多也没有一个比较一致的结论,个人觉得这种东西没个绝对,for和while都有各自的优缺点,关键是我们要根据情况的不同进行最佳的选择,当然,确定哪个是最佳的不是一件很容易的工作。<br /> <br />下面我分别使用for和while进行1亿次的空循环,并统计消耗的时间。<br />分别在C和PHP两种语言下进行了测试:<br />先看C语言的代码:<br />while:<br原创 2011-04-28 14:17:00 · 2014 阅读 · 0 评论 -
PHP Deprecated: Comments starting with '#' are deprecated in *.ini 警告解决办法
<br />新装的ubuntu 10.04系统,使用新立得装的PHP,但是每次我在命令行下执行php脚本时都会出如下的警告信息:<br />PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/mcrypt.ini on line 1 in Unknown on line 0<br />上网查了一下,原来是新版本的PHP不赞成用'#'号作为注释符号,需要用分号';'。打开这个文件,把里面的#替换成原创 2011-04-17 23:51:00 · 6854 阅读 · 0 评论 -
关于PHP中Socket连接及读写数据超时的问题
<br />虽然PHP中对fsockopen()方法有连接socket的超时参数,但是没有类似C中的连接成功后对数据的读写超时参数设置。没关系,PHP中对stream提供了一系列的方法以防止超时<br /><br />stream_set_blocking( $fp , false )//设置数据流为阻塞模式,以防止数据没读完就退出<br /><br />如果模式为 false, 给定的 socket 描述符将切换到非块模式, 如果为 true, 则切换到块模式. 这个效果类似于 fgets() 从转载 2011-04-16 10:23:00 · 3165 阅读 · 0 评论 -
PHP内置函数网络超时设置
最近我的一位同事在做数据抓取,需要从别人的网站上下载图片到本地。图片链接是从远程服务器的数据库中读取出来的,他用的办法是每次从远程数据库中读取一定的记录,然后使用双重循环下载图片。可以代码在执行的时候遇到了问题,就是有些链接是无效的,会发生连接超时(图片下载方法是内置readfile函数)。本来超时了也没什么大不了,顶多是图片没下载下来。但是结果却是:如果有一个链接发生超时,那么整个程序就会跑飞了,很是奇怪。我仔细看了一下代码,找到了问题所在:readfile函数默认超时时间大约在1分钟左右,因为这段时间m原创 2011-04-01 00:20:00 · 2809 阅读 · 0 评论 -
PHP + Memcache 实现多服务器session共享
很多时候一个完整的系统可能运行在多个服务器上,如果这多个服务器之间需要共享session的话,那么php默认的files保存session的方式就无能为力了。这时我们可以考虑使用memcache 来接管session的保存与读取工作。第一步:我们需要在服务器上搭建必要的环境php 、web server的安装不是主题就不多说了,其他还需要的是 memcached 服务端、php_memca原创 2012-04-26 01:07:10 · 3237 阅读 · 0 评论 -
64位Linux环境安装PHP TCC 扩展方法
近日发现了一个很有用的PHP扩展,它可以让PHP直接执行C代码,无需编译。TCC(Tiny C Compiler)是一个C编译器,支持直接执行C源代码。关于TCC的介绍这里不多说,可以从这里了解 http://www.ibm.com/developerworks/cn/linux/l-tinyc/part1/刚开始在32位Ubuntu下安装,很顺利就装了,不过在64位CentOS上原创 2012-05-31 00:24:05 · 3204 阅读 · 0 评论 -
浅析 PHP 官方自动化测试方法
PHP 官方自动化测试方法简述以下介绍以 PHP 最新官方版本 5.2.8 的源码在 LINUX 系统平台上的分析为例展开。首先来看一下 PHP 的自动化测试脚本 PHPT 脚本。自动化测试脚本 PHPT 示例PHP 的测试脚本是以“ .phpt ”为后缀,包含 TEST,FILE,EXPECT 等多个段落的文件,简称 PHPT 。在各个段落中,TEST,FILE,EXPE转载 2014-04-11 11:02:41 · 889 阅读 · 0 评论 -
Linux下常用轻量级队列服务比较
Linux IPC:IPC进程间通信(Inter-Process Communication)就是指多个进程之间相互通信,交换信息的方法。系统消息队列功能是这些方法中的其中一种。使用此队列不需要额外安装服务,是系统内置功能。由于shell中也可以操作此队列,故PHP与Shell需要通讯时使用此队列会比较方便注:PHP使用前需要开启内置的 sysvmsg扩展模块原创 2014-03-24 18:06:41 · 4048 阅读 · 0 评论 -
PHP5.5 将会带来哪些新特征
PHP5.4 在四个月前发布了,现在来看PHP下一个版本似乎早了点,但我还是想给大家透露一些PHP5.5 将会带哪些新特征。注意一点 :PHP5.5 还在早期的开发阶段,所以没有人知道最终的结果是什么样的。所有我在这里谈论的都只是提案。也就是说,不是所有下面列出的新特征都会加入PHP5.5。所以,不要太兴奋 :)新特性及提案列表 都相当大,而且不是按重要性排序。所以,如果你不想通读一遍的话转载 2013-06-30 18:37:57 · 645 阅读 · 0 评论 -
PHP的SESSIONID生成原理
作为一个web程序猿,我们对session肯定都不陌生,session id是我们各自在服务器上的一个唯一标志,这个id串既可以由php自动来生成,也可以由我们来赋予。你们可能和我一样,很关心php自动生成的那个id串是怎么来的,冲突的概率有多大,以及容不容易被别人计算出来,所以有了下文。我们下载一份php5.3.6的源码,进入/ext/session目录,生成session id的函数位于ses...转载 2013-05-31 16:50:45 · 14629 阅读 · 1 评论 -
一个分号将代码效率提升100倍
我的做PHP的,近来突发奇想,想比较做同样的事情PHP和C的效率差异。所以写了两段简单的测试代码,因为对C的了解不是太深,所以C的代码是直接从网上找来的。先看代码吧!PHP代码:<?php $i = 10000000; $a = explode(" ",microtime()); while($i--); $b = explode(" ",microtime());原创 2011-04-27 20:25:00 · 1308 阅读 · 2 评论 -
如何在PHP中实现链式方法调用
写程序的人都喜欢偷懒,希望少打几行代码,并且让代码看起来很酷。所以很多人写程序都会选择三元运算取代if..else...。而用过JS的人应该都见识过js中的链式方法。如 somevars.func().func2().func3()...funcN();这样的写法使得代码更简练,并且作用关系一目了然。那么在php中可以这么做么,显然也是可以的,但是php与j转载 2013-01-04 19:44:41 · 679 阅读 · 0 评论 -
http 使用curl发起https请求
今天一个同事反映,使用curl发起https请求的时候报错:“SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed”很明显,验证证书的时候出现了问题。使转载 2012-10-25 16:27:42 · 970 阅读 · 0 评论 -
PHP精确统计字符个数
有时我们需要知道一个字符串中有多少个字符,如果是纯英文,很方便使用strlen()就可以了,但是如果有中文或者类似多字节字符时,strlen()函数就帮不上忙了,因为它返回的是字符串长度,而非个数。例如 echo strlen('你好');在UTF-8编码情况下会输出 6;怎么样让他们输出2呢,其实只要使用iconv扩展中提供的iconv_strlen()函数就可以了例如e原创 2012-09-05 20:28:08 · 2086 阅读 · 0 评论 -
Memcache协议中文版
写在前头偶然之间看到本文的中英文对照版本,感觉看起来不是很方便,于是花费了半个小时的时间,仔细整理出了独立的中文版本,并记录下来。协议memcached 的客户端使用TCP链接 与 服务器通讯。(UDP接口也同样有效,参考后文的 “UDP协议” )一个运行中的memcached服务器监视一些(可设置)端口。客户端连接这些端口,发送命令到服务器,读取回应,最后关闭连接。结束会话不需要发送任何命令。当不再需memcached服务时,要客户端可以在任何时候关闭连接。需要注意的是,鼓励客户端缓存这些连接,而不是每次转载 2011-03-30 13:45:00 · 1023 阅读 · 0 评论 -
PHP输出Hello world!之另类实现
<br />define(_,'chr(');define(__,').');define(___,"print ");define(____,"'!';");define(_____,_."0x48".__._."0x65".__._."0x6C".__._."0x6C".__);define(______,_."0x6F".__._."0x20".__._."0x77".__._."0x6F".__);define(_______,_."0x72".__._."0x6C".__.原创 2011-03-27 12:16:00 · 2288 阅读 · 1 评论 -
让codeigniter分页类支持URL自定义后缀
<br />由于CODE的遗留问题,分页类是不支持URL自定义后缀的,假设你设定URL自定义后缀是.html的话,分页产生的链接是这样的:<br /><br />http://www.xx.com/class/method/par1/par2.htm/page [其中page是页数]<br /><br />而我们的理想要求是:http://www.xx.com/class/method/par1/par2/page.html<br /><br />我们可以简单修改下就可以做到了,在:Pagination类转载 2011-03-23 11:58:00 · 2896 阅读 · 1 评论 -
传说是腾讯公司的PHP面试题
1、以下题目,除了编程任务外其他都需要写在给你提供的草纸上。纸张是珍贵的地球资源,请节约使用。编程任务在有相应的环境时,会要求上机书写,实在没有条件,就只能写在草纸上了。 2、时间: 基础任务+进阶任务+设计任务 = 90分钟 编程任务 = 60分钟 基础任务: 1、请列举你能想到的UNIX信号,并说明信号用途。 2、请列举、你能想到的所有的字符串查找算法,并加注释简单说明。 3、有一个IP地址(192.168.0.1),请写出其32位无符号整数形式。 4、写出、你能想到的所有HTTP返回状态值,并说明用转载 2011-01-07 16:28:00 · 887 阅读 · 0 评论 -
提高PHP编程效率的53个要点
用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。2、$row[’id’] 的速度是$row[id]的7倍。3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,转载 2011-01-07 00:25:00 · 508 阅读 · 0 评论 -
Memcache基础教程
Memcache是什么Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。Memcache官方网站:http://www.danga.com/memcached,更多详细的信息可以来这里了解 为什么会有Memcache和memca转载 2010-08-19 09:44:00 · 484 阅读 · 0 评论 -
PHP strftime_format格式
%a - 当前区域星期几的简写 %A - 当前区域星期几的全称 %b - 当前区域月份的简写 %B - 当前区域月份的全称 %c - 当前区域首选的日期时间表达 %C - 世纪值(年份除以 100 后取整,范围从 00 到 99) %d - 月份中的第几天,十进制数字(范围从 01 到 31) %D - 和 %m/%d/%y 一样 %e - 月份中的第几天,十进制数字,一位的数字前会加上一个空格(范围从 ' 1' 到 '31') %g - 和 %G 一样,但是没有世纪 %G - 4 位数的年份,符合 ISO原创 2010-08-19 09:39:00 · 1803 阅读 · 0 评论 -
PHP字符串翻转函数 支持中文字符(GBK编码)
支持纯英文数字、纯中文字符串和中英文数字混合字符串。*若传入参数不为字符串则返回false。$str="阳太d54有a上2天1";*此可以实现字符串的倒序。*中文需要使用GBK编码。$str="光月明前床";原创 2010-04-24 16:55:00 · 1011 阅读 · 0 评论 -
PHP session有效期
PHP中的session有效期默认是1440秒(24分钟)【weiweiok 注:php5里默认的是180分】,也就是说,客户端超过24分钟没有刷新,当前session就会失效。很明显,这是不能满足需要的。 一个已知管用的方法是,使用session_set_save_handler,接管所有的session管理工作,一般是把session信息存储到数据库,这样可以通过SQL语句来删除转载 2009-12-28 22:23:00 · 3735 阅读 · 0 评论 -
FreeBSD下安装MySQL+Apache+PHP
众所周知,FreeBSD 提供了软件的 ports 安装方式,可以很方便的定制安装所需要的应用软件.当我们装好系统之后,当然首先想到是配置 web 服务器,FreeBSD 默认标准安装并没有安装 apache,mysql 和 php,所以就要亲自动手安装了.ports 安装方式的好处在于,不会像 LINUX 那样,由于一个依懒包或者库文件而导至不得不到处找依懒包或库文件,下载下来全部装好再来装需要转载 2009-08-29 14:05:00 · 1140 阅读 · 0 评论 -
FreeBSD下安装mysql+apache+php
一、安装MYSQL#pw groupadd mysql 先建立mysql组#pw useradd -g mysql mysql -s /nonexitent 建立用户mysql#cd /usr/ports/databases/mysql40-server#make install clean有很多朋友没有起动起来mysql,有很多是因为没有设置权限造成的,比如我前些天老是出现转载 2009-08-29 13:21:00 · 905 阅读 · 0 评论 -
PHP连接MySQL文字乱码处理方法
MySQL+PHP产生乱码原因: ◆ MySQL数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MySQL乱码; ◆ MySQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MySQL乱码; ◆ MySQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MySQL乱码; ◆ 用户提交页面的转载 2009-08-19 18:11:00 · 883 阅读 · 0 评论 -
PHP的弱数据类型
开发的过程中遇到一个很是奇怪的问题,是这样的代码中有一个foreach循环,但是有时却无法将数据遍历出来……foreach ($hotels as $k=>$v){ if($k!="total"){ echo "eid:".$v['HotelId']."/n"; } }……$hotels是个数组,结构是这样的Array( [0] => Array (原创 2010-11-25 15:53:00 · 982 阅读 · 2 评论 -
PHP浮点运算中一个不算BUG的BUG
对于这个问题的发现源于一个计时器程序,先看下这段代码吧。 $s=gettime(); usleep(10000); $e=gettime(); var_dump($s); var_dump($e); echo $e-$s."/n"; function gettime(){ list($sec,$usec)=explode(" ",microtime()); return $sec+$usec; } ?>输出原创 2011-01-27 16:47:00 · 1516 阅读 · 0 评论 -
深入理解PHP中的匿名函数
<br /> 匿名函数的作用就是扩大函数的使用功能,在PHP 5.3以前,传递Callback的方式,我们只有俩种选择:<br /> ◆字符串的函数名<br /> ◆使用create_function的返回<br /> 在PHP5.3以后, 我们多了一个选择, 也就是Closure。<br /> $func = function () { ... }; array_walk($arr, $func); <br /> 从实现上来说, 第一种方式: 传递函数名字符串是最简单的。而第二种方转载 2011-05-11 15:38:00 · 882 阅读 · 0 评论 -
PHP匿名函数 闭包简单例子
<br />php5.3中增加了匿名函数和闭包的支持。平常都是在javascript中才能使用得到的匿名函数和闭包现在在php5.3中也能使用了。<br /><?php<br />/* anonymous function */<br />$anonymous = function($str){<br />echo $str;<br />};<br />$anonymous("Hello World!/n");<br />/* end of anonymous function */<br转载 2011-05-11 15:55:00 · 2887 阅读 · 0 评论 -
PHP函数Date()和format参数表
date – 格式化一个本地时间/日期string date ( string format [, int timestamp] )注: 有效的时间戳典型范围是格林威治时间 1901 年 12 月 13 日 20:45:54 到 2038 年 1 月 19 日 03:14:07。(此范围符合 32 位有符号整数的最小值和最大值)。不过在 PHP 5.1 之前此范围在某些系统(如 Windows)中限制为从 1970 年 1 月 1 日到 2038 年 1 月 19 日。表格 1. 格式字串可以识别以下 fo转载 2011-03-14 10:48:00 · 1144 阅读 · 0 评论 -
PHP函数可变参数列表的具体实现方法介绍
<br />也许对于PHP初级程序员来说,对于PHP函数并不能完全熟练的掌握。我们今天为大家介绍的PHP函数可变参数列表的实现方法主要是利用func_get_args()、 func_num_args()、func_get_arg()这三个系统函数来实现的,其中func_get_args()函数以数组的形式获得参数列表,具体用法参看手册。<br /><br />PHP函数可变参数列表代码如下:<br /> <?php <br /> /** <br /> * 函数的多参数列表的实现 <转载 2011-03-07 20:18:00 · 1741 阅读 · 0 评论 -
PHP函数调用及循环体内定义大型变量效率的研究
<br />最近在用php做网站抓取,使用的是CURL。但是数据抓取的效率太低,分析了一下发现:网速问题最大的瓶颈,但这个我无能为力;但是后来我发现,其实除了网速,提高代码内部执行的效率也很重要。<br />举例说明吧,先来看看我最原始的代码:<br /> <br /><?php<br />$s=gettime();<br />$url="http://localhost/index.html";<br />for($i=1;$i<=10000;$i++){<br /> gethtml($ur原创 2011-03-07 20:21:00 · 1338 阅读 · 0 评论 -
10问PHP程序员
<br />1.首先看了PHP的源码API函数,对于许多口水仗的争论一笑而过,只是停留在脚本级别上的什么效率,安全。。。之争完全就是无稽之谈,没有深入理解API,所有的争论都是臆测和不科学的态度。你做了吗?<br /><br />2.不再把PHP看作一门后台语言,而是一门类似JS的脚本,页面表现级的语言,更多的是尝试使用一种软件来做后台,PHP做前台,尝试真正的B/S开发。你的看法呢?<br /><br />3.知识更新。PHP中的接口你懂了吗?反射你听过吗?JS中的事件冒泡你懂了吗?原型链知道吗?一切函数转载 2011-03-07 20:21:00 · 627 阅读 · 0 评论