php对中英文字符串进行截取,利用php怎么对中英文混合的字符串进行截取

利用php怎么对中英文混合的字符串进行截取

发布时间:2021-01-04 15:31:24

来源:亿速云

阅读:103

作者:Leah

利用php怎么对中英文混合的字符串进行截取?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

php 截取中应为字符串,就不必再用substr或者mb_substr//截取想这样的字符串

a李三

利用ASCII/**

*

* 中英混合的字符串截取

* @param unknown_type $sourcestr

* @param unknown_type $cutlength

*/

function assoc_substr($sourcestr, $cutlength) {

$returnstr = '';

$i = 0;

$n = 0;

$str_length = strlen ( $sourcestr ); //字符串的字节数

while ( ($n 

$temp_str = substr ( $sourcestr, $i, 1 );

$ascnum = Ord ( $temp_str ); //得到字符串中第$i位字符的ascii码

if ($ascnum >= 224) {//如果ASCII位高与224,

$returnstr = $returnstr . substr ( $sourcestr, $i, 3 ); //根据UTF-8编码规范,将3个连续的字符计为单个字符

$i = $i + 3; //实际Byte计为3

$n ++; //字串长度计1

} elseif ($ascnum >= 192){ //如果ASCII位高与192,

$returnstr = $returnstr . substr ( $sourcestr, $i, 2 ); //根据UTF-8编码规范,将2个连续的字符计为单个字符

$i = $i + 2; //实际Byte计为2

$n ++; //字串长度计1

} elseif ($ascnum >= 65 && $ascnum <= 90) {//如果是大写字母,

$returnstr = $returnstr . substr ( $sourcestr, $i, 1 );

$i = $i + 1; //实际的Byte数仍计1个

$n ++; //但考虑整体美观,大写字母计成一个高位字符

}elseif ($ascnum >= 97 && $ascnum <= 122) {

$returnstr = $returnstr . substr ( $sourcestr, $i, 1 );

$i = $i + 1; //实际的Byte数仍计1个

$n ++; //但考虑整体美观,大写字母计成一个高位字符

} else {//其他情况下,半角标点符号,

$returnstr = $returnstr . substr ( $sourcestr, $i, 1 );

$i = $i + 1;

$n = $n + 0.5;

}

}

return $returnstr;

}

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/532815.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux查找命令find、loacte、whereis、which、type梳理

Linux查找命令find、loacte、whereis、which、type梳理 Linux操作系统中有5种常用的查找命令&#xff1a;find&#xff0c;locate&#xff0c;whereis&#xff0c;which&#xff0c;type&#xff0c;他们分别用于查找不同的东西&#xff0c;本文将就他们各自的功能进行一下梳理…

php数据关系图,如何利用navicat查看数据表的ER关系图

文章背景&#xff1a;(相关推荐&#xff1a;navicat)由于工作需要&#xff0c;现在要分析一个数据库&#xff0c;然后查看各个表之间的关系&#xff0c;所以需要查看表与表之间的关系图&#xff0c;专业术语叫做ER关系图。默认情况下&#xff0c;Navicat显示的界面是这样的&…

Linux软链接的使用

Linux软链接的使用 转自&#xff1a;https://www.cnblogs.com/sueyyyy/p/10985443.html&#xff0c;本博文仅对原博排版稍微优化。 更为细致的硬链接、软链接的介绍可参考&#xff1a;Linux中的硬链接和软链接 另外&#xff0c;提供笔者对软连接的一个最简单的理解&#xff…

oracle死锁优化,Oracle性能优化之LockContention(转)

1、概念DML事务使用row-level locks,查询不会锁定数据。锁有两种模式&#xff1a;exlusive、share。锁的类型&#xff1a;• DML or data locks:– Table-level locks(TM)– Row-level locks(TX)• DDL or dictionary locks一个transaction至少获得两个锁&#xff1a;一个共享的…

Linux中g++与gcc的区别

转自&#xff1a;https://blog.csdn.net/bit_clearoff/article/details/53965514 Windows中我们常用vs来编译编写好的C和C代码&#xff1b;vs把编辑器&#xff0c;编译器和调试器等工具都集成在这一款工具中&#xff0c;在Linux下我们能用什么工具来编译所编写好的代码呢&#…

linux系统可以用迅雷吗,在Linux系统下使用wine运行迅雷5的方法

在Linux系统下使用wine运行迅雷5的方法一、下载ies4linux去 http://www.tatanka.com.br/ies4linux/page/Installation 下载ies4linux的文件包(目前版本为2.99)&#xff0c;然后解压缩。注意&#xff1a;这个网站被大陆和谐了&#xff0c;需要跳墙。至于怎么跳&#xff0c;诸位就…

从C源代码到可执行文件的四个过程:预处理、编译、汇编、链接

从C源代码到可执行文件的四个过程&#xff1a;预处理、编译、汇编、链接 总览 我们将在Linux操作系统中&#xff0c;以C语言的Hello World程序为例&#xff0c;用gcc编译器分步执行这四个步骤。 我们有再熟悉不过的HelloWorld程序&#xff0c;hello.c&#xff1a; #include …

uboot引导linux内核,u-boot启动内核的几种方式

1.uboot启动内核的代码缩减如下&#xff1a;s getenv ("bootcmd");debug ("### main_loop: bootcmd\"%s\"\n", s ? s : "");if (bootdelay > 0 && s && !abortboot (bootdelay)){run_command (s, 0);}2.假设boot…

跟我一起写makefile: 概述、介绍、规则

跟我一起写makefile 概述、介绍、规则 转自&#xff1a;https://seisman.github.io/how-to-write-makefile/rules.html 概述 什么是makefile&#xff1f;或许很多Windows的程序员都不知道这个东西&#xff0c;因为那些Windows的集成开发环境&#xff08;integrated developm…

linux内核中cent文件夹,Centos 中如何快速定制二进制的内核 RPM 包

1、rpm 制作前的环境准备&#xff1a;yum install -y ncurses-devel qt-devel rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed xmlto audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel newt-devel python-devel zlib-devel bc2、准…

TabError- inconsistent use of tabs and spaces in indentation 查验及解决方法

TabError: inconsistent use of tabs and spaces in indentation 查验及解决方法 报错代码 def eccv16(pretrainedTrue):model ECCVGenerator()if(pretrained):import torch.utils.model_zoo as model_zoomodel.load_state_dict(torch.load(/home/ps/.cache/torch/hub/check…

linux用xshell编辑文件,Linux远程管理器xshell和xftp使用教程

Xshell 是一个强大的安全终端模拟软件&#xff0c;它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xftp 是一个基于 MS windows 平台的功能强大的SFTP、FTP 文件传输软件。安装完毕后打开xshell设置网站帐号信息设置主机信息设置服务器帐号设置字符集编码设置好了…

strict=False 但还是size mismatch for []: copying a param with shape [] from checkpoint,the shape in cur

strictFalse 但还是size mismatch for []: copying a param with shape [] from checkpoint,the shape in cur 问题 我们知道通过 model.load_state_dict(state_dict, strictFalse)可以暂且忽略掉模型和参数文件中不匹配的参数&#xff0c;先将正常匹配的参数从文件中载入模…

linux中权限765啥意思,Linux中的文件权限

Linux系统中的每一个文件都与多种权限类型相关联。在这些权限中&#xff0c;我们主要和三类权限打交道&#xff1a;用户(user)、用户组(group)和其他用户(others)。用户是文件的所有者&#xff1b;用户组是指和文件所有者在同一组的其他多个用户的集合&#xff1b;其他用户是除…

CV中的色彩空间大全

HSI、HSV、RGB、CMY、CMYK、HSL、HSB、Ycc、XYZ、Lab、YUV颜色模型 HSV颜色空间 HSV(hue,saturation,value)颜色空间的模型对应于圆柱坐标系中的一个圆锥形子集&#xff0c;圆锥的顶面对应于V1. 它包含RGB模型中的R1&#xff0c;G1&#xff0c;B1 三个面&#xff0c;所代表的…

linux 系统调用时怎么知道当前上下文属于那个进程,linux – 编写系统调用来计算进程的上下文切换...

如果您的系统调用只应报告统计信息,则可以使用内核中已有的上下文切换计数代码.struct rusage {...long ru_nvcsw; /* voluntary context switches */long ru_nivcsw; /* involuntary context switches */};您可以通过运行来尝试&#xff1a;$/usr/bin/time -v /bin/ls -R....V…

linux串口缓冲区的大小,linux-----------串口设置缓冲器的大小

转自:http://stackoverflow.com/questions/10815811/linux-serial-port-reading-can-i-change-size-of-input-bufferYou want to use the serial IOCTL TIOCSSERIAL which allows changing both receive buffer depth and send buffer depth (among other things). The maximum…

FLOPs、FLOPS、Params的含义及PyTorch中的计算方法

FLOPs、FLOPS、Params的含义及PyTorch中的计算方法 含义解释 FLOPS&#xff1a;注意全大写&#xff0c;是floating point operations per second的缩写&#xff08;这里的大S表示second秒&#xff09;&#xff0c;表示每秒浮点运算次数&#xff0c;理解为计算速度。是一个衡量…

设置中文linux输入ubuntu,Linux_ubuntu怎么设置成中文?ubuntu中文设置图文方法,  很多朋友安装ubuntu后,发 - phpStudy...

ubuntu怎么设置成中文&#xff1f;ubuntu中文设置图文方法很多朋友安装ubuntu后&#xff0c;发现都是英文&#xff0c;看不懂要怎么办?其实ubuntu是可以设置成中文的&#xff0c;下文小编就为大家带来ubuntu中文的设置方法&#xff0c;一起去看下设置方法吧。ubuntu中文设置方…

科普 | 单精度、双精度、多精度和混合精度计算的区别是什么?

科普 | 单精度、双精度、多精度和混合精度计算的区别是什么? 转自&#xff1a;https://zhuanlan.zhihu.com/p/93812784 我们提到圆周率 π 的时候&#xff0c;它有很多种表达方式&#xff0c;既可以用数学常数3.14159表示&#xff0c;也可以用一长串1和0的二进制长串表示。 …