• php 通过下标获取的是字节,而不是字符!!!!$str{$i} 获取的是第$i个字节, 而不是第$i 个字符!!!哦 No,准确说是第$i+1个字节,因为下标是从0开始的,并且应该使用 []代替{},这样在以后的PHP版本更安全。
  • PHP可以通过
    $str{0} 或者 $str[0]  的形式获取字符串的第一个字节的内容。

    今天写了一段程序,出现了问题

    $contentLength = mb_strlen($assessment['content']);  //计算字符串的长度,以‘字符’计算
    $content = '';
    for($i = 0; $i <= $contentLength; $i++){
    $content .= $assessment['content']{$i}; //开始我本以为通过字符串下标获取的是指定字符,结果出现了乱码,经查阅发现,字符串下标获取的是指定的字节,而不是字符。所以出现了乱码。
    if($i % 10 == 0) {
    $content .= "\n\r"; //每10个字换行
    $content .= $assessment['content']{$i}; //str_split
    }
    }
    echo 'content:',$content;

    所以以后要特别注意了,之前还真没注意过这个问题,靠 >^_^<

  • 那么如果我想获取第$i个字符怎么实现呢。可以这样
    $contentLength = mb_strlen($assessment['content']);
    $content = '';
    for($i = 0; $i <= $contentLength; $i++){
    //$content .= $assessment['content']{$i}; //这种形式获取的是第$i+1个字节,下标是从0 开始的
    $content .= mb_substr($assessment['content'], $i, 1); //通过这种方式获取第$i+1个字符
    if($i % 15 == 0) {
    $content .= "\n\r"; //每15个字换行
    $content .= mb_substr($assessment['content'], $i, 1); //str_split
    }
    }
    echo 'content:',$content;

PHP 字符串索引问题的更多相关文章

  1. JS 中数组字符串索引和数值索引研究

    先来看一个问题: var array = []; array["a"] = "hello"; array["b"] = "worl ...

  2. python基础之字符串索引与切片

    字符串索引与切片:切片后组成新字符串与原字符串无关系增:str1+str2查:str1[index] str1[start_index:end_index]1,索引从0开始2,根据索引获取元素:索引超 ...

  3. Lua Table pairs输出顺序问题 (版本差异 解决数字索引间断并兼容字符串索引)

    问题标签: Lua Table 迭代器;Lua Table 输出顺序; Lua Table 顺序输出;Lua Table 数字索引 字符串索引;Lua Table pairs; 问题背景: 使用pai ...

  4. shell字符串索引

    shell中的字符串索引一会从0开始,一会从1开始,见例子: #!/bin/bash string="hello world" length=${#string} echo &qu ...

  5. Python 字符串索引、切片、修改

    字符串索引.切片.修改1.字符串操作(切片.修改)应用场景    a.爬虫截取网址数据    b.数据分析,语言处理(分词)    c.电信号码升级           0452 8869504   ...

  6. MySQL SQL优化之字符串索引隐式转换

    之前有用户很不解:SQL语句非常简单,就是select * from test_1 where user_id=1 这种类型,而且user_id上已经建立索引了,怎么还是查询很慢? test_1的表结 ...

  7. 初学Python之 字符串 索引 分片

    字符串是字符的有序集合,可以通过其位置来获得具体的元素. 在python中,字符串中的字符是通过索引来提取的,索引从0开始. python可以取负值,表示从末尾提取,最后一个为-1,倒数第二个为-2, ...

  8. 【Python 08】汇率兑换2.0-1(字符串索引)

     1.案例描述 设计一个汇率换算程序,其功能是将人民币转换为美元,或者美元转换为人民币. 增加功能:根据输入判断是人民币还是美元,进行相应的转换计算. 2.案例分析 3.字符串 两个双引号或单引号括起 ...

  9. 2/17 笔记 n:字符串索引、切片、数据转换笔记

    切片:顾头不顾尾 s[首:尾:步长] 代码是从上到下依次判断,只要满足一个,就不会再往下走! continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,br ...

  10. Unicode字符串索引

    一.目标 在通讯录中,我们有很多联系人,需要把这些联系人进行索引.对于每一个索引项对应的若干字符串,需要对这些字符串进行排序. 需要解决两个问题: 如何确定某个汉字应该被哪个字符索引? 某个索引项对应 ...

随机推荐

  1. Scrapy setup.py 各参数详解

    实际上Scrapyd的打包工具用到了setuptools,而打包参数主要是在setuptools里面的setup函数中设置. ************************************* ...

  2. LeetCode 第 167 场周赛

    1290.二进制链表转整数 1291.顺次数 1292.元素和小于等于阈值的正方形的最大边长 1293.网格中的最短路径 1290.二进制链表转整数 1290.二进制链表转整数 给你一个单链表的引用结 ...

  3. PostgreSQL练习

    学生表 Studentcreate table Student(Sid varchar(6), Sname varchar(10), Sage datetime, Ssex varchar(10)); ...

  4. 微信小程序 基本介绍及组件

    创建项目 微信开发工具深入介绍 https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html 基本项目目录 1. 配置 ...

  5. 什么是Sprint?

    Sprint指Scrum团队完成一定数量工作所需的短暂.固定的周期.Sprint是Scrum和敏捷的核心,找到正确的Sprint周期将帮助您的敏捷团队交付更高质量的产品. “在Scrum框架中,庞大且 ...

  6. regex 正则分割字符串

    string _content=adak.sjdkajskj爱25教:师的656教案时; string en=@"\.|56|25";//单个[asj]分别以a,s,j为分隔符. ...

  7. Django2.0 应用 Xadmin 报错二

    以上错误是运行点击添加数据等报异常,全是度年解决,并记录解决方法 1.报异常 ‘某个字段类型 ‘ object has no attribute ‘rel‘,点击报异常的地方,把.rel 修改为.re ...

  8. Lua的栈及基本栈操作

    Lua的栈及基本栈操作 https://blog.csdn.net/mydriverc2/article/details/51134737 https://blog.csdn.net/mydriver ...

  9. CSS设置元素的隐藏和显示

    常见的三种方式 display display: none 隐藏对象 display: block 除了转换为块级元素以外,同时还有显示元素的意思 特点:隐藏之后不保留位置 visibility 值h ...

  10. 1 bootstrapValidator使用

    1 如何使用 引入 <link href="bootstrapValidator.min.css" rel="stylesheet"> css文件 ...