PHP字符串的处理(一)-字符串初识和比较
在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字符串的处理(一)-字符串初识和比较的更多相关文章
- JS字符串替换函数:Replace(“字符串1″, “字符串2″),
JS字符串替换函数:Replace(“字符串1″, “字符串2″), 1.我们都知道JS中字符串替换函数是Replace(“字符串1″, “字符串2″),但是这个函数只能将第一次出现的字符串1替换掉, ...
- C#算法之判断一个字符串是否是对称字符串
记得曾经一次面试时,面试官给我电脑,让我现场写个算法,判断一个字符串是不是对称字符串.我当时用了几分钟写了一个很简单的代码. 这里说的对称字符串是指字符串的左边和右边字符顺序相反,如"abb ...
- 将数据转化成字符串时:用字符串的链接 还是 StringBuilder
/* 目的:将数据转化成字符串时:用字符串的链接 还是 StringBuilder呢? */ public class Test{ public static void main(String[] a ...
- C风格字符串与C++风格字符串
C风格字符串与C++风格字符串 C风格字符串:对字符串进行操作的 C 函数定义在头文件<cstring>中: 1. 字符串定义:char* result: 2. 字符串的最后一个字符是nu ...
- 【编程题目】有 n 个长为 m+1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配...
37.(字符串)有 n 个长为 m+1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配,则两个字符串可以联接,问这 n 个字符串最多可以连成一个多长的字符串,如果出现循环, ...
- loadrunner通过字符串左右边界切割字符串
void web_reg_save_param_custom(char *sourceStr, char* outpuStr, char *leftBdry, char *rightBdry){ ...
- Swift3.0语言教程使用字符串创建和初始化字符串
Swift3.0语言教程使用字符串创建和初始化字符串 Swift3.0语言教程使用字符串创建和初始化字符串,在编程语言中,字面值是很常见的数据描述形式.人们可以通过字面所表达的意思,获知其含义,尤其是 ...
- Qt字符串类——2. 查询字符串数据
(1)函数QString::startsWith()判断一个字符串是否以某个字符串开头.此函数具有两个参数,第一个参数指定了一个字符串,第二个参数指定是否大小写敏感(默认情况下,是大小写敏感的),例如 ...
- sql 截取字符串与 截取字符串最长的字符串
); set @str='aa,32,22,55,7'; ) as '第一个逗号的索引值' )),),),'') as '第一个值' ),len(@str)) as '从第一逗号开始截取出后面的字符串 ...
- String的两个API,判断指定字符串是否包含另一字符串,在字符串中删除指定字符串。
// 在字符串中删除指定字符串. String phoneNum="1795112345"; phoneNum = phoneNum.replace("17951&quo ...
随机推荐
- C# 集合类 Array,Arraylist,List,Hashtable,Dictionary...
我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashTable类.我们经常用HashTable 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,增加了系统装箱和 ...
- Python — List、Set、Tuple、Dictionary之间的区别、参数传递
1.list 列表 有序集合,随时增删.包含的数据类型可以不同:整数.浮点数.字符串.list.tuple.dict.set.bool.空值.常量. list = [12, 'Yummy', 19.2 ...
- Dubbo定义及其作用
Dubbo定义 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只 ...
- iOS-证书真机调试
开发者账号分类 个人的 99$ 申请简单,付钱就行,688人民币 企业的 99$ 申请复杂,需要“邓白氏”认证,可以确认企业是合法有效的 可以管理团队开发 商业的 299$ 也需要邓白氏 ...
- Solr集群安装
1.JDK安装版本:jdk1.8.0 安装原文件路径:10.58.111.35(10.58.111.36.10.58.111.44)堡垒机 [/opt/jdk-8u101-linux-x64.tar. ...
- 几种常见排序算法的C++描述
基本的排序算法有如下特点: 1.几种容易的算法都是以O(N2)排序的 2.Shell排序编程简单,其也是以O(N2)排序的,在实践中用的很多 3.复杂的排序算法往往都是按照O(NlogN)尽心排序的 ...
- week05《Java程序设计》第五次学习总结
week05<Java程序设计>第五次学习总结 1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 答:关键词:接口,inteface关键词,implement关键词, ...
- Juint 单元测试(1)
Junit 是一个基于Java语言的回归单元测试框架.是白盒测试的一种技术,记住这些就可以了. 为项目添加Junit 1 右键项目名称选择“Properties”,在弹出的窗体中选择“Java Bui ...
- android开发之eclipse调试debug模式详解
之前我写了一个相关的帖子,但是今天看了一个还是写的比我详细,于是我拿过来和大家分享. 1.在程序中添加一个断点 如果所示:在Eclipse中添加了一个程序断点 在Eclipse中一共有三种添加断 ...
- Android内存优化(一)DVM和ART原理初探
相关文章 Android内存优化系列 Java虚拟机系列 前言 要学习Android的内存优化,首先要了解Java虚拟机,此前我用了多篇文章来介绍Java虚拟机的知识,就是为了这个系列做铺垫.在And ...