黄聪:PHP字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、切割成数组等)
一、字符串替换
str_replace("iwind", "kiki", "i love iwind, iwind said");
将输出 "i love kiki, kiki said"
str_replace(find,replace,string,count)参数 描述
find 必需。规定要查找的值。
replace 必需。规定替换 find 中的值的值。
string 必需。规定被搜索的字符串。
count 可选。一个变量,对替换数进行计数。
二、字符串删除
方法一
$string = 'fdjborsnabcdtghrjosthabcrgrjtabc';
$string = preg_replace('/[abc]+/i','',$string);
方法二
把字符串转化成数组
$arr = str_split($string);
foreach( $arr as $key => $value ){
if( in_array($value,array('a','b','c')) ){
unset($arr[$key]);
}
}
$string = implode('',$arr);
三、字符串截取
<?
//构造字符串
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
echo "原字符串:".$str."
";
//按各种方式进行截取
$str1 = substr($str,5);
echo "从第5个字符开始取至最后:".$str1."
";
$str2 = substr($str,9,4);
echo "从第9个字符开始取4个字符:".$str2."
";
$str3 = substr($str,-5);
echo "取倒数5个字符:".$str3."
";
$str4 = substr($str,-8,4);
echo "从倒数第8个字符开始向后取4个字符:".$str4."
";
$str5 = substr($str,-8,-2);
echo "从倒数第8个字符开始取到倒数第2个字符为止:".$str5."
";
?>
支持中英文混合截取。
/*
------------------------------------------------------
参数:
$str_cut 需要截断的字符串
$length 允许字符串显示的最大长度
程序功能:截取全角和半角(汉字和英文)混合的字符串以避免乱码
------------------------------------------------------
*/
function substr_cut($str_cut,$length)
{
if (strlen($str_cut) > $length)
{
for($i=0; $i < $length; $i++)
if (ord($str_cut[$i]) > 128) $i++;
$str_cut = substr($str_cut,0,$i)."..";
}
return $str_cut;
}
?>
四、字符串比较
在PHP中,可以用==(双等号)或者
===(三等号)来比较字符串。两者的区别是双等号不比较类型,三等号会比较类型,它不转换类型;用双等号进行比较时,如果等号左右两边有数字类型的值,刚会把另一个值转化为数字,然后进行比较。这样的话,如果是纯字符串或者NULL时,会转化为0进行比较。同样,大小于号也和等号一样,比较时可能出现不正确的结果。
所以,比较字符串可以用PHP的自带函数strcmp和strcasecmp。其中strcasecmp是strcmp的变种,它会先把字符串转化为小写再进行比较。
如下代码:
var_dump(0 == 'Test');
var_dump(0 == '');
var_dump(5 > 'T');
var_dump(strcmp(5, 'T'));
结果为(第1~3结果是不对的,只有第4个是对的):
bool(true)
bool(true)
bool(true)
int(-1)
五、字符串查找
strstr()函数用于获取一个指定字符串在另一个字符串中首次出现的位置到后者末尾的子字符串,如果执行成功,则返回剩余字符串(存在相匹配的字符);如果没有找到相匹配的字符,则返回false。
语法:string strstr(string haystack,string needle)
参数:haystack:必要参数,指定从哪个字符串中进行搜索。
参数:needle:必要参数,指定搜索的对象,如果该参数是一个数值,那么将搜索与这个数值的ASCII值相匹配的字符。
实例代码如下:
<?php
echo strstr(“明日编程词典”,”编”); //输出查询的字符串
echo “<br>”; //执行回车
echo strstr(“www.phpfensi.com”,”111”); //输出查询的字符串(从第一个m取值)
echo “<br>”; //执行回车
echo strstr(“0431-84972266″,”8″); //输出查询的字符串
?>
定义和用法:strpos() 函数返回字符串在另一个字符串中第一次出现的位置,如果没有找到该字符串,则返回 false。
语法:strpos(string,find,start)
参数:string 必需,规定被搜索的字符串。
参数:find 必需,规定要查找的字符。
参数:start 可选,规定开始搜索的位置。
注释:该函数对大小写敏感,如需进行对大小写不敏感的搜索,请使用 stripos() 函数。
实例代码如下:
<?php
echo strpos("Hello world!","wo");
?>//输出:6
六、字符串大小写转换
<?php
$foo = 'hello world!';
$foo = ucwords($foo); // Hello World!$bar = 'HELLO WORLD!';
$bar = ucwords($bar); // HELLO WORLD!
$bar = ucwords(strtolower($bar)); // Hello World!
?>
第一个词首字母变大写:ucfirst()
<?php
$foo = 'hello world!';
$foo = ucfirst($foo); // Hello world!$bar = 'HELLO WORLD!';
$bar = ucfirst($bar); // HELLO WORLD!
$bar = ucfirst(strtolower($bar)); // Hello world!
?>
第一个词首字母小写lcfirst()
<?php
$foo = 'HelloWorld';
$foo = lcfirst($foo); // helloWorld
$bar = 'HELLO WORLD!';
$bar = lcfirst($bar); // hELLO WORLD!
$bar = lcfirst(strtoupper($bar)); // hELLO WORLD!
?>
字母变大写:strtoupper()
字母变小写:strtolower()
七、字符串切割
<?php
$str="1|2|3|4|5|";
$var=explode("|",$str);
print_r($var);
?>
$var=explode("|",$str);
把$str按|进行分割,php还有其他的把字符串指定字符分割成数组
str_split(string,length)参数 描述
string 必需。规定要分割的字符串。
length 可选。规定每个数组元素的长度。默认是 1。
json_decode()这个函数也可以把字符串分割成数组 (第二个参数为true才行)
黄聪:PHP字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、切割成数组等)的更多相关文章
- java字符串操作扩充:灵活截取字符串
java字符串操作扩充:灵活截取字符串 public class StringUtil { static int varlen1; static int varlen2; static String ...
- linux shell 字符串操作详解 (长度,读取,替换,截取,连接,对比,删除,位置 )
在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略 ...
- linux makefile字符串操作函数 替换subst、模式替换patsubst、去首尾空格strip、查找字符串findstring、过滤filter、反过滤filter-out、排序函数sort、取单词word、取单词串wordlist、个数统计words
1.1 字符操作函数使用 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函 ...
- 黄聪:C#操作xml SelectNodes,SelectSingleNode通过 xPath 定位class包含Contains的DIV
一. SelectNodes,SelectSingleNode总是返回NULL 下面以一个简单的xml为例: <?xml version="1.0"?> <mes ...
- C#入门篇6-2:字符串操作 string常用的函数
//String 字符串的常见操作 public static void Fun1() { string MyStr = " Hello World! "; //length长度属 ...
- 四:Java之字符串操作String、StringBuffer和StringBuilder
string是我们经经常使用到的一个类型,事实上有时候认为敲代码就是在重复的操作字符串,这是C的特点,在java中.jdk非常好的封装了关于字符串的操作.三个类String .StringBuffer ...
- C#入门篇6-4:字符串操作 string分割字符串效率比较
//分割字符串效率比较 public static void Fund() { //1.用string.Split方法 //a.字节数组: //625毫秒/百万次 string str1 = &quo ...
- C#入门篇6-3:字符串操作 string的ToString() Split()和Copy()方法
//ToString()方法 public static void OutPut() { //字符型转换 转为字符串 Console.WriteLine(.ToString("n" ...
- 黄聪:C#操作Word表格的常见操作(转)
几种常见C#操作Word表格操作有哪些呢?让我们来看看具体的实例演示: bool saveChange = false; //C#操作Word表格操作 object missing = System. ...
随机推荐
- Prim求解最小生成树
#include "ljjz.h" typedef struct edgedata /*用于保存最小生成树的边类型定义*/ { int beg,en; /*beg,en是边顶点序号 ...
- Discuz论坛搭建过程
1.系统环境 操作系统版本:CentOS Linux 5.7 内核版本:2.6.18-274.el5 arch:x86_64 apache版本:Apache/2.4.6 (Unix) mysql版本 ...
- 2016 MIPT Pre-Finals Workshop Taiwan NTU Contest
2016弱校联盟十一专场10.5 传送门 A. As Easy As Possible 假设固定左端点,那么每次都是贪心的匹配\(easy\)这个单词. 从\(l\)开始匹配的单词,将\(y\)的位置 ...
- HDU 1024 Max Sum Plus Plus --- dp+滚动数组
HDU 1024 题目大意:给定m和n以及n个数,求n个数的m个连续子系列的最大值,要求子序列不想交. 解题思路:<1>动态规划,定义状态dp[i][j]表示序列前j个数的i段子序列的值, ...
- HDU 1312 Red and Black --- 入门搜索 BFS解法
HDU 1312 题目大意: 一个地图里面有三种元素,分别为"@",".","#",其中@为人的起始位置,"#"可以想象 ...
- Android 中解析 JSON
有什么不懂的可以去官网去看看:www.json.org 在google android中也有关于解析JSON的类库:JsonReader,但是只能在3.0以后的版本中才可以用,在这里我们用google ...
- phpwind8.7升级9.0.1过程(一)本地和服务器数据同步的部署
在使用phpwind的过程中需要将整个网站论坛的模板从phpwind8.7升级到phpwind9.0.1 需要首先在本地搭建和服务器端一样的环境然后在本地尝试性升级之后,然后在服务器端进行升级. 以下 ...
- Python Web.py
安装Web.py root@bt:~# sudo pip install web.py Downloading/unpacking web.py Downloading web.py-0.37.tar ...
- 使用jquery插件实现图片延迟加载技术(懒加载)
有时我们看到一些大型网站,页面如果有很多图片的时候,当你滚动到相应的行时,当前行的图片才即时加载的,这样子的话页面在打开只加可视区域的图片,而其它隐藏的图片则不加载,一定程序上加快了页面加载的速度,对 ...
- ssh命令:使用密钥文件进行登陆
在win上面可以使用XSHELL来登录类似于亚马逊这样的安全服务器,在mac上面就可以使用系统自带的命令工具来连接 1.使用命令 ssh -i key.pem [server] 如下: ssh -i ...