匹配中文字符正则表达式抛错
[\u4e00-\u9fa5]{2,4} |
如上 [u4e00-u9fa5]可以匹配中文,但是PHP又不支持
可以使用[\x80-\xff]{2,4} 支持匹配全角字符.
知道了php中utf-8编码下用正则表达式匹配汉字的最终正确表达式—— /^[\x{4e00}-\x{9fa5}]+$/u
文章作者: Leon
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Leon!
相关推荐
2015-12-28
PHP设计模式:代理模式
概述代理模式是一种结构型设计模式,它允许通过创建一个代理对象来控制对其他对象的访问。代理对象充当了客户端和实际对象之间的中介,可以在访问实际对象之前或之后添加额外的逻辑。 适用场景代理模式适用于以下情况: 当你想要在访问一个对象时添加额外的逻辑,而不改变原始对象的代码。 当你需要对原始对象进行访问控制,例如权限验证、缓存等。 当你希望延迟实例化一个对象,直到真正需要它的时候。 结构代理模式由以下组件组成: 抽象主题(Abstract Subject):抽象主题定义了代理对象和真实对象的共同接口。 真实主题(Real Subject):真实主题是实际执行操作的对象。 代理(Proxy):代理对象实现了抽象主题接口,并在执行操作时调用真实主题对象。代理对象可以在调用真实主题对象之前或之后添加额外的逻辑。 示例<?php// 抽象主题interface Subject{ public function request();}// 真实主题class RealSubject implements Subject{ public ...
2018-08-23
Swoole 日志 部分代码
/** * @desc work进程内日志 仅限work 进程内使用 * @author lbf * @param $msg * @param string $name *------------------------------------------------------ */public static function Wlog($msg, $name = Log::MATCH){ if (!Main::WRITE_DEBUG_LOG && $name == Log::DEBUG) return; $name = $name == Log::DEBUG ? Log::MATCH : $name; $name = $name == Log::SQL ? Log::MATCH : $name; $str = ''; if (is_array($msg)) { foreach ($msg as $key => $val) { if (i...
2020-02-22
PHP 连接币安,okex,火币,websoket的示例代码
看到有同学在 Webscocket pong 包 php 踩坑实例 文章中留言 要我给出Demo满足这位同学的要求: 下面Demo使用的 Saber 人性化的协程HTTP客户端封装库运行环境 swoole4.2+ php7.1+ 需要使用协程 go(); demo 并不全 但坑都是踩过的 getSendMessage 创建订阅数据json格式这个就不提供了, 很简单没坑, 但最好控制好订阅交易对数量. 币安的webscocket 主要坑在于 ping包 非常正规的使用opcode是9, 并且收包中的data是空包, 回pong包 opcode传10./** * 币安现货ws 订阅 * @param array $symbolList 订阅交易对列表 * @param $subType 订阅类型 * @return bool */public function binanceSubscribe(array $symbolList, $subType = self::SUB_SPOT_DEPTH_TYPE){ // 订阅地址 $this->stream...
2019-02-11
php.ini 中display_errors = Off 失效的解决
php.ini 中 display_errors = Off 失效的解决 问题: PHP设置文件php.ini中明明已经设置display_errors = Off,但是在运行过程中,网页上还是会出现错误信息。 解决: log_errors= On,据官方的说法,当这个log_errors设置为On,那么必须指定error_log文件,如果没指定或者指定的文件没有权限写入,那么照样会输 出到正常的输出渠道,那么也就使得display_errors 这个指定的Off失效,错误信息还是打印了出来。于是将 log_errors = Off,问题就解决了。
2017-01-01
使用EasySwoole 1.2搭建Echo服务器
使用EasySwoole 1.2搭建Echo服务器在本篇博客中,我们将介绍如何使用EasySwoole 1.2框架搭建一个简单的Echo服务器。EasySwoole是一个高性能的PHP框架,专注于异步、协程和高并发的开发。 准备工作在开始之前,确保你已经安装了PHP和Composer,并具备基本的PHP开发知识。 步骤一:创建项目首先,我们需要创建一个新的EasySwoole项目。在命令行中执行以下命令: composer create-project easyswoole/easyswoole=1.2.x-dev 这将创建一个名为easyswoole的项目,并安装所需的依赖项。 步骤二:配置服务器进入项目目录,并打开dev.php文件,配置服务器相关的设置。我们将使用Echo服务器作为示例。 // dev.phpreturn [ 'SERVER_NAME' => 'EasySwoole', 'MAIN_SERVER' => [ 'LISTEN_ADDRESS...
2019-03-05
在 PHP 中 使用 Protocol Buffers(protobuf)
Protocol Buffers(protobuf)是由 Google 开发的一种语言中立、平台中立、可扩展的序列化结构数据的方法。它常用于数据存储和网络通信。以下是如何在 PHP 中使用 Protocol Buffers 的指南。 1. 安装 Protocol Buffers1.1 安装 Protobuf 编译器首先,您需要安装 Protocol Buffers 编译器。可以从 GitHub releases 下载适合您系统的版本。 在 Ubuntu 上,可以通过以下命令安装: sudo apt install protobuf-compiler 1.2 安装 PHP 扩展您还需要安装 PHP 的 protobuf 扩展。可以通过 Composer 安装: composer require google/protobuf 确保您的 PHP 环境已经安装了 Composer。 2. 创建 .proto 文件创建一个 .proto 文件来定义数据结构。例如,创建一个 message.proto 文件: syntax = "proto3";message ...
评论
公告
记录技术实践,分享学习与思考。



