博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php 截取第一个中文,php中截取单个中文
阅读量:7069 次
发布时间:2019-06-28

本文共 1234 字,大约阅读时间需要 4 分钟。

1、怎样将php中出现的中文字符一个一个截取出来,有没有不用mb_substr的方法。

2、比如我写一个统计文件中(单个文件超过100万字)中文各字符出现次数的,java中用charAt方法即可遍历字符,程序写下来也就几秒,但是在php中用mb_库十分慢,等了好几分钟都没有结果。

3、附java实现的代码 java实现统计字符出现次数

回复内容:

1、怎样将php中出现的中文字符一个一个截取出来,有没有不用mb_substr的方法。

2、比如我写一个统计文件中(单个文件超过100万字)中文各字符出现次数的,java中用charAt方法即可遍历字符,程序写下来也就几秒,但是在php中用mb_库十分慢,等了好几分钟都没有结果。

3、附java实现的代码 java实现统计字符出现次数

经测试,我的代码应该是没有问题的,请指正:

$str = file_get_contents("hong.txt");

preg_match_all("/./u", $str, $arr);

$store = [];

foreach($arr[0] as $value){

if(array_key_exists($value, $store)){

$store[$value]++;

}else{

$store[$value] = 1;

}

}

asort($store);

var_dump($store);

此段代码在php7环境下对红楼梦进行操作(148万字),总耗时0.464s。

中文字符串分隔

0) {

if (ord(substr($tempaddtext, $cind, 1)) < 192) {

if (substr($tempaddtext, $cind, 1) != " ") {

array_push($arr_cont, substr($tempaddtext, $cind, 1));

}

$cind++;

} elseif (ord(substr($tempaddtext, $cind, 1)) < 224) {

array_push($arr_cont, substr($tempaddtext, $cind, 2));

$cind += 2;

} else {

array_push($arr_cont, substr($tempaddtext, $cind, 3));

$cind += 3;

}

}

}

print_r($arr_cont);

试试这个

其实楼上的思路也没问题,但是代码效率不太好。我这个测试了一下,貌似有的字符识别不正常,还需要完善,只是给个思路而以。

这里有字符串截取、分割的终极解决方案。

点这里,点这里

用拓展理论上是最有效的方案,php代码能实现的一般都是正则来实现,在效率上是比不上拓展的。如果觉得慢回顾下算法。

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

转载地址:http://ktqll.baihongyu.com/

你可能感兴趣的文章
知识思考
查看>>
OpenCV安装
查看>>
在一行上打印(完成度打印)
查看>>
linux运维人员常用的150个命令
查看>>
boost库 线程使用
查看>>
FPGA笔试必会知识点1--数字电路基本知识
查看>>
基于华为云区块链服务快速部署和搭建链上应用
查看>>
浏览器被hao.360.cn劫持怎么办
查看>>
bzoj3068: 小白树
查看>>
Dubbo学习总结(3)——Dubbo-Admin管理平台和Zookeeper注册中心的搭建
查看>>
每天一个linux命令(5):rm 命令
查看>>
浅谈HTTP中Get与Post的区别
查看>>
【汇编】1.汇编环境的搭建:DOSBox的安装
查看>>
requests 简单爬虫
查看>>
datatable&list<T>
查看>>
【Python3爬虫】selenium入门
查看>>
C语言语法
查看>>
Ruby判断文件是否存在
查看>>
Mongodb学习(安装篇): 在centos下的安装
查看>>
python "re" 模块
查看>>