Jul102021
Swoole实践:1-使用Composer构建项目
Swoole是一个异步通信引擎,它让我们看到了不一样的PHP。本节开始我们会安排系列有关Swoole的实际应用文章,暂时定个名字:Swoole实验室。目的是通过系列文章讲解让大家了解Swoole在我们项目开发中的真正应用场景。
Swoole实验室系列文章关注Swoole的实际应用,不讲解基础知识,因此我们假设读者具备以下知识技能:
了解Web页面基础,不限于HTML5,CSS3,Javascript;
熟悉PHP基础,基本...阅读全文
抢沙发
Jun262021
php自动加载方式集合
php加载文件方式:
1、include,include_once,requice,requice_one常规加载
2、__autoload()
3、spl_autoload_register()
常规加载方式
假设我们有一个类文件A.php,里面定义了一个名字为A的类:
<?php
class A {
public function __construct() {
echo 'Got it.';
}
}
然后我们有一个index.php需要用到这个类A,常规的写法就是
<?php
require('A.php');
...阅读全文
Jun262021
php捕捉各种错误总结
介绍
php中try catch 无法捕捉到Warning、Notice错误
解决方法
1.注册错误处理函数来全局捕捉,
缺点,不能try catch马上捕捉到,进行处理
set_error_handler([__CLASS__, ‘error’]);
set_exception_handler([__CLASS__, ‘exception’]);
register_shutdown_function([__CLASS__, ‘shutdown’]);
set_error_handler
一般用于捕捉: E_NOTICE 、E_USER_E...阅读全文
Jun262021
PHP中如何捕获Warning、Notice等错误信息
PHP5中只是增加了对异常的处理,但是之前很多低版本的函数不会抛出异常,比如 iconv等,当遇到非法输入的时候,会出现:
iconv(): Detected an incomplete multibyte character in input string
的错误信息,只能屏蔽,但却没有很好的方式来捕获这些错误事件,然后来进行处理。
翻阅了PHP的手册后发现了一个新函数,error_get_last(),大概就是取得程序中最后一个错误信息(包括Error、...阅读全文
Jun222021
纯PHP实现的websocket客户端
websocket协议RFC文档地址:https://tools.ietf.org/html/rfc6455,以下是用纯PHP实现的一个轻量的websocket客户端,可以用来与websocket服务器进行通信。
class BadUriException extends Exception {
}
class ServerConnectException extends Exception {
}
class HandshakeException extends Exception {
}
class BadFrameException extends Exception {
}
class SocketRWException...阅读全文
Jun202021
PHP实现Redis分布式锁
锁在我们的日常开发可谓用得比较多。通常用来解决资源并发的问题。特别是多机集群情况下,资源争抢的问题。但是,很多新手在锁的处理上常常会犯一些问题。今天我们来深入理解锁。
一、Redis 锁错误使用之一
我曾经见过有的项目把查询结果存储到 Redis 当中时的伪代码如下:
$redis = new \Redis('127.0.0.1', 6379);
$cacheKey = 'query_cache';
$result = $redis->get($cacheKey);
...阅读全文
Jun202021
Jun202021
php socket实现简单的http服务器
php socket 实现简单的http服务器。
<?php
function run() {
//创建服务端的socket套接流,net协议为IPv4,protocol协议为TCP
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
/*绑定接收的套接流主机和端口,与客户端相对应*/
if (socket_bind($socket, "0.0.0.0", 9502) == false) {
echo 'server bind fail:' . socket_strerror(socket_last_erro...阅读全文
Jun202021
Jun192021
PHP把xml转为array:自定义函数xmlToArray实例
将xml转为array
function xmlToArray($xml) {
//将XML转为array
$array_data = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
return $array_data;
}
例如:
<xml>
<appid>wxd930ea5d5a258f4f</appid>
<mch_id>10000100</mch_id>
<device_info>1000</device_info>
<body&...阅读全文