摘要:array('id'=>'1','parentid'=>0,'name'=>'一级栏目一'), * 2 => array('id'=>'2','parentid'=>0,'name'=>'一级栏目二'), * 3 => array('id'=>'3','parent...
阅读全文
摘要:class Thread_request extends Thread { public static $thread_tasks; protected $processor; public $url; public $params; public $model; public $view; public $response; public $last_url; public $last_params; public $last_model; public $last_view; public $last_error = ''; public $last_errno = 0;
阅读全文
摘要:根据张彦博客里的ptheads的测试例子,使用curl_multi的速度与多线程差不多,这里手册说是调用线程处理。class test_thread_run extends Thread { public $url; public $data; public function __construct($url) { $this->url = $url; } public function run() { if(($url = $this->url)) { $this->data = model_http_curl_get($url); } } } func...
阅读全文
摘要:CurlPHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。有curl扩展支持,独立于其他的方法。socket扩展实现了一个低级别的接口,基于流行的BSD套接字Socket通信功能,作为一个套接字服务器以及客户端提供的
阅读全文
摘要:一、判断PHP是ts还是nts版通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说应该是ts版,否则是nts版。二、根据PHP ts\nts版选择对应pthreads的版本windows版本的下载地址http://windows.php.net/downloads/pecl/releases/pthreads/0.1.0/本人php版本是5.4.17的所以下载php_pthreads-0.1.0-5.4-ts-vc9-x86.zip文件包,其中0.1.0表示为当前pthreads版本号,5.4为php版本号,t
阅读全文
摘要://测试扩展pthreads是否安装成功class AsyncOperation extends Thread { public function __construct($arg){ $this->arg = $arg; } public function run(){ if($this->arg){ printf("Hello %s\n", $this->arg); } } } $thread = new AsyncOperation("World"); if($thread->start()) $thre...
阅读全文
摘要:PHP作为一种服务器端的脚本语言,有时为了实现某个功能,必须 借助于操作系统的外部程序,这样可以做到事半功倍。php的内置函数exec,system都可以调用系统命令(shell命令),当 然还有passthru,escapeshellcmd等函数。比如LINUX中修改服务器时间命令是 /xxx/date -s ’2013-01-01 11:10′,我们通过php函数exec调用这个命令执行修改时间exec(“xxx /xxx/date -s ’2013-01-01 11:10′”,$out,$status);其中$out是输出值,$status是返回值0或1,如果返回0则执行成功,返回1则执
阅读全文
摘要:目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。故整理一下PHP语言对它的支持,这是开发互联网应用程序(特别是编写API)必须了解的知识。从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。一、json_encode()该函数主要用来将数组和对象,转换为json格式。先看一个数组转换的例子: $arr = array (‘a’=>1,’b'=>2,’c'=>3,’d'=>4,’e'=>5); echo json_encode($arr)
阅读全文
摘要:ini_set,post_max_size,upload_max_filesize,magic_quotes_gpc等用ini_set设置不了!ini_set(‘max_execution_time’,’10′);ini_set(‘memory_limit’,’1024M’);echo ‘max_execution_time = ‘ . ini_get(‘max_execution_time’) . ”“;echo ‘memory_limit = ‘ . ini_get(‘memory_limit’) . ”“;echo ‘post_max_size = ‘ . ini_get(‘post_m
阅读全文
摘要:try catch是处理可以预知的错误,对于系统的fatal error无能为力,而且必须要通过throw 抛出异常才能捕获。function inverse($x) { if (!$x) { throw new Exception('Division by zero.'); } return 1/$x;}try { @inverse(0);} catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; exit;}通过@符号可以抑制错误的显示,或者
阅读全文
摘要:先看看下面的代码,就知道是什么问题了.header("Content-Type:text/html;charset=utf-8");$array = array('湖北','盛天','网络 ','研发部');echo json_encode($array);echo "<hr/>";$array = array(0=>'湖北',3=>'盛天',5=>'网络 ',6=>'研发部');echo j
阅读全文
摘要:要先谈谈Content-Disposition的作用 开头打印的信息中有Content-Disposition,一时好奇,所以了解了一下。顺便学习一下文件上传所需要的注意事项。 Content-disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。当 Internet Explorer 接收到头时,它会激活文件下载对话框,它的文件名框自动填充了头中指定的文件名。(请注意,这是设计导致的;无法使用此功能将文档保存到用户的计算机上,而不向用户询问保存位置。)服 务端向客户端游览器发送文件时,如果是浏览器支持的文件类型,一般会默认使用浏览器打开.
阅读全文
摘要:web页面变得越来越胖,这意味着更多脚本、样式、图片和flash。初次访问站点的访客不得不请求很多HTTP请求,但是可以通过设置 Expire头来让这些文件缓存起来,避免重复的HTTP请求。Expire头经常用在图片上,但在脚本、样式和flash上都应使用这一技术。ExpireExpire头的设置在服务器端进行,服务请求通过在HTTP相应中增加Expire头来告诉客户端该文件可以缓存多久,比如:Expires: Thu, 15 Apr 2020 20:00:00 GMT告诉浏览器,该文件在2020年之前都不会过期。比如33号铺的样式返回的Expires:所以浏览器再次访问这个资源的时候,可能是
阅读全文
摘要:网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。其作用根据不同的重新浏览方式分为以下几种情况:(1) 打开新窗口值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。而如果指定了max-age值,那么在此值内的时间里就不会重新访问服务器,例如:Cache-control: max-age=5(表示当访问此网页后的5秒内再次访问不会去服务器)(2) 在地址栏回车值为private或must-reval
阅读全文
摘要:1. Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type。2. Accept-Charset: 浏览器申明自己接收的字符集Accept-Encoding: 浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate)Accept-Language::浏览器申明自己接收的语言语言跟字符集的区别:中文是语言,中文有多种字符集,比如big5,gb2312,gbk等等。3. Accept-Ranges:WEB服务器表明自己是否接受获取其某个实体的一部分(比如文件的一.
阅读全文
摘要:PHP中我们经常需要通过HEADER发送HTTP标头消息,以便告诉浏览器一些处理状态(Status)或显示参量,最典型的就是发送页面处理HEADER和发送状态HEADER。无论是发送哪种HEADER消息,都必须保证在发送HEADER之前没有输出任何信息到终端浏览器。一、使用HEADER发送文本类型头信息例1:<?phpheader("Content-Type: text/html; charset=UTF-8");//告知各位观众下面将要输出的文本类型?>例1输出HEADER告诉浏览器将要输出的文本编码格式为UTF-8。这在全页面PHP处理上是必须的,否则可能会
阅读全文
摘要:问:为什么我在点击浏览器的后退按钮后,所有字段的信息都被清空了?答:这是由于你在你的表单提交页面中使用了 session_start 函数。该函数会强制当前页面不被缓存。解决办法为,在你的 Session_start 函数后加入 header("Cache-control: private"); 注意在本行之前你的PHP程序不能有任何输出。今天给同事分享了一下前端性能优化,在介绍了php文件缓存的方法后,发现一个AJAX请求的文件,在请求头中始终有一个:Pragma:no-cache,导致这个文件不能被浏览器缓存。接着发现这个站几乎所有动态页面都有这个参数Pragma:no
阅读全文
摘要://页面正常状态 200 okheader(‘HTTP/1.1200OK’);//设置一个404头: 404文件找不到错误header(‘HTTP/1.1404NotFound’);//设置地址被永久的重定向301重定向header(‘HTTP/1.1301MovedPermanently’);//转到一个新地址header(‘Location:http://www.example.org/’);//文件延迟转向:header(‘Refresh:10;url=http://www.example.org/’);print‘Youwillberedirectedin10seconds’;//当然
阅读全文
摘要:1.连接处理:在 PHP 内部,系统维护着连接状态,其状态有三种可能的情况:0 - NORMAL(正常)1 - ABORTED(异常退出)2 - TIMEOUT(超时)当 PHP 脚本正常地运行 NORMAL 状态时,连接为有效。当远程客户端中断连接时,ABORTED 状态的标记将会被打开。远程客户端连接的中断通常是由用户点击 STOP 按钮导致的。当连接时间超过 PHP 的时限时,TIMEOUT 状态的标记将被打开。可以决定脚本是否需要在客户端中断连接时退出。有时候让脚本完整地运行会带来很多方便,即使没有远程浏览器接受脚本的输出。默认的情况是当远程客户端连接中断时脚本将会退出。该处理过程可由
阅读全文
摘要:前几天在学习使用 CURL 时遇到一个问题:在 a.php 中以 POST 方式向 b.php 提交数据,但是 b.php 下就是无法接收到数据,而 CURL 操作又显示成功,非常诡异。后经多方查找,在某个网友的博客中得到了启发。原来,“传递一个数组到CURLOPT_POSTFIELDS,cURL会把数据编码成 multipart/form-data,而然传递一个URL-encoded字符串时,数据会被编码成 application/x-www-form-urlencoded。”,而和我一样对 CURL 不太熟悉的人在编写程序时,代码往往是下面的样子:$data = array( 'T
阅读全文