php
文章平均质量分 82
晓亮09
一直问自己怎样才能把程序写的更好?
编程境界:干净利落,没有任何多余步骤。
动态能力:反应,逻辑思维和推理能力。
展开
-
PHP中被忽略的性能优化利器:生成器
如果是做Python或者其他语言的小伙伴,对于生成器应该不陌生。但很多PHP开发者或许都不知道生成器这个功能,可能是因为生成器是PHP 5.5.0才引入的功能,也可以是生成器作用不是很明显。但是,生成器功能的确非常有用。优点直接讲概念估计你听完还是一头雾水,所以我们先来说说优点,也许能勾起你的兴趣。那么生成器有哪些优点,如下:生成器会对PHP应用的性能有非常大的影响PHP代码运行时节省大量的内存比...转载 2018-06-28 16:26:56 · 340 阅读 · 0 评论 -
记录: 看thinkphp源码,发现一个有趣的除法 计算
<?php $v = 8; $vv = $v / 5; echo $vv;?>上面是我原来的写法, 吼吼下面这个省略了变量 代码更简洁了; <?php $v =8; $v /= 5; echo $v; ?>原创 2011-12-03 23:32:15 · 1010 阅读 · 0 评论 -
最近开发遇到一个传值和引用问题 记录一下
$data = array("aaaa","bbbb");//给变量赋值数组function test(&$data) {//在这里引用数组 当 函数传值进来会指向同一内容区域,可以理解为内存地址都指向了一个地方$data = array("ccccc");//改变引用进来数据的内存地址,此时$data变量数据已经改变}test($data);//传值 引用给函数||||||||原创 2011-12-02 10:05:59 · 1000 阅读 · 0 评论 -
php 读取,分割大文件详解
在php中,对于文件的读取时,最快捷的方式莫过于使用一些诸如file、file_get_contents之类的函数,简简单单的几行代码就能很漂亮的完成我们所需要的功能。但当所操作的文件是一个比较大的文件时,这些函数可能就显的力不从心, 下面将从一个需求入手来说明对于读取大文件时,常用的操作方法。需求如下: 现有一个1G左右的日志文件,大约有500多万行, 用php返回最后几行的内容。转载 2011-12-02 22:05:28 · 522 阅读 · 0 评论 -
一直在用PHP 以前也关注过PHP引用相关,今天做了测试 php引用&符号详解
php的引用(就是在变量或者函数、对象等前面加上&符号)在PHP中引用的意思是:不同的名字访问同一个变量内容. 变量的引用PHP的引用允许你用两个变量来指向同一个内容例一:$a="2010";$b =&$a;echo $a;//这里输出:2010echo $b;//这里输出:2010$b="2012";原创 2011-11-20 01:28:56 · 342 阅读 · 0 评论 -
PHP 导出Excel一点小经验 解决乱码问题.
我在PHP项目里要求把数据导出为Excel,并且数据中包含中文.网上大概了解一下可是使用PHPExcel,可是相对我的需求,这个框架太复杂了.于是还是想找找简单做法.网上发现其实最简单可以这样写,但问题是这种做法中文的编码不可靠..Php代码 header("Content-type:application/vnd.ms-excel");转载 2011-10-28 19:34:00 · 1053 阅读 · 0 评论 -
php 抓取div内容
1. 取得指定網頁內的所有圖片:測試開新視窗複製代碼列印?<?php //取得指定位址的內容,並儲存至text $text=file_get_contents('http://andy.diimii.com/');转载 2011-09-29 20:12:15 · 758 阅读 · 0 评论 -
preg_match 修饰符
PHP的Perl兼容正则表达式函数也支持在Perl中不支持的其他修饰符, : 修饰符 意 义 / regexp / i 不区分大小写的匹配 / regexp / s 使句点( . )匹配任何字符,包括换行符( ) / reg转载 2011-09-29 19:00:18 · 668 阅读 · 0 评论 -
PHP 求百分比
{php echo sprintf('%.2f%%',1/2*100);}原创 2011-10-11 10:37:48 · 2193 阅读 · 0 评论 -
Ubuntu 11.04 安装nginx+php5+mysql 的web服务器
Nginx是一款有俄罗斯人开发的轻量级的web 服务器软件,现在很多网站都在使用这款软件,包括国内的互联网巨头腾讯网站都在使用Nginx。这款软件优点,免费、开源、高性能,而且稳定、功能强大、配置简单、资源消耗小。通过 PHP-FPM在ubuntu 11.04中支持 php5和m转载 2011-09-15 11:44:34 · 657 阅读 · 0 评论 -
在Ubuntu上搭建PHP+Mysql+Nginx环境(apt-get方式)
ubuntu版本:Ubuntu 10.04 LTS1、首先使用apt-get下载Nginx,php,mysql,phpmyadmin,spawn-fcgi。sudo apt-get install nginx php5-cgi php5-cli mysql-ser转载 2011-09-15 10:29:57 · 620 阅读 · 0 评论 -
使用fastcgi_finish_request提高页面响应速度
当PHP运行在FastCGI模式时,PHP FPM提供了一个名为fastcgi_finish_request的方法.按照文档上的说法,此方法可以提高请求的处理速度,如果有些处理可以在页面生成完后再进行,就可以使用这个方法.听起来可能有些茫然,我们通过几个例子来说明一下:翻译 2011-09-10 13:34:23 · 447 阅读 · 0 评论 -
静态的成员属性和成员方法到底有啥好处?
静态化的本质就是脱离类不需要实例化单独开辟一快内存,类需要实例化才给他开辟一快内存,如果将一个类实例化多次,系统就会给他开多块内存,但是如果你的类里面有个是静态的,那么这个方法只会开辟一块内存,多个实例化的类调用这个静态方法就都只会调用这一块内存的数据,相当于共享的意思转载 2011-08-08 11:47:33 · 877 阅读 · 1 评论 -
PHPCMSv9 nginx 伪静态URL规则
rewrite ^/content-([0-9]+)-([0-9]+)-([0-9]+).html /index.php?m=content&c=index&a=show&catid=$1&id=$2&page=$3 last;rewrite ^/show-([0-9]+原创 2011-09-05 17:07:53 · 2623 阅读 · 0 评论 -
phpcms v9 二次开发之构建模块全过程 by cubeking
第一:开发流程为你的phpcms创建一个模块的一般开发流程是:创建数据库和数据表;(没有数据库操作可略过)创建模块目录创建模块控制器类;创建模块类与模块函数;(如果只是简单的模块可以不必创建)创建模板文件;运行和调试。第二:创建模块phpcms转载 2011-08-01 14:15:51 · 1240 阅读 · 1 评论 -
PHP垃圾回收机制简单说明
<br />最近有看到一份面试题目,内容大概为阐述PHP的垃圾回收机制是怎么一回事。<br />虽然自己也是PHP的学习者,但之前还真没怎么了解PHP内部的垃圾回收流程,只是在我们的代码中用了unset,null,mysql_close,__destruct等等一些函数去释放对象防止内存溢出而已,所以上网GG下,找到了以下一些说明,作下记录“PHP可以自动进行内存管理,清除不再需要的对象。PHP使用了引用计数(reference counting)这种单纯的垃圾回收(garbage collection)机转载 2011-04-12 15:25:00 · 357 阅读 · 0 评论 -
PHPCMS V9内容模块PC标签调用说明
<br />PHPCMS V9内容模块PC标签调用说明<br />模块名:content<br />模块提供的可用操作<br />操作名 说明 <br />lists 内容数据列表 <br />relation 内容相关文章 <br />hits 内容数据点击排行榜 <br />category 内容栏目列表 <br />position 内容推荐位列表<br />position操作说明如下:<br />---------------------------------------------------转载 2010-12-31 17:43:00 · 2784 阅读 · 1 评论 -
php 数组排序以及按照某个字段排序
如果你已经使用了一段时间PHP的话,那么,你应该已经对它的数组比较熟悉了——这种数据结构允许你在单个变量中存储多个值,并且可以把它们作为一个集合进行操作。经常,开发人员发现在PHP中使用这种数据结构对值或者数组元素进行排序非常有用。PHP提供了一些适合多种数组的排序函数,这些函数允许你在数组内部对元素进行排列,也允许用很多不同的方法对它们进行重新排序。在这篇文章中我们将讨论该排序中最重要的转载 2011-12-05 17:01:39 · 699 阅读 · 0 评论 -
理解PHP5中static和const关键字(转)
PHP5中加入了很多面向对象的思想,PHP5的面向对象比较接近Java的面向对象思想。我们这里对PHP5中的static和const关键字作用进行一下描述,希望对学习PHP5的朋友有帮助。(1) staticstatic关键字在类中是,描述一个成员是静态的,static能够限制外部的访问,因为static后的成员是属于类的,是不属于任何对象实例,其他类是无法访问的,只对类的实例共享,能转载 2011-12-04 00:46:23 · 685 阅读 · 0 评论 -
PHP在位数不足前补零的操作函数sprintf()
php格式化数字:位数不足前面加0补足先实例,后讲解PHP代码$var=sprintf("%04d", 2);//生成4位数,不足前面补0 echo $var;//结果为0002 ?> PHP字符串sprintf()函数语法sprintf(format,arg1,arg2,arg++) 参数转载 2012-02-16 17:18:38 · 11867 阅读 · 0 评论 -
关于PHP程序员解决问题的能力
这个话题老生长谈了,在面试中必然考核的能力中,我个人认为解决问题能力是排第一位的,比学习能力优先级更高。解决问题的能力既能看出程序员的思维能力,应变能力,探索能力等,又可以看出他的经验。如果解决问题能力不佳是无法通过面试的。这里举个例子,假如我执行了一个PHP的脚本,如php test.php,预期是可以返回一个字符串。但执行后没有任何信息输出,这时候通过什么方法能知道程序错在哪里?这里可以将解决...转载 2018-06-20 12:04:27 · 307 阅读 · 0 评论 -
php 时间处理(昨天 上个月 本月 最近7天)
switch ($this->view->period){ case '0' ://昨天 $this->view->sd = date('Y/m/d',strtotime("-1 days")); $this->view->ed = date('Y/m/d',strtotime("-1 days"))转载 2013-09-14 16:48:57 · 1123 阅读 · 0 评论 -
PHPNOW-1.5.6安装Memcached扩展及相关下载
首先需要下载的2个文件:memcached.exe 和 php_memcache.dll ,这里需要说明的是版本不对照貌似会出问题。下面提供下载,经测试可以与PHPNOW-1.5.6兼容。这里我压缩一下,提供直接下载。安装步骤:1.解压 memcached.exe 到任意目录,这里我解压到(E:\Working\PHPnow\memcached) PHPnow安装目录下面。在CMD命令转载 2013-08-19 11:17:34 · 1011 阅读 · 0 评论 -
nginx+fpm记录php的error log
前言将架构从apache+mod_php迁移到nginx+fpm上,会发现如果php脚本出错,nginx的eror_log里不会有记录,只在access_log里记录了500状态码。出现的原因:nginx将php的脚本执行通过fastcgi转到fpm上,所以出错的信息当然不会记录在nginx的error_log里了,但是对于测试环境下程序员的调试这是个悲剧啊,所以我们需要配置fpm的错误日志转载 2013-04-10 17:41:36 · 1182 阅读 · 0 评论 -
php 位移运算
位运算应用口诀清零取位要用与,某位置一可用或若要取反和交换,轻轻松松用异或移位运算要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。 2 " 3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。 4 ">>>"运算符,右边的位被转载 2013-01-20 21:16:11 · 790 阅读 · 0 评论 -
偷师某高人的 散列HASH,用来做字符串散列分表HASH操作
<?php//范围:00-63function crc_hash(&$keyword,$n=64){$hash = crc32($keyword) >> 16 & 0xffff;return sprintf("%02s",$hash % $n);}?>转载 2013-01-20 20:34:05 · 583 阅读 · 0 评论 -
PHP多态性 | 面向对象
从面向对象的角度看PHP。面向对象有三点:封装性、继承和多态。封装性:类封装、包封装、访问类型(public关键字)继承:类继承、接口继承、接口实现。多态:子类实现父类的方法(不同子类动作不一致)、函数重载。转载 2013-01-14 21:17:59 · 485 阅读 · 0 评论 -
在PHP中如何判断AJAX请求
如何在PHP中判断一个网页请求是ajax请求还是普通请求?你可以通过传递参数的方法来实现,例如使用如下网址请求:/path/to/pkphp.com/script.php?ajax在PHP脚本中使用如下方法判断:if(isset($_GET['ajax'])) {…这是一个ajax请求,然后…}else {…转载 2012-09-04 12:28:51 · 622 阅读 · 0 评论 -
php 本周 本月 上周 上月 时间 php date
cho date("Ymd",strtotime("now")), "\n";echo date("Ymd",strtotime("-1 week Monday")), "\n";echo date("Ymd",strtotime("-1 week Sunday")), "\n";echo date("Ymd",strtotime("+0 week Monday")), "\n";转载 2012-07-18 10:37:16 · 384 阅读 · 0 评论 -
PHP扩展写法简单示例-HelloWorld
用C语言,php的扩展的书写格式(ZEND API)写PHP扩展的步骤:我用的php环境 php 5.2.5,完成最基本功能 hellowordcd /php5.2.5/ext 生成骨架 ./ext_skel --extname=cltest 会在当前目录建立一个cltest的目录进入该目录 cd cltest修改 配置文件config.m4vi cltest/转载 2012-04-18 09:52:21 · 541 阅读 · 0 评论 -
解决困惑已久的“接口”与“抽象”疑惑——力荐《php 接口类与抽象类的实际作用》【收藏】
1.php 接口类:interface 其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这个时候php接口类就起到作用了,当我们定义了一个接口类时,它里面的方式是下面的子类必须实现的,,比如 : 代码如下:[php] view plaincopy转载 2012-04-21 12:30:37 · 371 阅读 · 0 评论 -
PHPCMS v9 查找重复数据
$video_obj = $video_db->query("select title,id,count(id) c from v9_video where vod_siteid = 4 group by title having c>1");$video_info= $video_db->fetch_array();原创 2012-04-10 17:26:12 · 1036 阅读 · 0 评论 -
nginx php空白页 fastcgi_param
今天安装完nginx 后 发现html页面能正常浏览 但是php文件的页面打开后是一篇空白 看php-fpm日志 看nginx日志都没找到问题上网搜索了半天终于解决了,在这做个记录备忘网上的一种说法是缺少这么一句话在nginx的配置文件里fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;这句话是干嘛的呢原创 2012-03-18 15:45:53 · 2120 阅读 · 0 评论 -
php编译安装常见错误
精典错误 /libxmlrpc/encoding.c:101:undefined reference to 'libiconv_close' collect2: ld returned 1 exit status make:*** [sapi/fpm/php-fpm] Error 1 解决方法: #make ZEND_EXTRA_LIBS='-liconv' 错转载 2012-03-28 15:27:36 · 679 阅读 · 0 评论 -
php面试题及答案
基础题:1.表单中 get与post提交方法的区别?答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.2.session与cookie的区别?答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放 cookie:用来存储连续訪問一个頁面时所使转载 2012-03-08 15:33:21 · 674 阅读 · 0 评论 -
php实现无限级树型菜单(函数递归做法)
!!写递归函数,可考虑缓存,定义一些静态变量来存上一次运行的结果,多程序运行效率很有帮助.大概步骤如下:首先到数据库取数据,放到一个数组,然后把数据转化为一个树型状的数组,最后把这个树型状的数组转为html代码。也可以将第二步和第三步合为一步。详细如下:1。数据库设计:脚本如下:CREATE TABLE `bg_cate` (`cate_Id` int(30转载 2012-03-07 10:09:51 · 926 阅读 · 0 评论 -
PHP:echo中逗号与点号的区别
<br />我们都知道.echo中是可以用逗号来连接字符串的.并且经过测试.这样的连接字符串方式要比直接用点号要快.<br />比如:<br />echo 'abc'.'def'; //用点号连接字符串<br />echo 'abc','def'; //用逗号连接字符串<br />也许很多人都知道逗号要比点号快.但是不知道为什么.更不知道这两者到底有什么区别.<br />那么下面我们就举一些例子.来认清楚他们之前的区别.<br />echo '1+5=' . 1+5; 看看上面的.输出的结果是6..而不是1转载 2010-12-28 14:44:00 · 668 阅读 · 0 评论 -
php性能优化技巧
<br />今天在网上看到一篇名为”php性能优化技巧”的文章,里面有好几点在用的时候是往往注意不到的。原文如下:<br />Google 在 Google Code 制作了 “Let’s make the web faster” (使得 Web 更快)的网站中,分享了一些如网页性能优化的技巧和教程以及工具。<br />1.不要随便就复制变量<br />有时候为了使 PHP 代码更加整洁,一些 PHP 新手会把预定义好的变量复制到一个名字更简短的变量中,其实这样做的结果是增加了一倍的内存消耗,只会使程序更加转载 2010-11-05 11:09:00 · 436 阅读 · 0 评论 -
php object 转 array【转】
<br />要在 Command line 讀取 JSON, 一時找不到可以直接讀取的 Library, 所以就先用 PHP 寫一個來頂.物件轉換成陣列使用的函式<br />PHP 使用 json_decode 預設是會回傳物件, 但是物件拿來作 foreach 的處理有點麻煩, 所以需要 Object to Array 的轉換程式.物件 轉換成 陣列 可用: get_object_vars()CLI 的 JSON Reader PHP 版程式<br />讀取 CLI 參數, 可用 fgets(STDIN)转载 2010-10-13 23:46:00 · 1007 阅读 · 0 评论 -
get_object_vars 返回由对象属性组成的关联数组
<br />(PHP 4, PHP 5)get_object_vars -- 返回由对象属性组成的关联数组描述array get_object_vars ( object obj )<br /><br /><br />返回由 obj 指定的对象中定义的属性组成的关联数组。 <br />注: 在 PHP 4.2.0 之前的版本中,如果在 obj 对象实例中声明的变量没有被赋值,则它们将不会在返回的数组中。而在 PHP 4.2.0 之后,这些变量作为键名将被赋予 NULL 值。 <br /><br />原创 2010-10-13 23:44:00 · 595 阅读 · 0 评论