substr和mb_substr的区别_mb_substr和substr 的区别-程序员宅基地

说明

string substr ( string $string , int $start [, int $length ] )

返回字符串 string start length 参数指定的子字符串。

string mb_substr ( string $str , int $start [, int $length [, string $encoding ]] )

根据字符数执行一个多字节安全的 substr() 操作。 位置是从 str 的开始位置进行计数。 第一个字符的位置是 0。第二个字符的位置是 1,以此类推。

区别

substr的int是根据字符串的字节数寻找索引下标而mb_substr是根据字符串的字符数量寻找索引下标

参数

string

输入字符串。

start

如果 start 是非负数,返回的字符串将从 string start 位置开始,从 0 开始计算。例如,在字符串 “abcdef” 中,在位置 0 的字符是 “a”,位置 2 的字符串是 “c” 等等。

如果 start 是负数,返回的字符串将从 string 结尾处向前数第 start 个字符开始。

如果 string 的长度小于或等于 start ,将返回 FALSE

length

如果提供了正数的 length ,返回的字符串将从 start 处开始最多包括 length 个字符(取决于 string 的长度)。

如果提供了负数的 length ,那么 string 末尾处的许多字符将会被漏掉(若 start 是负数则从字符串尾部算起)。如果 start 不在这段文本中,那么将返回一个空字符串。

如果提供了值为 0 FALSE NULL length ,那么将返回一个空字符串。

如果没有提供 length ,返回的子字符串将从 start 位置开始直到字符串结尾。

返回值

返回提取的子字符串, 或者在失败时返回 FALSE

<?php
header('concent-type:text/html;charset=utf-8');
$str='qwertyuioplkjhgfdsazxcvbnm0123456789';

$len=strlen($str);//获取字符串长度
$sjs='';
  //(substr($str,$rand,1))第一个参数是需要进行筛选的字符串
  // 第二个参数是进行筛选的起始位置,若第二个参数是负值,则从字符串的末端开始计算位置
  // 第三个参数(1)是从起始位置开始获取的个数为1,若为负值(-2),则是截止到该位置(从字符串末端-2)结束
for($i=0;$i<4;$i++){
  $rand=mt_rand(0,$len-1);//获取字符的总索引号,从中随机选取字符(0,35)
  $sjs=$sjs.substr($str,$rand,1);
  //在字符串中随机一个位置开始获取字符,获取的字符长度为1,赋值给一个空字符
  //循环4次,给$sjs字符赋值4次,获取4位随机数
  //每次赋值后$sjs的值都会加一个
}
echo $sjs;
<?php

 $str='我校经济贸易学院与石家庄顺捷财税咨询有限公司签订校企合作协议';
 $slen=mb_strlen($str,'utf8');
 if($slen<=10){
   echo $str;
 }else{
 echo mb_substr($str,0,10).'...';
 }	

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41939677/article/details/83899848

智能推荐

python制作动画代码,python画动态的雪花-程序员宅基地

文章浏览阅读368次,点赞5次,收藏5次。大家好,小编为大家解答python制作动画代码的问题。很多人还不知道python画动态的雪花,现在让我们一起来看看吧!话不多说,首先先看效果图。

汇编语言-程序员宅基地

文章浏览阅读177次。  汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一..._汇编语言占用内存少生成的目标代码简短能够直接对硬盘进行操作

vue是否可以做行车轨迹_Vue+高德地图巡航轨迹,实现轨迹回放加进度条,加减速...-程序员宅基地

文章浏览阅读1k次。应公司业务要求,给轨迹回放加个滚动条,一开始我采用的是高德地图的折线绘制,但是如果要加上进度条并不太不合适,拖动滚动条,点位没有恢复的API,后来决定使用巡航轨迹,巡航轨迹支持更丰富的轨迹API,使用起来也更方便。下面是做完的效果图:使用的技术有:vue,高德地图1.4(amap),element-UI下面的是部分源码:html部分v-if="!isPlay"class="play-icon"ty..._vue高德地图巡航器初始速度为0

Mac 下安装及配置 ProxyChains-NG 实现终端下代理_mac在线安装器并代理-程序员宅基地

文章浏览阅读4.6k次。1.首先执行命令:brew install proxychains-ng 实现安装2.编辑/usr/local/etc/proxychains.conf,修改上游代理配置如下: ... #给默认的socks4 127.0.0.1 9050这一行注释掉 #添加一下内网上游代理配置 ...3.命令行程序:例如你要下载laravel框架 sudo proxyc_mac在线安装器并代理

动态规划 dp01 西瓜分堆问题 c代码_已知有一堆西瓜,请帮忙将这一堆西瓜分成两堆,已知每个西瓜的重量,现在要求分成两-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏9次。先看下题目:已知14个西瓜 的重量,分别为:23 21 12 19 18 25 20 22 16 19 12 15 17 14请将这些瓜分成两堆,每堆的个数不限,使两堆西瓜重量之差最小。我们知道,动态规划类问题是存在明确的步骤的:1. 分阶段。2. 状态迁移方程。3. 求最优解。这道题要把西瓜分成两堆,假设A堆和B堆,对于每个西瓜而言,要么分到A,要么分到B,和01背..._已知有一堆西瓜,请帮忙将这一堆西瓜分成两堆,已知每个西瓜的重量,现在要求分成两

生产服务内存泄漏分析过程_leak suspect-程序员宅基地

文章浏览阅读1.6k次。最近生产遇到内存泄漏的问题,说一下排查过程及内心历程。生产报错:java.lang.OutOfMemoryError: Java heap space堆内存泄漏一般有以下情况:1, 堆内存本身没有设置或者配置参数设置不合适,若按默认启动,默认是256m?512m?,而服务本身复杂,不够用2, 堆中对象死了,但是GC无法回收空间,内存泄漏3, 服务有大对象,当有过大对象时,而此时堆空间不足,内..._leak suspect

随便推点

C语言_循环嵌套(质数/素数):找2-100之间的素数/质数_用循环嵌套找出素数用c语言-程序员宅基地

文章浏览阅读5.6k次,点赞10次,收藏14次。什么是质数/素数:只能够被1和自身整除的数,2是最小的质数/* 题目(质数):找2-100之间的素数 */# include <stdio.h>int main(void){ int i, k, tag; for (i=2; i<=100; i++) //i是1-100之间的数 { tag = 0; //tag表示标志 for (k=2; k<i; k++) //k是1到i之间的任意一个数 { if (i%k == 0) //如果i被k整除_用循环嵌套找出素数用c语言

软件工程实践——软件评测作业-程序员宅基地

文章浏览阅读943次,点赞17次,收藏10次。软件功能的介绍基础功能语言处理:能够理解和生成自然语言文本,实现流畅的人机对话。知识问答:能够回答各种学科专业知识、百科知识以及生活常识问题。数学计算:支持基本的数学运算和逻辑推理。特色功能图形界面:文心一言提供丰富的图形界面,可以供用户轻松找到想要使用的功能。预设模板:提供丰富的基础模板,帮助用户快速上手。新建对话:用户可以随时开启新的话题或聊天。搜索历史记录:快速查找和回顾历史对话内容。同步历史记录:网页与APP端历史对话记录同步,实现无缝切换。附加功能。

Unity PlayerPrefs存储数据在Windows环境中本地存储的位置_unity 编辑器 playerprefs位置-程序员宅基地

文章浏览阅读4.9k次,点赞4次,收藏10次。一、编辑器模式下的PlayerPrefs存储位置1.Win + r 输入regedit进入注册表界面2. HKEY_CURRENT_USER/Software/Unity3.CompanyName和ProjectName可以在Unity->Edit->Project Settings->Player中查看和设置二、Window包模式下的PlayerPrefs存储位置(CompanyName和ProjectName可以在Unity->Edit->Project _unity 编辑器 playerprefs位置

MTCNN/LPRNet车牌识别细节_lprnet mtcnn-程序员宅基地

文章浏览阅读9.1k次,点赞6次,收藏81次。前面一篇文章介绍了利用PyTorch实现的MTCNN/LPRNe车牌识别的理论框架,但是光有理论还不行,这篇文章主要是对里面的一些具体细节进行阐述。车牌识别整体流程:读取图片PNet网络处理ONet网络处理STN网络处理LPRNet网络识别解码..._lprnet mtcnn

182:vue+openlayers 使用d3实现地图区块呈现不同颜色的效果_openlayer加载d3-程序员宅基地

文章浏览阅读833次。本示例的目的是介绍演示如何在vue+openlayers中加载解析geojson文件,同时利用d3的颜色功能,使得美国每个州呈现出不同的颜色区块,方便识别。直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果OpenStreetMap无法加载,请加载其他来练习vue-cli本身是不能够load geojson数据的。需要另外添加loader。在最外层目录中添加 vue.config.js 文件,配置loader。配置方式1)查看基础设置:https://xiaozh_openlayer加载d3

配置管理小报110215-2:当rsync遇到非默认端口的ssh方法-程序员宅基地

文章浏览阅读83次。为什么80%的码农都做不了架构师?>>> ..._rsync连接不是默认端口

推荐文章

热门文章

相关标签