<?php
/**
* 异步IO - 读
* readfile 有大小限制最大4M
* read 支持超大文件读取 每次分段读取$size的字节 不会占用太多内存
*/
$result = swoole_async_readfile(__DIR__ . '/1.txt', function($filename, $fileContent) {
echo "文件路径及文件名称 : " . $filename . '\n';
echo "文件里的内容 : " . $fileContent . '\n';
});
var_dump($result);
echo "start" . PHP_EOL;
/**
* 异步IO - 写
* writefile 有大小限制最大4M
* 超过限制查阅文档解决
* notice: 默认情况下会覆盖文件的内容 添加第四个参数 'FILE_APPEND' 自动追加
*/
swoole_async_writefile(__DIR__ . '/1.log', date('Y-m-d H:i:s', time()), function($filename) {
echo "success " . PHP_EOL;
}, FILE_APPEND);
echo "start" . PHP_EOL;
===========================================================================================
给http_server添加日志记录功能
/**
* 创建HttpServer
*/
$http = new swoole_http_server("0.0.0.0", 8810);
// 需要访问静态资源需要打开配置 并且定义静态资源的文件所在位置 如果http请求有静态资源的名称则会访问静态资源的文件 不会访问on('request')部分
// 目录级的静态资源可以以下方式访问
// 访问资源可以是 http://127.0.0.1:8811/index_next.html
// 也可以是 http://127.0.0.1:8811/next/index_next.html
$http->set([
'enable_static_handler' => true,
'document_root' => '/Applications/MAMP/htdocs/swoole学习/swoole_demo/data'
]);
$http->on('request', function($request, $response) {
// 日志记录
$content = [
'date:' => date('Ymd H:i:s'),
'get:' => $request->get,
'post:' => $request->post,
'header:' => $request->header,
];
// 异步日志记录
swoole_saync_writefile(__DIR__ . '/access.log', json_encode($content) . PHP_EOL, function($filename) {
}, FILE_APPEND);
$response->cookie('mingzi', 'neirong', time() + 1800);
$response->end(json_encode($request->get));
});
$http->start();