php sapi全拼,php sapi type
PHP不一定要以http方式调用。PHP与其它应用的接口叫做SAPI,选用不同的SAPI决定了调用PHP的方式。例如Apache的mod_php就是一个SAPI的实现,用于Apache与PHP交互,同样,CGI和FastCGI(如fpm)的SAPI实现也是用于以HTTP方式调用PHP解释器。除此之外,还有很多SAPI,如CLI的SAPI可以支持命令行方式运行PHP脚本,运用php的pcntl_fork函数可以用与C类似的方式(两次fork)创建deamon进程,这样PHP脚本就可以当做服务使用了。至于服务与其它进程的交互,php支持socket。我写过一个小的Demo,展示了如何用PHP写Server,你可以看一下:
//Accpet the http client request and generate response content.
//As a demo, this function just send "PHP HTTP Server" to client.
function handle_http_request($address, $port)
{
$max_backlog = 16;
$res_content = "HTTP/1.1 200 OK\nContent-Length: 15\nContent-Type: text/plain; charset=UTF-8\n\nPHP HTTP Server
";
$res_len = strlen($res_content);
//Create, bind and listen to socket: 127.0.0.1:8888
if(($socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === FALSE)
{
echo "Create socket failed!\n";
exit;
}
if((socket_bind($socket, $address, $port)) === FALSE)
{
echo "Bind socket failed!\n";
exit;
}
if((socket_listen($socket, $max_backlog)) === FALSE)
{
echo "Listen to socket failed!\n";
exit;
}
//Loop
while(TRUE)
{
if(($accept_socket = socket_accept($socket)) === FALSE)
{
continue;
}
else
{
socket_write($accept_socket, $res_content, $res_len);
socket_close($accept_socket);
}
}
}
//Run as deamon process.
function run()
{
if(($pid1 = pcntl_fork()) === 0)
//First child process
{
posix_setsid(); //Set first child process as the session leader.
if(($pid2 = pcntl_fork()) === 0)
//Second child process, which run as deamon.
{
handle_http_request('www.codinglabs.org', 9999); //Replaced by your own domain or address.
}
else
{
//Second child process exit;
exit;
}
}
else
{
//First child process exit;
pcntl_wait($status);
}
}
//Entry point.
run();
php sapi全拼,php sapi type相关推荐
- php sapi全拼,php sapi
php的SAPI,CLI SAPI,CGI SAPI 首先一个问题:在命令行下执行:php -r 'echo 12;' 控制台会打印出 12: 这个过程不是很奇妙么,我输入的是shell命令,但是执行 ...
- oracle汉字转拼音(获得全拼/拼音首字母/拼音截取等)
oracle汉字转拼音(获得全拼/拼音首字母/拼音截取等) oracle 字符集 GBK 没有问题 , UTF -8 需要修改一下 1.获得全拼 SELECT GETHZPY.GETHZFULLPY( ...
- js汉语转拼音(全拼、首字母、拼音首字母)
新建js文件first_alphabet.js 1 // JavaScript Document 2 // 汉字拼音首字母列表 本列表包含了20902个汉字,用于配合 ToChineseSpell 3 ...
- js 获取汉字首拼和全拼和拼音
今天需要用到js获取汉字拼音,提供一个js 下载地址为 http://www.yzzmf.com/images/jquery_plugs/ChinesePY.js 源码如下 var Pinyin ...
- Solr搜索引擎 — 中文全拼简拼分词
搞定了中文分词下一个就是要来搞定拼音分词了,拼音分词有分为全拼和简拼 附上: 喵了个咪的博客:http://w-blog.cn Solr官网:http://lucene.apache.org/solr ...
- 搜索功能(支持全拼,首字母,不区分大小写,关键字变色等)
上次写的可能有人说阅读性太差,所以改成这种编辑了 用到的工具主要是pinyin4j(compile 'com.belerweb:pinyin4j:2.5.1'),将字符串转化成首字拼写或全拼,然后是计 ...
- 3389端口的入侵,Win Server2000 全拼输入法漏洞(转)
由于微软对中国产品不付责任的态度,使得安装了终端服务和全拼的w2k 服务器存在着远程登陆并能获取超级用户权限的严重漏洞. 其过程如下: 1.扫描 3389 port 终端服务默认: 2.用终端客户端程 ...
- excel函数:汉字转全拼_30天中30个Excel函数:01 –精确
excel函数:汉字转全拼 Welcome to the Contextures 30 Excel Functions in 30 Days (30XL30D) challenge. Thanks f ...
- ARM 9 指令系统指令英文全拼
文章目录 ARM 处理器的寻址方式 寄存器移位寻址 ARM 指令集 条件码 ARM 数据处理类指令 ARM 分支指令 ARM 存储器访问指令 ARM 协处理器指令 ARM 软件中断指令 ARM处理器的 ...
最新文章
- VS Code 调试 OneFlow
- python package_Python之package、module
- Element el-upload上传组件详解
- Linux各个版本配置要求
- 小甲鱼Python笔记(下)
- 重磅!13所985高校,成立大学联盟!
- Vue cli3+Hubuilder将项目打包为App
- ActiveMQ学习(三)——MQ的通讯模式
- 惊呆!到2020年三大运营商5G投入将达1800亿美元
- 用Dalvik指令集写个java类
- Vue遍历对象,数组,v-if、v-if-else、v-else
- [转载] 使用神经网络和ml模型预测客户流失
- 怎么看vray渲染进度_3dmax渲染怎么看渲染时间
- PCkit3.5烧写器直接上手使用方法
- rf 433/868MHZ sub-1g 无线通信知识系列(3):组网信道
- 黑鲨手机出现要启动android,黑鲨手机死机解决办法详细说明
- 【论文阅读CVPR2019】Text2Scene: Generating Compositional Scenes from Textual Descriptions
- csr867x入门之提示音配置(十二)
- 【转载】linux top命令及参数详解
- Java***冒泡排序***
热门文章
- linux安装界面键盘失灵,安装win7鼠标键盘失灵怎么办_win7安装界面鼠标键盘失灵解决方法【147下载站】...
- Spacy分词php,spaCy 第二篇:语言模型
- 怎么用matlab画一个笑脸,MATLAB笑脸识别
- mac安装win10后触摸板没有右键功能键的添加技巧
- 使用NLTK对英文文章分句,避免缩略词标点符号干扰
- 前端des加密,后端des解密
- html图片缩放全部显示不全,100% width CSS 在缩小/放大窗口时候内容被截断或显示不全...
- 2021南京大学计算机考研分数线,【34所院校线】南京大学2021考研复试分数线已公布...
- GEF活性检测试剂盒的主要用途和应用
- 如何避免黑客攻击?国内首个云端加密代码库来帮忙