在PHP中,字符和字节一样,共有256种不同字符的可能性,PHP对Unicode没有本地支持,一个GB2312编码的汉字占2字节,一个UTF-8编码的汉字占3字节字符串看作字符集和时,并不是真正的数组,获取字符串长度用strlen()函数,取字符串中的字符用{}

<?php
$str = "test";
echo $str{0}; //输出一个字符t
echo $str{1}; //输出一个字符e
echo $str{2}; //输出一个字符s
echo $str{3}; //输出一个字符t
echo $str{1}.$str{2}; //输出两个字符es
echo strlen($str); //输出字符串$str的长度
$str{strlen($str)-1} = 'q'; //把最后一个t替换成q
$str{0} = 'admin'; //输出结果为aest
?>

substr()函数:

substr(string,start,length),把字符串视为数组

string:字符串(必选)

start:字符串开始的位置(必选)

length:返回字符串的长度,默认是到字符串的结尾(可选)

<?php
echo substr("abcdef",2,3); //输出cde
echo substr(123456,2,4); //输出3456
?>

字符串比较:

strcasecmp(str1,str2)   //忽略字符串中字母大小写进行比较

strcmp(str1,str2)         //区分字符串中字母大小写进行比较

对传入的str1和str2的字符串进行比较,返回三个值

1.如果str1等于str2,返回0

2.如果str1大于str2,返回1

3.如果str1小于str2,返回-1

<?php

    $username = "admin";

    if(strcasecmp($username,"admin") == 0){
echo "用户名正确<br>";
}else{
echo "用户名错误<br>";
}
//输出:用户名正确 if(strcasecmp($username,"Admin") == 0){
echo "用户名正确<br>";
}else{
echo "用户名错误<br>";
}
//输出:用户名正确 if(strcmp($username,"admin") == 0){
echo "用户名正确<br>";
}else{
echo "用户名错误<br>";
}
//输出:用户名正确 if(strcmp($username,"Admin") == 0){
echo "用户名正确<br>";
}else{
echo "用户名错误<br>";
}
//输出:用户名错误
?>

strnatcmp()   //按照自然排序法比较两个字符串,区分字符串大小写

strnatcasecmp()   //按照自然排序法比较两个字符串,忽略字符串大小写

在自然算法中,数字2小于数字10.在计算机排序中,10小于2,因为 10 中的第一个数字小于 2

<?php echo strnatcasecmp("2test","10test"); //输出-1 ?>

PHP字符串的处理(一)-字符串初识和比较的更多相关文章

  1. JS字符串替换函数:Replace(“字符串1″, “字符串2″),

    JS字符串替换函数:Replace(“字符串1″, “字符串2″), 1.我们都知道JS中字符串替换函数是Replace(“字符串1″, “字符串2″),但是这个函数只能将第一次出现的字符串1替换掉, ...

  2. C#算法之判断一个字符串是否是对称字符串

    记得曾经一次面试时,面试官给我电脑,让我现场写个算法,判断一个字符串是不是对称字符串.我当时用了几分钟写了一个很简单的代码. 这里说的对称字符串是指字符串的左边和右边字符顺序相反,如"abb ...

  3. 将数据转化成字符串时:用字符串的链接 还是 StringBuilder

    /* 目的:将数据转化成字符串时:用字符串的链接 还是 StringBuilder呢? */ public class Test{ public static void main(String[] a ...

  4. C风格字符串与C++风格字符串

    C风格字符串与C++风格字符串 C风格字符串:对字符串进行操作的 C 函数定义在头文件<cstring>中: 1. 字符串定义:char* result: 2. 字符串的最后一个字符是nu ...

  5. 【编程题目】有 n 个长为 m+1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配...

    37.(字符串)有 n 个长为 m+1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配,则两个字符串可以联接,问这 n 个字符串最多可以连成一个多长的字符串,如果出现循环, ...

  6. loadrunner通过字符串左右边界切割字符串

    void web_reg_save_param_custom(char *sourceStr, char* outpuStr, char *leftBdry, char *rightBdry){    ...

  7. Swift3.0语言教程使用字符串创建和初始化字符串

    Swift3.0语言教程使用字符串创建和初始化字符串 Swift3.0语言教程使用字符串创建和初始化字符串,在编程语言中,字面值是很常见的数据描述形式.人们可以通过字面所表达的意思,获知其含义,尤其是 ...

  8. Qt字符串类——2. 查询字符串数据

    (1)函数QString::startsWith()判断一个字符串是否以某个字符串开头.此函数具有两个参数,第一个参数指定了一个字符串,第二个参数指定是否大小写敏感(默认情况下,是大小写敏感的),例如 ...

  9. sql 截取字符串与 截取字符串最长的字符串

    ); set @str='aa,32,22,55,7'; ) as '第一个逗号的索引值' )),),),'') as '第一个值' ),len(@str)) as '从第一逗号开始截取出后面的字符串 ...

  10. String的两个API,判断指定字符串是否包含另一字符串,在字符串中删除指定字符串。

    // 在字符串中删除指定字符串. String phoneNum="1795112345"; phoneNum = phoneNum.replace("17951&quo ...

随机推荐

  1. 解决:actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES:Error:Assert failed:in file ..\..\ccutil\tessdatamanager.cp p, line 50

    在玩tesseract时,发现如下报错: 这个是因为Tesseract-OCR的版本和chi_sim.traindata字库版本不匹配,由于我的Tesseract-OCR是3.02.02,去googl ...

  2. 修改MAC过程

    首先打开PC的Telnet功能,如下: 对PC设置本地IP 2.cmd→telnet 192.168.1.230(出厂默认IP) 3.root →密码:20...................(公司 ...

  3. Node大文件处理

    之前有个需求要将文件解析再处理,当时直接将整个文件内容读到内存中然后解析,也是没有考虑到大文件的问题,那么要如何解析大文件呢? 输入:文件的内容是多个json,按顺序排列 输出:解析后的json数据 ...

  4. LeetCode OJ:Binary Tree Postorder Traversal(后序遍历二叉树)

    Given a binary tree, return the postorder traversal of its nodes' values. For example:Given binary t ...

  5. 移动端 HTML5 <video> 视频播放优化实践

    遇到的挑战 移动端HTML5使用原生<video>标签播放视频,要做到两个基本原则,速度快和体验佳,先来分析一下这两个问题. 下载速度 以一个8s短视频为例,wifi环境下提供的高清视频达 ...

  6. L132

    Major Opioid Maker to Pay for Overdose-Antidote Development A company whose prescription opioid mark ...

  7. wordpress 使用固定链接

    官方文档 无插件移除url中category 目录前缀 设置 >> 固定链接,设置固定链接为自定义为: /%category%/%postname%/或者/%category%/%post ...

  8. js 获取服务器当前时间

    //获取服务器时间 function getNowDate(){ var xhr = null; if(window.XMLHttpRequest){ xhr = new window.XMLHttp ...

  9. 运行python代码

    IPython IPython 'magic' function documentation

  10. uid

    var uid = 0 function nextUid() { return ++uid }