当前位置: 首页 > news >正文

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,如需转载请自行联系原作者

相关文章:

  • vue element ui excel json2csv csv 导出
  • 这7个不可错过的数据可视化技术,让你的位置信息跃然纸上
  • JAVA运维-Tomcat支持APR模式
  • 路由器密码忘了怎么办 自己动手不求人
  • 源码编译安装 PHP 7.1.5 + nginx 1.12.0
  • 微信分享JS-SDK
  • 独家 | 环境大数据的应用案例及前景
  • P4165 [SCOI2007]组队
  • 跨域问题
  • laraval+node.js实现websocket
  • PowerShell 脚本执行策略
  • MSDN SmartCast更改下载步骤
  • QT之二维绘图:场景,图元,视图
  • DockOne微信分享( 八十八):PPTV聚力传媒的Docker与DevOps
  • VM中ubuntu虚拟机共享文件夹,mnt下面没有hgfs
  • $translatePartialLoader加载失败及解决方式
  • 30秒的PHP代码片段(1)数组 - Array
  • exports和module.exports
  • FastReport在线报表设计器工作原理
  • Javascript设计模式学习之Observer(观察者)模式
  • Java深入 - 深入理解Java集合
  • Phpstorm怎样批量删除空行?
  • spring boot 整合mybatis 无法输出sql的问题
  • spring-boot List转Page
  • springMvc学习笔记(2)
  • Windows Containers 大冒险: 容器网络
  • windows-nginx-https-本地配置
  • 分享一份非常强势的Android面试题
  • 类orAPI - 收藏集 - 掘金
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • Java数据解析之JSON
  • postgresql行列转换函数
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • #define
  • $L^p$ 调和函数恒为零
  • (1)STL算法之遍历容器
  • (3)STL算法之搜索
  • (二)c52学习之旅-简单了解单片机
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转载)Linux 多线程条件变量同步
  • ... 是什么 ?... 有什么用处?
  • .java 9 找不到符号_java找不到符号
  • /var/spool/postfix/maildrop 下有大量文件
  • @ModelAttribute使用详解
  • [2016.7 test.5] T1
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [ActionScript][AS3]小小笔记
  • [BT]小迪安全2023学习笔记(第15天:PHP开发-登录验证)
  • [cb]UIGrid+UIStretch的自适应