日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:184日期:2022-09-11 09:47:32

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

swoole中為我們提供了一個(gè)swoole_http_server類,方便我們處理http請(qǐng)求。

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

一、創(chuàng)建一個(gè)簡單的http服務(wù)

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

二、處理靜態(tài)文件

swoole中已經(jīng)幫我們內(nèi)置了兩個(gè)配置參數(shù),只需要簡單配置一下就可以實(shí)現(xiàn)。

不過功能簡易,不建議外網(wǎng)使用,有需求的可以自已實(shí)現(xiàn)。

<?php$server = new swoole_http_server(’0.0.0.0’, 8888); $server->set([ //配置靜態(tài)文件根目錄 ’document_root’ => __DIR__ . ’/statics/’, //開啟靜態(tài)文件請(qǐng)求處理功能,這樣當(dāng)請(qǐng)求的是一個(gè)靜態(tài)文件時(shí),swoole自動(dòng)會(huì)在上面配置的目錄中查找并返回 ’enable_static_handler’ => true,]); $server->on(’request’, function ($request, $response) { }); $server->start();

三、處理文件上傳

<?php//創(chuàng)建一個(gè)http server服務(wù)$server = new swoole_http_server(’0.0.0.0’, 8888); $server->set([ //文件上傳大小不超過該值 ’package_max_length’ => 1024 * 1024 * 50, //設(shè)置文件上傳的臨時(shí)目錄 ’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(’上傳失敗’); } }}); //啟動(dòng)服務(wù)$server->start();

我們?cè)趕tatics目錄下創(chuàng)建一個(gè)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>

四、處理路由文件自動(dòng)加載

<?php//創(chuàng)建一個(gè)http server服務(wù)$server = new swoole_http_server(’0.0.0.0’, 8888); $server->set([ //配置項(xiàng)目的目錄 ’project_path’ => __DIR__ . ’/src/’,]); $server->on(’WorkerStart’, function ($server, $worker_id) { //注冊(cè)自動(dòng)加載函數(shù) 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()); }}); //啟動(dòng)服務(wù)$server->start();

我們?cè)谀夸?src 下創(chuàng)建 test 目錄,并創(chuàng)建 test.php 文件

<?phpnamespace Test; class Test{ public function test() { return ’test’; }}

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

通過$request->server[’path_info’] 來找到模塊,控制器,方法,然后注冊(cè)我們自已的加載函數(shù),引入文件。實(shí)例化類對(duì)象,然后調(diào)用方法,返回結(jié)果。

注意,不要將 spl_autoload_register 放到 onStart 事件回調(diào)函數(shù)中。

onStart 回調(diào)中,僅允許echo、打印Log、修改進(jìn)程名稱。不得執(zhí)行其他操作。

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php socket用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》及《php程序設(shè)計(jì)算法總結(jié)》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

標(biāo)簽: PHP
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
香蕉久久国产| 久久精品 人人爱| 91麻豆精品| 亚洲自啪免费| 91tv亚洲精品香蕉国产一区| 国产调教精品| 日本一区二区中文字幕| 精品在线91| 黄在线观看免费网站ktv| 免费在线观看一区| 亚洲欧美伊人| 99视频+国产日韩欧美| 一区免费视频| 国产一区成人| 国产精品亚洲欧美日韩一区在线| 国产麻豆精品| 国产精品日韩精品中文字幕| 嫩草伊人久久精品少妇av杨幂| 精品国产亚洲一区二区三区在线 | 中文字幕亚洲精品乱码| 日韩中文字幕区一区有砖一区| 91精品蜜臀一区二区三区在线| 欧美不卡在线| 乱一区二区av| 婷婷综合社区| 日韩精品一区二区三区av| 亚洲狼人精品一区二区三区| 日韩午夜视频在线| 国产精品夜夜夜| 99国产精品久久久久久久 | 久久久国产精品一区二区中文| 日韩精品一区二区三区免费观看| 婷婷激情图片久久| 国产乱码精品一区二区三区四区| 国产精品一区二区三区av| 不卡一二三区| 日韩成人一级| 亚洲女同一区| 国产第一亚洲| 日本强好片久久久久久aaa| 国产精品99免费看| 成人日韩av| 人人爱人人干婷婷丁香亚洲| 99xxxx成人网| 日韩中文视频| 日韩一区二区三区四区五区| 99久久亚洲精品| 免费一级欧美片在线观看网站| 美国三级日本三级久久99| 久久激情网站| 国产 日韩 欧美 综合 一区| 欧美日韩 国产精品| 男人天堂欧美日韩| 久久久久99| 国产一区二区三区四区五区传媒| 日本一不卡视频| 视频在线观看一区二区三区| 欧洲一区二区三区精品| 国产日韩免费| 影视先锋久久| 九九在线精品| 日韩精品首页| 国产欧美自拍| 亚洲伊人精品酒店| 蜜臀久久久久久久| 久久久久久夜| 久久爱www成人| 国产精品99一区二区三区| 日本成人中文字幕| 久久超碰99| 欧美伊人影院| 国产一区国产二区国产三区| 久久精品72免费观看| 韩日一区二区| 国产欧美一区二区色老头| 91亚洲精品视频在线观看| 在线亚洲一区| 日韩av一级片| 亚洲欧洲av| 国产激情精品一区二区三区| 日本成人在线一区| 久久精品女人| 久久99久久人婷婷精品综合| sm捆绑调教国产免费网站在线观看| 国产视频网站一区二区三区| 精品免费视频| 国产高清亚洲| 亚洲高清av| 日韩一二三区在线观看| 国产免费av国片精品草莓男男| 欧美伊人久久| 亚洲一级少妇| 日韩一区二区三区精品| 亚洲午夜免费| 精品99在线| 福利一区二区免费视频| 欧美理论视频| 精品一区免费| 欧美亚洲综合视频| 日韩av网站在线免费观看| 午夜影院一区| 久久五月天小说| 欧美一级久久| 国产精品观看| 黄色av日韩| 黑丝美女一区二区| 国产欧美在线| 韩国女主播一区二区三区| 电影亚洲精品噜噜在线观看| 成人精品亚洲| 蜜桃一区二区三区| 在线亚洲免费| 日韩免费视频| 免费污视频在线一区| 麻豆精品视频在线观看视频| 欧美国产专区| 亚洲精品午夜av福利久久蜜桃| 午夜国产精品视频| 欧美啪啪一区| 麻豆精品视频在线观看视频| 精品日韩一区| 久久av电影| 成人精品国产亚洲| 日韩精品欧美激情一区二区| 久久免费大视频| 亚洲深夜福利| 精品日产乱码久久久久久仙踪林| 欧美激情国产在线| 日韩三级视频| 日本视频在线一区| 欧美成人亚洲| 偷拍亚洲精品| 国产美女视频一区二区| 欧美国产一级| 91精品啪在线观看国产18| 91精品1区| 欧美日韩视频免费观看| 国产aⅴ精品一区二区三区久久| 人人爱人人干婷婷丁香亚洲| 午夜亚洲一区| 日韩av免费| 免费在线看一区| jiujiure精品视频播放| 香蕉久久一区| 国产偷自视频区视频一区二区| 日本三级亚洲精品| 亚洲一区不卡| 国产精品欧美三级在线观看 | 亚洲欧洲高清| 国产精品毛片一区二区三区| 人在线成免费视频| 亚洲网址在线观看| 日韩一区电影| 天堂久久一区| 亚洲激情婷婷| 欧美日韩夜夜| 免费在线观看精品| 精品美女在线视频| 国产日韩视频| 成人看片网站| 久久久精品国产**网站| 欧美粗暴jizz性欧美20| 日韩三区免费| 国产精品嫩草99av在线| 欧美日韩在线网站| 久久国产视频网| 国产婷婷精品| 精品99在线| 免费看av不卡| 日韩精品一区二区三区免费观影 | 日韩精品免费视频人成| 国产亚洲午夜| 国产精品第一| 国产亚洲欧美日韩在线观看一区二区| 国产免费久久| 日韩精品一级| 久久夜夜操妹子| 国产69精品久久| 亚洲+小说+欧美+激情+另类| 97在线精品| 日本特黄久久久高潮| 石原莉奈在线亚洲三区| 日韩国产欧美| 日韩视频一二区| 欧美日韩一区二区高清| aa国产精品| 99视频在线精品国自产拍免费观看| 久久久91麻豆精品国产一区| 久久99久久久精品欧美| 啪啪国产精品| 午夜av一区| 亚洲女同av| 99久久精品网| 九九99久久精品在免费线bt| 免费在线成人| 日韩有吗在线观看| 在线视频亚洲| 日韩精品一区二区三区免费观看| 国产在线观看91一区二区三区 | 久久男人天堂|