php判断数组中是否存在某个值常用代码:<?php $arr_a = array("a", "b", "c", 1); if(in_array("a", $arr_a)){   echo 'a 在 $arr_a 数组中存在'; } else { &
php判断文件是否存在:file_exists函数 — 检查文件或目录是否存在代码:<?php $file = "gaojiufeng.txt"; if(file_exists($file)) {     echo "文件".$file."存在"; } else {      echo 
levenshtein函数可以计算两个字符串之间的编辑距离,那么何为编辑距离?编辑距离概念:编辑距离,是指两个字串之间,通过替换or插入or删除等操作将字符串str1转换成str2所需要操作的最少字符数量。 该算法的复杂度是 O(m*n),其中 n 和 m 分别是str1 和str2的长度注意:如果其中一个字符串参数长度大于限制的255个字符时,返回-1。举个例子1:只需要七次替换or插入or删除就能把gaojiufeng变成gaoecho levenshtein('gaoji
nginx版本:<?php //告诉nginx禁止缓存老夫的响应内容 header('X-Accel-Buffering: no'); // nginx要加这一行 //打开缓冲区 if (ob_get_level() == 0) {     ob_start(); } //循环输出 for ($i = 0; 
在workerman中我们可以看到常用的socket事件onConnect,onMessage,onClose,实际上socket不存在这些事件,workerman只是为了方便开发者。自己也在写相关的东西,正好记录下。(1).当socket可读,通过stream_socket_accept 或者socket_accept成功接受套接字上的连接那么此时应该触发onConnect回调(2).当socket可读,通过fread获取到客户端数据,当然如果包含具体协议,应该按照协议拿到完整的客户端数据,此
socket_import_stream函数可以将使用stream_socket_server创建stream socket句柄转换为标准的socket句柄,因为标准socket支持更多的配置选项。在workerman中有如下代码:if (function_exists('socket_import_stream') && self::$_builtinTransports[$this->transport] ===&
php中stat(), lstat(), file_exists(), is_writable(), is_readable(), is_executable(), is_file(), is_dir(), is_link(), filectime(), fileatime(), filemtime(), fileinode(), filegroup(), fileowner(), filesize(), filetype() 和 fileperms()函数都是存在缓存的,在同一个会话中都是读取
由于需要为自己的php守护进程投递闭包函数来执行,但是发现php官方根本没有提供php闭包函数的序列化功能。后来在mixphp文档发现了mixphp支持异步进程执行投递的闭包函数才发现了一个神奇的php闭包函数序列化composer包(1).安装序列化composer包composer require opis/closure(2).进行闭包函数的序列化测试//(1).设置闭包函数 $a = function () { &nbs
    /**      * 设置进程标题      * @param string $title      */     public static function cli_set_pro
stream_set_blocking函数可以将资源流设置为阻塞模式或者非阻塞模式,主要影响的函数分别是fgets,fread,其他的手册没有说。在socket编程中,如果一个socket连接上了,但是不发送数据,此时使用fread或者fgets去读取数据,由于socket句柄是有效的,但是获取不到数据,fread/fgets就会阻塞等待卡在那里,一直等到超时才继续向下执行。看下面的阻塞等待demo:服务器:<?php $socket = stream_socket_
Top