PHP字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、切割成数组等)-阿里云开发者社区

开发者社区> 老朱教授> 正文

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才行)




本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/p/4596246.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
c#-WPF string,color,brush之间的转换
原文:c#-WPF string,color,brush之间的转换 String转换成Color string-"ffffff" Color color = (Color)ColorConverter.
1264 0
将String类型的数字字符转换成int
java.lang.Integer.parseInt(String) public static int parseInt(String s) throws NumberFormatException Parses the string argument as a signed decimal integer.
925 0
+关注
3546
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载