一、异步文件读取
1、参数说明
swoole_async_readfile(string $filename, mixed $callback);
Swoole\Async::readFile(string $filename, mixed $callback);
2、例子
swoole_async_readfile(__DIR__."/1.txt", function($filename, $content){
echo "$filename $content\n";
});
二、异步文件写入
1、参数说明
swoole_async_writefile(string $filename, string $fileContent, callback $callback=null, int $flags=0)
参数1:文件的名称,必须有可写权限
参数2:要写入到文件的内容,最大可写入 4M
参数3:写入后的回调函数,可选
参数4:写入的选项,可以使用 FILE_APPEND 表示追加到文件末尾
2、例子
$content = "hello world";
swoole_async_writefile("2.txt", $content, function($filname){
echo $filname;
}, 0);
三、异步事件
1、参数说明
bool swoole_event_add(int $sock, mixed $read_callback, mixed $write_callback=null, int $flag=null);
2、例子
$fp = stream_socket_client("tcp://www.qq.com:80", $errNo, $errStr, 30);
fwrite($fp, "GET / HTTP/1.1\r\nHost:www.qq.com\r\n\r\n");
swoole_event_add($fp, function($fp){
$resp = fread($fp, 8192);
var_dump($resp);
swoole_event_del($fp);
fclose($fp);
});
echo "这个先执行完成\n";
四、异步 mysql
1、参数说明
swoole_mysql
connet
on
escape
query
2、例子
$db = new swoole_mysql();
$config = [
"host" => "127.0.0.1",
"user" => "root",
"password" => "root",
"database" => "mysql",
"charset" => "utf8",
];
$db->connect($config, function ($db, $r){
if($r === false){
var_dump($db->connect_errno, $db->connect_error);
die("连接失败");
}
$sql = "show tables";
$db->query($sql, function (swoole_mysql $db, $r){
if($r === false){
var_dump($db->error);
die("操作失败");
}else{
var_dump("操作成功");
var_dump($db->affected_rows, $db->insert_id);
}
var_dump($r);
$db->close();
});
});