1 Star 0 Fork 0

明河/web-msg-sender

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
start_web.php 1.84 KB
一键复制 编辑 原始数据 按行查看 历史
明河3 提交于 2020-09-17 09:30 . init
<?php
use Workerman\Worker;
use Workerman\Protocols\Http\Request;
use Workerman\Protocols\Http\Response;
use Workerman\Connection\TcpConnection;
include __DIR__ . '/vendor/autoload.php';
// 启动一个webserver,用于吐html css js,方便展示
// 这个webserver服务不是必须的,可以将这些html css js文件放到你的项目下用nginx或者apache跑
$web = new Worker('http://0.0.0.0:2123');
$web->name = 'web';
define('WEBROOT', __DIR__ . DIRECTORY_SEPARATOR . 'web');
$web->onMessage = function (TcpConnection $connection, Request $request) {
$path = $request->path();
if ($path === '/') {
$connection->send(exec_php_file(WEBROOT.'/index.html'));
return;
}
$file = realpath(WEBROOT. $path);
if (false === $file) {
$connection->send(new Response(404, array(), '<h3>404 Not Found</h3>'));
return;
}
// Security check! Very important!!!
if (strpos($file, WEBROOT) !== 0) {
$connection->send(new Response(400));
return;
}
if (\pathinfo($file, PATHINFO_EXTENSION) === 'php') {
$connection->send(exec_php_file($file));
return;
}
$if_modified_since = $request->header('if-modified-since');
if (!empty($if_modified_since)) {
// Check 304.
$info = \stat($file);
$modified_time = $info ? \date('D, d M Y H:i:s', $info['mtime']) . ' ' . \date_default_timezone_get() : '';
if ($modified_time === $if_modified_since) {
$connection->send(new Response(304));
return;
}
}
$connection->send((new Response())->withFile($file));
};
function exec_php_file($file) {
\ob_start();
// Try to include php file.
try {
include $file;
} catch (\Exception $e) {
echo $e;
}
return \ob_get_clean();
}
if(!defined('GLOBAL_START'))
{
Worker::runAll();
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/kylin87/web-msg-sender.git
git@gitee.com:kylin87/web-msg-sender.git
kylin87
web-msg-sender
web-msg-sender
master

搜索帮助