Press "Enter" to skip to content

241 search results for "php"

使用fscok实现异步调用PHP

Web 服务器执行一个脚本,可能几毫秒就完成,也可能几分钟都完不成。如果程序执行缓慢,用户可能没有耐心等下去,就关闭浏览器了。
而有的时候,我们更本不关心这些耗时的脚本的执行结果,但却还要等他执行完返回,才能继续下一步。
那么有没有什么办法,只是简单的触发调用这些耗时的脚本然后就继续下一步,让这些耗时的脚本在服务端慢慢执行?
接下来,我将使用fscokopen来实现这一功能。

Filed in PHP应用
with 36 Comments

PHP实现异步调用方法研究

浏览器和服务器之间是通过 HTTP 协议进行连接通讯的。这是一种基于请求和响应模型的协议。浏览器通过 URL 向服务器发起请求,Web 服务器接收到请求,执行一段程序,然后做出响应,发送相应的html代码给客户端。 这就有了一个问题,Web 服务器执行一段程序,可能几毫秒就完成,也可能几分钟都完不成。如果程序执行缓慢,用户可能没有耐心等下去,就关闭浏览器了。 而有的时候,我们更本不关心这些耗时的脚本的返回结果,但却还要等他执行完返回,才能继续下一步。 那么有没有什么办法,只是简单的触发调用这些耗时的脚本然后就继续下一步,让这些耗时的脚本在服务端慢慢执行? 经过试验,总结出来几种方法,和大家share: 1. 最简单的办法,就是在返回给客户端的HTML代码中,嵌入AJAX调用,或者,嵌入一个img标签,src指向要执行的耗时脚本。 这种方法最简单,也最快。服务器端不用做任何的调用。 但是缺点是,一般来说Ajax都应该在onLoad以后触发,也就是说,用户点开页面后,就关闭,那就不会触发我们的后台脚本了。 而使用img标签的话,这种方式不能称为严格意义上的异步执行。用户浏览器会长时间等待php脚本的执行完成,也就是用户浏览器的状态栏一直显示还在load。 当然,还可以使用其他的类似原理的方法,比如script标签等等。 2. popen() resource popen ( string command, string…

Filed in PHP应用
with 47 Comments

在PHP Module中获取$_GET/$_POST/$_COOKIE的方法研究

  最近在做一个PHP的安全模块,其中要在Module的函数中获取用户的Cookie,从而生成签名;今天找遍Baidu/Google,一点相关资料都 没有,不得已,只好给yahoo PHP dev mail list发了求救信。后来,偶然在Google上看到了一个变量 http_globals ,眼前一亮,虽然没有详细资料,但经过一顿试,N次Segmentation fault以后,终于成功!

Filed in PHP Extension, PHP应用, PHP源码分析
with 18 Comments

PHP:Header

PHP header()
The function declaration: void header ( string string [, bool replace [, int http_response_code]])
The optional replace parameter indicates whether the header should replace a previous similar header, or add a second header of the same type. By default it will replace(true);

Filed in PHP应用
with 7 Comments

一个关于if else容易迷惑的问题

这个本来是之前在微博上有个同学说他经常用来面试别人,大概是说,对于如下代码,你觉得会输出啥:

$a = true;
if ($a) {
  echo "true";
} else label: {
  echo "false";
}

当时没想写,今天中午又有人问我,我想那就介绍下这个原因吧.

Filed in 随笔
with 43 Comments

使用SSE2指令高效实现strtolower

PHP的类名,函数,方法名是不区分大小写的,也就是说无论你怎么定义函数名,实际上在引擎层面查找的时候都是会统一转换成小写形式来做的。 也就是说strtolower的应用是非常普遍的。

当然,PHP也做了很多的设计来避免对字符串做过多的字符串小写操作,比如如果我们在PHP代码中写下:

CamelFunc();

这样的函数调用的时候, PHP会在编译时刻就把CamelFunc全部小写,然后存储在原始字面量之后(PHP-5.4 literals)。

Filed in GNU C/C++, PHP8, PHP应用, 随笔
with 15 Comments

Yaf 3.2 发布

经过俩周多的重构,终于一咬牙今天发布了Yaf 3.2.0 beta, 要不然一直在想各种可能的优化点,不停的写,没完了, 🙂

这次的重构的最初出发点是把原来的Yaf对象从PHP的原生对象,改成了自定义的对象:

Filed in PHP应用, 转载
with 22 Comments

Yac 2.1 升级说明

Yac (Yet Another cache)也是之前我在微博的时候开发的一个为PHP使用的,Lock-free, Shared Memory, User Data Cache,用来替代当时微博在PHP机器上装的本地Memcache, 因为当时的需求特点,最初做了完全无锁的设计,但是这样有一个隐患就是用户有可能获得“错误”的数据,虽然之前的测试概率非常非常低。 关于Yac的设计,可以参考我7年前写的Yac (Yet Another Cache) - 无锁共享内存Cache

作为我的Ya全家桶的重要一员, 在我优化完一轮Yaf, Yar, Yaconf以后,Yac当然也不能少了。

Filed in PHP7, PHP应用, 随笔
with 12 Comments

Can't find what you're looking for? Try refining your search: