欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > PHP swoole中http_server的配置與使用方法實例分析

PHP swoole中http_server的配置與使用方法實例分析

熱門標簽:濟源百應電銷機器人聯系方式 嘟嘟云外呼系統 重慶外呼電銷系統多少錢 南寧電話外呼系統線路 正規電銷機器人系統 咸陽電銷 南京3D地圖標注 邢臺400電話辦理 辦理400電話哪家好點

本文實例講述了PHP swoole中http_server的配置與使用方法。分享給大家供大家參考,具體如下:

swoole中為我們提供了一個swoole_http_server類,方便我們處理http請求。

但是它對http協議的支持并不完整,所以一般建議在前面加一層nginx進行代理,對于php文件的處理交由swoole處理。

一、創建一個簡單的http服務

?php
//創建一個http server服務
$server = new swoole_http_server('0.0.0.0', 8888);
 
$server->set([
  'package_max_length' => 1024 * 1024 * 10,
  //設置文件上傳的臨時目錄
  'upload_tmp_dir' => __DIR__ . '/uploads/',
]);
 
//設置request事件回調
//函數有兩個參數:
//swoole_http_request對象,負責http請求相關信息
//swoole_http_response對象,負責向客戶端響應相關信息
$server->on('request', function (swoole_http_request $request, swoole_http_response $response) {
  //請求的頭部信息
  var_dump($request->header);
 
  //請求相關的服務器信息,相當于PHP中的$_SERVER
  var_dump($request->server);
 
  //請求的GET參數,相當于PHP中的$_GET
  var_dump($request->get);
 
  //請求的POST參數,相當于PHP中的$_POST
  var_dump($request->post);
 
  //請求的COOKIE信息
  var_dump($request->cookie);
 
  //文件上傳信息,文件大小不超過package_max_length的值
  var_dump($request->files);
 
  //獲取原始POST請求數據,相當于fopen('php://input');
  var_dump($request->rawContent());
 
  //獲取完整http請求報文
  var_dump($request->getData());
 
  //向客戶端發送信息
  $response->end('hello');
});
 
//啟動服務
$server->start();

二、處理靜態文件

swoole中已經幫我們內置了兩個配置參數,只需要簡單配置一下就可以實現。

不過功能簡易,不建議外網使用,有需求的可以自已實現。

?php
$server = new swoole_http_server('0.0.0.0', 8888);
 
$server->set([
  //配置靜態文件根目錄
  'document_root' => __DIR__ . '/statics/',
  //開啟靜態文件請求處理功能,這樣當請求的是一個靜態文件時,swoole自動會在上面配置的目錄中查找并返回
  'enable_static_handler' => true,
]);
 
$server->on('request', function ($request, $response) {
 
});
 
$server->start();

三、處理文件上傳

?php
//創建一個http server服務
$server = new swoole_http_server('0.0.0.0', 8888);
 
$server->set([
  //文件上傳大小不超過該值
  'package_max_length' => 1024 * 1024 * 50,
  //設置文件上傳的臨時目錄
  'upload_tmp_dir' => __DIR__ . '/tmp/',
  'upload_dir' => __DIR__ . '/uploads/',
  'document_root' => __DIR__ . '/statics/',
  'enable_static_handler' => true,
]);
 
$server->on('request', function ($request, $response) use ($server) {
  if ($request->server['path_info'] == '/upload') {
    $tmp = $request->files['upload']['tmp_name'];
    $upload = $server->setting['upload_dir'] . $request->files['upload']['name'];
    if (file_exists($tmp) 
      move_uploaded_file($tmp, $upload)) {
      $response->header('Content-Type', 'text/html; charset=UTF-8');
      $response->end('上傳成功');
    } else {
      $response->end('上傳失敗');
    }
  }
});
 
//啟動服務
$server->start();

我們在statics目錄下創建一個upload.html文件:

!doctype html>
html lang="zh-CN">
head>
  meta charset="UTF-8">
  title>文件上傳/title>
/head>
body>
form action="/upload" method="post" enctype="multipart/form-data">
  input type="file" name="upload" value="">
  input type="submit" value="提交">
/form>
/body>
/html>

四、處理路由文件自動加載

?php
//創建一個http server服務
$server = new swoole_http_server('0.0.0.0', 8888);
 
$server->set([
  //配置項目的目錄
  'project_path' => __DIR__ . '/src/',
]);
 
$server->on('WorkerStart', function ($server, $worker_id) {
  //注冊自動加載函數
  spl_autoload_register(function ($class) use($server) {
    $class = $server->setting['project_path'] . str_replace('\\', DIRECTORY_SEPARATOR, $class) . '.php';
 
    if (file_exists($class)) {
      include_once $class;
    }
  });
});
 
$server->on('request', function ($request, $response) use ($server) {
  $pathInfo = explode('/', ltrim($request->server['path_info'], '/'));
 
  //模塊/控制器/方法
  $module = $pathInfo[0] ?? 'Index';
  $controller = $pathInfo[1] ?? 'Index';
  $method = $pathInfo[2] ?? 'index';
 
  try {
    $class = "\\{$module}\\{$controller}";
    $result = (new $class)->{$method}();
    $response->end($result);
  } catch (\Throwable $e) {
    $response->end($e->getMessage());
  }
});
 
//啟動服務
$server->start();

我們在目錄 src 下創建 test 目錄,并創建 test.php 文件

?php
namespace Test;
 
class Test
{
  public function test()
  {
    return 'test';
  }
}

然后訪問 127.0.0.1:8888/test/test/test 就可以看到返回結果了。

通過$request->server['path_info'] 來找到模塊,控制器,方法,然后注冊我們自已的加載函數,引入文件。實例化類對象,然后調用方法,返回結果。

注意,不要將 spl_autoload_register 放到 onStart 事件回調函數中。

onStart 回調中,僅允許echo、打印Log、修改進程名稱。不得執行其他操作。

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP網絡編程技巧總結》、《php socket用法總結》、《php面向對象程序設計入門教程》、《PHP數據結構與算法教程》及《php程序設計算法總結》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • 詳解PHP Swoole長連接常見問題
  • 詳解PHP Swoole與TCP三次握手
  • 詳解PHP7開啟OPcache和Swoole性能的提升對比
  • php中Swoole的熱更新實現代碼實例
  • windows系統php環境安裝swoole具體步驟
  • php使用Swoole實現毫秒級定時任務的方法
  • php使用goto實現自動重啟swoole、reactphp、workerman服務的代碼
  • PHP swoole的process模塊創建和使用子進程操作示例
  • PHP swoole中使用task進程異步的處理耗時任務應用案例分析
  • 淺談swoole的作用與原理

標簽:平頂山 隴南 武漢 河南 通遼 黃山 南通 唐山

巨人網絡通訊聲明:本文標題《PHP swoole中http_server的配置與使用方法實例分析》,本文關鍵詞  PHP,swoole,中,http,server,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP swoole中http_server的配置與使用方法實例分析》相關的同類信息!
  • 本頁收集關于PHP swoole中http_server的配置與使用方法實例分析的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    综合av第一页| 日韩极品在线观看| 国产精品18久久久久| 亚洲精品国产精品国自产网站| 日韩午夜电影av| 日韩综合一区二区| 国产精品无码毛片| 日韩一区二区在线看| 无吗不卡中文字幕| 中文在线永久免费观看| 欧美一级黄色片| 日本在线观看不卡视频| 好吊日免费视频| 欧美mv日韩mv国产| 九九精品一区二区| 激情五月深爱五月| 国产精品嫩草久久久久| k8久久久一区二区三区| 在线观看成人免费视频| 亚洲高清视频的网址| 污片免费在线观看| chinese麻豆新拍video| 亚洲精品高清在线| 国产精品99久久久久久宅男| 黑人操日本美女| 中文字幕一区二区三中文字幕| fc2成人免费人成在线观看播放| 色综合久久精品| 亚洲图片有声小说| 久久精品老司机| 久久久久久免费| 成人激情av网| 精品视频123区在线观看| 性感美女极品91精品| 91精品人妻一区二区| 久久久影院官网| 成人性生交大片免费看视频在线 | 亚洲熟妇一区二区| 欧美日韩高清在线| 美女www一区二区| 亚洲成人激情综合网| 亚洲一区二区三区蜜桃| 欧美韩国一区二区| 中文字幕avav| 精品少妇一区二区三区| 福利一区福利二区| 精品婷婷伊人一区三区三| 美腿丝袜亚洲综合| 欧美另类videoxo高潮| 亚洲国产sm捆绑调教视频| 在线国产视频一区| 中文字幕在线免费不卡| 精品1卡二卡三卡四卡老狼| 久久蜜桃一区二区| 91在线精品秘密一区二区| 免费成人你懂的| 91蝌蚪国产九色| 国产伦理在线观看| 日韩免费高清av| 亚洲午夜久久久久久久久久久| 97人妻精品一区二区三区免| 欧美激情一区二区三区不卡| 国产艳妇疯狂做爰视频| 久久久精品免费免费| 91日韩精品一区| 精品日产卡一卡二卡麻豆| 高清免费成人av| 欧美一区二区性放荡片| 成人av免费网站| 日韩亚洲欧美中文三级| caoporn国产一区二区| 精品国产百合女同互慰| 99re视频这里只有精品| 久久免费看少妇高潮| 91免费在线看| 国产偷v国产偷v亚洲高清| 国产麻豆剧传媒精品国产| 国产三级欧美三级日产三级99| 国产a级片视频| 国产精品拍天天在线| 亚洲精品理论片| 一区二区激情视频| 一级性生活免费视频| 免费欧美在线视频| 欧美午夜视频网站| 成人综合日日夜夜| 久久亚洲一级片| xxxx黄色片| 一区二区三区高清| 男人晚上看的视频| 九九国产精品视频| 亚洲美女精品一区| 久久性爱视频网站| 在线观看欧美日本| 免费看欧美女人艹b| 超碰男人的天堂| 亚洲欧美日韩国产另类专区| www.狠狠爱| 五月天激情综合网| 在线观看91视频| 成人一区二区三区| 国产亚洲欧洲997久久综合| 无码人妻精品一区二区三区温州| 一区二区不卡在线视频 午夜欧美不卡在| 99成人在线观看| 欧美二区三区91| jlzzjlzz亚洲日本少妇| 国产日产欧产精品推荐色| 欧美做受高潮6| 男女男精品视频| 91麻豆精品国产91久久久使用方法 | 性做久久久久久免费观看欧美| 色综合一个色综合亚洲| 福利一区二区在线| 中文欧美字幕免费| 国产3级在线观看| 国产精品一二二区| 国产亚洲精品bt天堂精选| 亚洲午夜精品久久久久久高潮| 蜜臀av性久久久久蜜臀av麻豆| 欧美一区二区三区日韩视频| 精品国产乱码久久久久夜深人妻| 亚洲最大色网站| 欧美日韩黄色影视| 精品国产伦理网| 一区二区欧美精品| 在线看不卡av| 99热这里只有精品2| 亚洲男人天堂av| 欧美视频日韩视频在线观看| 麻豆精品国产传媒| 一区二区成人在线观看| 欧美久久久影院| 看全色黄大色黄女片18| 全部av―极品视觉盛宴亚洲| 欧美电影精品一区二区| 中文字幕人妻一区二区三区在线视频| 久久精品国产亚洲5555| 久久看人人爽人人| 天堂av免费在线| 99精品视频一区| 亚洲午夜精品一区二区三区他趣| 欧美乱妇15p| 国产ts丝袜人妖系列视频| 精品亚洲国产成人av制服丝袜| 久久亚洲精华国产精华液 | 国产激情无码一区二区三区| 成人av网址在线| 亚洲精品中文在线| 69p69国产精品| 精品无码国产污污污免费网站| 国产美女一区二区三区| 国产精品福利一区| 欧美性受极品xxxx喷水| 国产中文字幕一区二区| 极品尤物av久久免费看| 国产精品免费视频观看| 在线观看中文字幕不卡| 国产在线观看无码免费视频| 国产精一品亚洲二区在线视频| 1区2区3区精品视频| 欧美另类videos死尸| 国产毛片久久久久久久| 国产成人亚洲综合a∨婷婷图片| 亚洲嫩草精品久久| 99精品久久99久久久久| 视频一区二区三区入口| 在线不卡欧美精品一区二区三区| 欧美一区二区三区小说| 四虎永久免费在线观看| 粉嫩一区二区三区性色av| 手机av在线看| 久久久久亚洲av无码麻豆| 奇米综合一区二区三区精品视频 | 在线播放日韩导航| 日韩免费成人av| 91麻豆国产自产在线观看| 麻豆免费精品视频| 中文字幕在线一区二区三区| 91精品国产手机| 99久久久免费精品| 亚洲精品激情视频| 国产另类ts人妖一区二区| 亚洲午夜视频在线观看| 国产亚洲福利社区一区| 欧美日韩国产综合草草| 日本黄色激情视频| 年下总裁被打光屁股sp| 国产黄人亚洲片| 丝袜美腿亚洲综合| 自拍av一区二区三区| 欧美成人福利视频| 在线观看成人免费视频| 日本午夜精品视频| 黄色激情在线观看| 成人黄色小视频| 久久99久久久欧美国产| 亚洲成人在线网站| 国产精品久久久久国产精品日日| 精品久久久久久亚洲综合网 |