PHP开发积累

1,花括号“{}”可以像“[]”操作数组一样操作字符串,来获得指定位置的字符。 2,PHP标签“<?php ?>”在独立PHP脚本内可以不写结束标签,这是为了避免意外的空格导致输出而报错。可以用注释来标明脚本结束。 3,echo是语法结构,不是函数。后面跟多个字符串时用逗号“,”效率更好。 4,数组中,1、'1'、true为索引的时候都会强制转换为1。而'01'不会进行转换,会按照字符串处理。 5,将一个类的代码写在不同PHP标签内是不合法的,会报语法错误。而函数则没问题。 6,session与cookie的区别与关系。 session保存 阅读全文

MySQL事件调度器的基本使用方法

根据MySQL的官方文档,从MySQL的5.1.6版本开始,MySQL支持了事件调度器,用于处理事件的调度与执行。触发器用于根据DML操作来触发事件,而事件调度器则是定时触发事件,功能类似于Linux的crontab计划任务,但是控制更为精确。在MySQL支持这项功能之前,往往通过Linux的crontab来辅助进行定时任务的触发,而当我们对于任务有更高的定时要求时,或者考虑调用接口处的性能瓶颈时,就需要使用到事件调度器(Event Scheduler)。 首先确保数据库选项event_scheduler处于开启状态。 show variables like 'event_scheduler 阅读全文

linux下vim命令详解

linux下vim命令详解,网上查找的学习下 高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的: :qx 开始记录宏,并将结果存入寄存器x q 退出记录模式 @x 播放记录在x寄存器中的宏命令 稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模 式,然后输入@x对刚才记录下来的命令进行重复,此命令后可跟数字,表示要重复多少次,比如@x20,可以重复20次。这个在文本的批处理中是非常有用的。 同时编辑多个文件 在vim 阅读全文

PHPmailer发送邮件 出现无法连接服务器或者标题出现重复

在使用phpmailer中遇到的问题,也是查资料解决的,可能不适合大家的问题,这里只是把可能出现的情况给记录下,方便大家使用。 发现使用PHPmailer发送邮件不成功,提示“不能连接SMTP服务器.”(Error: Could not connect to SMTP host)。 找了很多的方法花费了很多的时间都是出现Could not connect to SMTP host 很是郁闷,后来找到了一种解决办法就是 修改PHPmailer里有一个判断的函数, public function IsSMTP() { $this->Mailer = 'SMTP'; } 仔细查看代码,其实把smtp 改写成大写以后可以发送邮件的原因应 阅读全文

MySQL汉字字段按拼音排序

今天在做一个学校列表需要按照中文名称排序,找到了这篇文章。http://blog.csdn.net/stephenxu111/article/details/4436181 我自己的数据库是UTF-8 ,查询语句 SELECT * FROM `think_school` ORDER BY CONVERT(title USING gbk); 阅读全文

ubuntu 安装lnmp环境

近来重新安装了ubuntu 12.04,就试着安装lnmp环境玩一玩。 LNMP = Linux + Nginx + Mysql + Php与大家熟知的LAMP相似,都是一种Web服务器架构,所不同的是这里使用了Nginx代替Apache。 1、安装Nginx sudo apt-get install nginx 安装完成后配置Nginx,默认的安装结构是: 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安 装在了/etc/nginx/sites-available下 程序文件在/usr/sbin/nginx 日志放在了/var/log/nginx中 并已经在/etc/init.d/下创建了启动脚本nginx 默认的虚拟主机的目录设置在了/v 阅读全文

PHP路由函数

转载不错的 路由函数 <?php function seo_uri (){ $uri_arr = explode("/",trim($_SERVER['REQUEST_URI'],'/')); $web_root_str = strtr(WEB_ROOT,'/','\\'); $root_path_arr = explode('\\',trim($web_root_str,'\\')); $root_path_count = count($root_path_arr); foreach($uri_arr as $key=>$val){ if($val==$root_path_arr[$root_path_count-1]){ $uri_arr_start = $key; } } if($uri_arr_start>='0'){ $uri_new = array_slice($uri_arr,$uri_arr_start+1); }else{ $ur 阅读全文

通过淘宝IP地址库获取IP位置

通过淘宝开发的IP地址查询获取IP对应的地区 。 不是原创,只是转帖;淘宝的ip地址库应该算是有权威性的,并且淘宝提供了很便捷的接口方式,大家也不用为了获取ip信息而发愁了。 1. 请求接口(GET): http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串] 2. 响应信息: (json格式的)国家 、省(自治区或直辖市)、市(县)、运营商 3. 返回数据格式: {"code":0,"data":{"ip":"210.75.225.254","country":"\u4e2d\u56fd","area& 阅读全文

PHP去除BOM头方法

UTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行,   如果您在修改任何PHP文件後发生: * 不能登入或者不能登出; * 页顶出现一条空白; * 页顶出现错误警告; * 其它不正常的情况。 则多半是编辑器的问题。 本程序采用UTF-8编码。现在几乎所有的文本编辑软件都可以显示并编辑UTF-8编码的文件。但是很遗憾,其中很多软件的表现并不 阅读全文

提高php代码质量 36计

1.不要使用相对路径 常常会看到: require_once('../../lib/some_class.php'); 该方法有很多缺点: 它首先查找指定的php包含路径, 然后查找当前目录. 因此会检查过多路径. 如果该脚本被另一目录的脚本包含, 它的基本目录变成了另一脚本所在的目录. 另一问题, 当定时任务运行该脚本, 它的上级目录可能就不是工作目录了. 因此最佳选择是使用绝对路径: define('ROOT' , '/var/www/project/'); require_once(ROOT . '../../lib/some_class.php'); 我们定义了一个绝对路径, 值被写死了. 我们还可以改进它. 路径 /var/www 阅读全文