search
Homephp教程php手册3种方法实现PHP多线程异步请求

3种方法实现PHP多线程异步请求

Jun 06, 2016 pm 07:48 PM
liphpaccomplishasynchronousmethodthreadaskEnter

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 在网上看过很多版本的PHP异步请求方法,这里简单总结几个常用方法分享给大家 1、用CURL实现一步请求 CURL扩展是我们在开发过程中最常用的一种方法,他是一个强大的HTTP命令行工具,可以模拟POST/GET

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  在网上看过很多版本的PHP异步请求方法,这里简单总结几个常用方法分享给大家

  1、用CURL实现一步请求

  CURL扩展是我们在开发过程中最常用的一种方法,他是一个强大的HTTP命令行工具,可以模拟POST/GET等HTTP请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。

  示例:

  [php]

  

  $cl = curl_init();

  $curl_opt = array(CURLOPT_URL, 'http:///demo.php',

  CURLOPT_RETURNTRANSFER, 1,

  CURLOPT_TIMEOUT, 1,);

  curl_setopt_array($cl, $curl_opt);

  curl_exec($ch);

  curl_close($ch);

  ?>

  由于CUROPT_TIMEOUT属性最小值为1,这就意味着在客户端必须等待1秒,这也是使用CURL方法的缺点

  2、用popen()函数实现异步请求

  语法格式:popen(command,mode)

  示例:

  [php]

  

  $file = popen("/bin/ls","r");

  //这里是要执行的代码

  //…

  pclose($file);

  ?>

  popen()函数直接打开一个指向进程的管道,速度快,即时相应。但是这个函数是单项的,要么读要么写,而且如果并发数较大,则会产生大量进程,给服务器造成负担。

  另外,如同示例中一样,程序结束后一定要用pclose()来关闭。

  3、用fscokopen()函数实现异步请求

  我们在平时开发邮件发送功能等socket编程时,都会用到这个函数,在使用这个函数之前,我们要在PHP.ini 中开启 allow_url_fopen 选项,另外在变成时,我们还要自己手动拼接出header部分。

  示例:

  [php]

  $fp = fsockopen("/demo.php", 80, $errno, $errstr, 30);

  if (!$fp) {

  echo "$errstr ($errno)
\n";

  } else {

  $out = "GET /index.php  / HTTP/1.1\r\n";

  $out .= "Host: \r\n";

  $out .= "Connection: Close\r\n\r\n";

  fwrite($fp, $out);

  /*这里忽略执行结果

  *测试时可以打开

  while (!feof($fp)) {

  echo fgets($fp, 128);

  }*/

  fclose($fp);

  }

  PHP本身没有多线程,但是我们可以用其他方式来实现多线程的效果,上面列举的三种方式都有各自的优缺点,大家在使用时可以根据程序的需要择优选择。

3种方法实现PHP多线程异步请求

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment