PHP性能优化

  图示为100个并发,请求1000次目标地址     进行测试   最重要的两个参数:Requestspersecond:每秒接受请求数,这里每秒接收101个请求         Timeperrequest:一个请求用多少耗时,这里是9毫秒第一个参数越大越好,第二个参数越小越好  优化方法之语言级性能优化1   PHP代码执行流程:  PHP代码通过zend引擎逐行扫描,成为zend引擎能理解的语法,转码解析成Opcodes,执行之后输出如果多使用内置函数的话,在扫描和理解上时间就会快很多,Opcodes也会少一些,执行起来就会快 优化方法之语言级性能优化2  优化方法之语言级性能优化3测试timephp文件名可以得出执行耗时,关注user值,即24毫秒  优化方法之语言级性能优化4 优化方法之语言级性能优化5  优化方法之语言级性能优...
代码星球 代码星球·2020-04-01

常用PHP函数整理

is_upload_file()          判断文件是不是通过HTTPPOST方式上传来的in_array()                 判断变量在不在数组范围内move_uploaded_file()      将上传的临时名移到指定文件夹md5(uniqid(microtime(true),true)) 根据时间戳微妙,产生唯一ID,拼上后缀后可用作上传文件的文件名,以免被覆盖getimagesize()    得到执行图片的信息,如果是图片返回数据,不是返回false strtolower()转为大写strtoupper()     ...
代码星球 代码星球·2020-04-01

PHPCMSV9上线方法及文件权限设置

上线步骤:a.替换代码和数据库文件内的域名b.修改cache/configs/database.php中的数据库密码c.修改cache/configs/system.php文件中的网站路径变量‘web_path’(网站在根目录就是/,目录下就是/xx/)d.修改phpcms/templates/moren/content/head.html文件中的链接地址e.进入网站后台,生成主页、栏目、url 文件权限设置:以下文件或者目录必须可写,例如访问地址localhost/phpcmsindex.html    chmod777index.htmlcaches/       chmod-R777cacheshtml/         chmod-R777htmluploadfile/   chmod-R777uploadfileph...

linux下PHP 环境搭建

linux下环境搭建 第一步安装Apache2sudoapt-getinstallapache2 第二步安装PHP模块sudoapt-getinstallphp5 第三步安装Mysqlsudoapt-getinstallmysql-serversudoapt-getinstallmysql-client 第四步其他模块安装sudoapt-getinstalllibapache2-mod-php5sudoapt-getinstalllibapache2-mod-auth-mysqlsudoapt-getinstallphp5-mysqlsudoapt-getinstallphp5-gd 第五步测试Apache是否正常工作打开浏览器,输入localhost,看看是否有ItWorks!网页展示。目录为/var/www(默认目录是www/html,自己改配置文件) 第六步修改权限/var/wwwsudochomod777/var/www 第七步安装phpmyadminsudoapt-getinstallphpmyadmin安...
代码星球 代码星球·2020-04-01

PHP 逻辑思维题

一群猴子排成一圈,按1,2,...,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去...,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n,.输出最后那个大王的编号。   <?phpfunctionkingVal($n,$m){//构造数组for($i=1;$i<$n+1;$i++){$arr[]=$i;}$i=0;//设置数组指针//print_r($arr);while(count($arr)>1){//遍历数组,判断当前猴子是否为出局序号,如果是则出局,否则放到数组最后//echo$i.'<br>';if(($i+1)%$m==0){unset($arr[$i]);}else{//array_push()函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。array_push($arr,$arr[$i]);//本轮非出局猴子放数组尾部unset($arr[$i]);//删除}//var_dump($arr);//e...
代码星球 代码星球·2020-04-01

PHP 遍历目录

$dir=$_SERVER['DOCUMENT_ROOT'].'/test';//var_dump($dir);exit;functionmy_scandir($dir){$files=array();if($handle=opendir($dir)){while(($file=readdir($handle))!==false){if($file!=".."&&$file!="."){if(is_dir($dir."/".$file)){$files[$file]=my_scandir($dir."/".$file);}else{$files[]=$file;}}}closedir($handle);return$files;}}functionshowTree($files){         echo"<ul>";        foreach($filesas$key=>$file){            if(is_array($file)){              echo"<li>".$key;             ...
代码星球 代码星球·2020-04-01

PHP 单例模式

http://www.php-fig.org/packagist.orgphp框架的整合<?phpclassExample{//保存类实例在此属性中privatestatic$instance;//构造方法声明为private,防止直接创建对象privatefunction__construct(){echo'Iamconstructed';}//singleton方法publicstaticfunctionsingleton(){if(!isset(self::$instance)){$c=__CLASS__;self::$instance=new$c;}returnself::$instance;}//Example类中的普通方法publicfunctionbark(){echo'Woof!';}//阻止用户复制对象实例publicfunction__clone(){trigger_error('Cloneisnotallowed.',E_USER_ERROR);}}?>这样我们可以得到一个独一无二的Example类的对象。<?php//这个写法会出错,因为构造方...
代码星球 代码星球·2020-04-01

php 二分查找

<?php/**二分查找:查找一个值在数组中的位置*@$arr:操作的数组,前提是按顺序排列*@$val:查找的值*@$start:查找的起始位置,默认从数组的第一个数找起*@$end:查找的结束位置**/functionbinarySearch($arr,$val,$end,$start=0){while($start<=$end){$mid=ceil($start+($end-$start)/2);if($arr[$mid]==$val){return$mid;}elseif($arr[$mid]>$val){$end=$mid-1;}else{$start=$mid+1;}}return-1;//这里的-1,是表示如果不在数组范围的时候,所返回的值}header('Content-Type:text/html;charset=utf-8');//产生一个数组$arr=range(10,20);echo'<pre>';print_r($arr);echo'</pre>';$start=0;$end=count($arr)-1;$findVa...
代码星球 代码星球·2020-04-01

php 快速排序

functionquickSort(array$array){$len=count($array);if($len<=1){return$array;}$key=$array[0];$left=array();$right=array();for($i=1;$i<$len;$i++){//echo$i.'&nbsp;';if($array[$i]<$key){$left[]=$array[$i];}else{$right[]=$array[$i];}}$left=quickSort($left);$right=quickSort($right);     //这里都是注释var_dump($left);echo'left'.'&nbsp;'."<br>";var_dump(array($key));echo'key'.'&nbsp;'."<br>";var_dump($right);echo'right'.'&nbsp;'."<br>";var_dump(array_merge($left,array...
代码星球 代码星球·2020-04-01

PHP session的实现原理

PHPSESSION原理我们知道,session是在服务器端保持用户会话数据的一种方法,对应的cookie是在客户端保持用户数据。HTTP协议是一种无状态协议,服务器响应完之后就失去了与浏览器的联系,最早,Netscape将cookie引入浏览器,使得数据可以客户端跨页面交换,那么服务器是如何记住众多用户的会话数据呢?首先要将客户端和服务器端建立一一联系,每个客户端都得有一个唯一标识,这样服务器才能识别出来。建议唯一标识的方法有两种:cookie或者通过GET方式指定。默认配置的PHP使用session的时会建立一个名叫”PHPSESSID”的cookie(可以通过php.ini修改session.name值指定),如果客户端禁用cookie,你也可以指定通过GET方式把sessionid传到服务器(修改php.ini中session.use_trans_sid等参数)。我们查看服务器端session.save_path目录会发现很多类似sess_vv9lpgf0nmkurgvkba1vbvj915这样的文件,这个其实就是sessionid“vv9l...
代码星球 代码星球·2020-04-01

PHP 冒泡原理

header('Content-Type:text/html;charset=utf-8');//简单冒泡算法$a=array(5,43,3,2,1);functionmp($a){$len=count($a);//传值要是数组for($i=0;$i<$len;$i++){/*    *最多做n-1趟排序*i=0i<5i++*这里为什么要-2呢*因为数组是从0开始的所以要-1*然后一比较最后一位和倒数第二位*这是从最后开始与前面的比较*/for($j=$len-1;$j>=$i;$j--){       //j=4j<ij--//这里$j>=$i的原因是:每个数都要进行冒泡运算,匹配之后,运行次数逐渐减少.//判断数组最大的位数和第二大的相比if($a[$j]<$a[$j-1]){echo$a[$j],'------小于-----',$a[$j-1],'----------排列前:',fnsort($a);//如果最大位数的小于第二大位数的就换位置$tmp=$a[$j];$a[$j]=$a[$j-1];$a[$j-1]=$tmp;echo'-----...
代码星球 代码星球·2020-04-01

在CI中集成phpmailer,方便使用SMTP发送邮件

直接使用phpmailer的话,有时候不是很方便,特别你的很多功能都是基于CI完成的时候,要相互依赖就不方便了,所以在想,那是否可以将phpmailer集成到CI中呢,像使用email类这样使用他,功夫不负有心人,在网上居然有人分享了很多内容,但是之前的CI是支持插件功能的,所以很多文章都是说的基于插件的方式,现在CI有了新的调整,基于类的方式。最后找到一篇文章,可以帮助我们解决这个问题,将phpmailer集成到CI中,成为类,大家可以去到这个url查看详细的介绍:http://blog.qoding.us/2011/09/codeigniter-using-phpmailer-to-send-email-via-gmail/ 最近要處理一個電子報系統,再用CI那跛腳EmailClass大概會被客訴到瘋掉。所以還是認命改用老牌的 PHPMailerLibrary。稍微試一下,發現在CI裡使用PHPMailer相當無痛,先到官網下載一份PHPMailer(本文完成時的最新版本是5.2.0),解壓縮後把整個資料夾丟到CI\application\libraries\P...

thinkphp 结合phpexcel实现excel导入

控制器文件:1classExcelActionextendsAction{2publicfunction__construct()3{4import('ORG.Util.ExcelToArrary');//导入excelToArray类5}67publicfunctionindex()8{9$this->display();10}11publicfunctionadd()12{13$tmp_file=$_FILES['file_stu']['tmp_name'];14$file_types=explode(".",$_FILES['file_stu']['name']);15$file_type=$file_types[count($file_types)-1];1617/*判别是不是.xls文件,判别是不是excel文件*/18if(strtolower($file_type)!="xlsx"&&strtolower($file_type)!="xls")19{20$this->error('不是Excel文件,重新上传');21}2223/*设置上传路径...

在Phonegap下实现oAuth认证

原文:http://www.kuqin.com/mobile/20120719/322873.html前段时间做过两次关于Phonegap的现场交流会议分享。基本上把Phonegap的一些特性和大家交流了一下,大家对于Phonegap的兴趣也是非常多的。但是因为Phonegap相对于原生应用来说,只有一个View,这个View就是一个Web的容器,这使得Phonegap就存在很多限制。其中一部分的限制我们已经通过HTML5的Api以及Phonegap为我们搭建的桥去实现了,另外一部分我们就得通过Phonegapplugins来实现,而实际上我个人认为Phonegap最强大的地方也在于有那么大的一个群体在为他提供各种各样的Plugins,以便去应对实际项目中遇到的问题。我记得在和大家交流的时候大家经常会问Phonegap如何做本地的缓存啊(WebSQL),如何贴近原生应用(这个涉及到架构,界面渲染问题,这里我也不好深入讲,毕竟不是本文要讨论的内容),还有一个很头疼的问题就是如果要做一个开放平台的应用,如果实现oAuth认证。此前我也遇到过类似的一些情况,当我再次遇到这个棘手的问题的时候,...
代码星球 代码星球·2020-04-01

Spring+Stomp+ActiveMq实现websocket长连接

stomp.js+spring+sockjs+activemq实现websocket长连接,使用java配置。pom.xml(只列出除了spring基本依赖意外的依赖,spring-version为4.3.3.RELEASE):<dependency><groupId>javax.websocket</groupId><artifactId>javax.websocket-api</artifactId><version>1.1</version><scope>provided</scope><!--注意,scope必须为provided,否则runtime会冲突,如果使用tomcat8,还需要将TOMCAT_HOME/lib下的javax.websocket-api.jar一并删除--></dependency><dependency><groupId>org.springframework</groupId><...
首页上一页...601602603604605...下一页尾页