PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)


Posted in PHP onSeptember 11, 2016

本文实例总结了PHP字符串处理技巧。分享给大家供大家参考,具体如下:

Demo1.php

<?php
  //源代码是文本形式,页面显示是 web 形式
  $str = '      PHP      ';
  //清理一下两边的空格 ltrim 只清理左,rtrim只清理右边
  echo ltrim($str);
  echo '<br/>';
  echo rtrim($str);
  echo '<br/>';
  //两边都清理
  echo trim($str);
  //echo chop($str);
?>

Demo2.php

<?php
  $str = "This is 一站式建网站 \n This is a OneStopWeb";
  //但是,我现在想要在网页中实现换行
  //在回帖的时候,一个回车就是 \n
  //我们通过函数来实现转换过程
  echo nl2br($str);
?>

Demo3.php

<?php
  //将所有字符转换成 HTML
  $str = '<strong>阅谁问君诵,水落清香浮。</strong>';
  //echo htmlentities($str);
  //我们只要转换特殊字符即可
  //echo htmlspecialchars($str);//<strong>阅谁问君诵,水落清香浮。</strong>
  echo strip_tags($str); //阅谁问君诵,水落清香浮。
?>

Demo4.php

<?php
  $str = 'This is "一站式建网站" \n This is a OneStopWeb';
  //对于即将插入数据库的字符串,把有问题的字符处理一下
  //echo addslashes($str); //This is \"一站式建网站\" \\n This is a OneStopWeb
  $a = addslashes($str);
  //这个 $a 就是写入数据库的,我拿出来的话,就会有 \ 这个符号
  echo stripcslashes($a);
  //首先将写进数据库的字符串通过 addslashes() 函数过滤一下,然后拿出来的时候
  //再通过 stripcslashes() 解析一下显示
?>

Demo5.php

<?php
  //将字符串转换成大写
  echo strtoupper('oneStopWeb');//ONESTOPWEB
  //将字符串转换成小写
  echo strtolower('oneStopWeb');//onestopweb
  //将第一个字母转换成大写
  echo ucfirst('oneStopWeb'); //OneStopWeb
?>

Demo6.php

<?php
  $str = 'oneStopWeb';
  //echo str_pad($str,11).'is good!'; //oneStopWeb is good!
  //oneStopWeb###
  //echo str_pad($str,13,'#')
  echo str_pad($str,18,'#',STR_PAD_BOTH);
  echo '<br/>';
  echo str_pad($str,18,'#',STR_PAD_LEFT);
  echo '<br/>';
  echo str_pad($str,18,'#',STR_PAD_RIGHT);
/**
 * ####oneStopWeb####
 * ########oneStopWeb
 * oneStopWeb########
 * */
?>

Demo7.php

<?php
  //explode -- 使用一个字符串分割另一个字符串
  //返回的是一个数组
  //explode 第一参数是分割字符串,第二个参数是要被分割的字符串
  $email = explode('@','oneStopWeb@163.com');
  //print_r($email); //Array ( [0] => oneStopWeb [1] => 163.com )
  //分割完了之后,我经过一轮筛选,还要重新组合
// $arr = array('oneStop','@','163.com');
// $str = implode('&',$arr);
// echo $str;//oneStop&@&163.com
  $str = implode(' - ',$email);
  echo $str; //oneStopWeb - 163.com
?>

Demo8.php

<?php
// $str = 'I will be back';
// $arr = explode(' ',$str);
// print_r($arr); //Array ( [0] => I [1] => will [2] => be [3] => back )
  $str = 'I,will.be#back';
  $tok = strtok($str,',.#');
  //echo $tok;
  while($tok){
    echo $tok.'<br/>';
    $tok = strtok(',.#');
  }
// $str = 'I will be back';
// $tok = strtok($str,' ');
// //echo $tok;
// while($tok){
//   echo $tok.'<br/>';
//   $tok = strtok(' ');
// }
// $tok = strtok(' ');
// echo $tok;//Iwill
// //指针没有下移,而是重新来了一次
// $tok = strtok($str,' ');
// echo $tok;
?>

Demo9.php

<?php
  $str = 'oneStopWeb@163.com';
  //中间的参数表示开始的位置,位置是从 0 开始的,最后一个参数,是取出的个数
  echo substr($str,0,5)  ;//oneSt
?>

Demo10.php

<?php
  //$str = 'oneStopWeb@163.com';
  $str = '阅谁问君诵,水落清香浮。'; //中文乱码
  print_r(str_split($str));
?>

Demo11.php

<?php
  $str = 'oneStopWeb@163.com';
  echo strrev($str); //moc.361@beWpotSeno
?>

Demo12.php

<?php
  //通过 == 来比较字符串是否一致
  //最后的返回值是布尔值
  //echo 'a' == 'a';
  //比较两个字符串
  //echo strcmp('a','b');
// if(strcmp('a','a') == 0){
//   echo '相等';
// }
  //echo strcasecmp('B','b'); //不区别大小写
  //目前是非自然排序
  //echo strcmp('2','10');//1
  //如果按照自然排序方式比较呢?
  echo strnatcmp('2','10');//-1
?>

Demo13.php

<?php
  //strspn
  //后面两个数字的参数,是从第几位开始,取多少位
  echo strspn('one','oneStopWeb@163.com',1,5);
?>

Demo14.php

<?php
  //测试字符串的长度
  echo strlen('oneStopWeb@163.com') ;
?>

Demo15.php

<?php
  //测试字符串出现的频率
  echo substr_count('oneStopWeb@163.com','o');
?>

Demo16.php

<?php
  //从指定的字符串开始输出之后的字符串
  echo strstr('oneStopWeb@163.com','@');
  //不区别大小写的
  echo stristr('oneStopWeb@163.com','s');
?>

Demo17.php

<?php
  //查找某字符串最先出现的位置
  //位置是从第 0 个位置开始计算,W第一次出现在第 7 个位置上
  echo strpos('oneStopWeb@163.com','W');
  //最后出现的位置
  echo strrpos('oneStopWeb@163.com','o');
?>

Demo18.php

<?php
  //字符串替换
  //第一个参数表示要查找的字符串(部分)
  //第二个参数表示要替换成的字符串(部分)
  //第三个参数表示原来的被替换的完整字符串
  //echo str_replace('one','yi','oneStopWeb@163.com');//yiStopWeb@163.com
  //str_ireplace 是不区分大小写
  //echo str_ireplace('oNe','yi','oneStopWeb@163.com');//yiStopWeb@163.com
  //从第一个位置开始(参数3),取出 5 个来(参数4),将它替换成 ###(参数2)
  echo substr_replace('oneStopWeb@163.com','###',0,5);
?>

Demo19.php

<?php
  //取中文长度
  $str = '阅谁问君诵,水落清香浮。';
  //用普通的 strlen 取一个中文字,就算两个
  //echo strlen($str) ;
  //使用 mb_strlen 来取中文,有第二个参数,字符编码
  echo mb_strlen($str,'GBK');//12
  //如果你使用普通的 strlen 这个函数,我取 1 个字符
  //采用 mb_substr 来取中文字符
  echo mb_substr($str,2,1,'GBK');//问
?>

Demo20.php

<?php
  $str = '阅谁问君诵,水落清香浮。';
  //求出 o 最先出现的位置
  //中文的算法,两个字符一个中文字
  //mb 就算一个
  //echo strpos($str,'问');//4
  //按中文一个字符来计算,这样不会出现半个中文的状态
  echo mb_strpos($str,'问',0,'GBK');
?>

Demo21.php

<?php
// $str = '阅谁问君诵,水落清香浮。'  ;
// echo mb_substr($str,0,1,'GBK');
  $str ='阅谁问君诵,水落清香浮。';
  //这个就无所谓用 mb_strstr
  echo strstr($str,'水');
?>

Demo22.php

<?php
  $str ='阅谁问君诵,水落清香浮。';
  echo mb_substr_count($str,'问','GBK');
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
实现“上一页”和“下一页按钮
Oct 09 PHP
openPNE常用方法分享
Nov 29 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
Dec 11 PHP
鸡肋的PHP单例模式应用详解
Jun 03 PHP
PHP mail()函数使用及配置方法
Jan 14 PHP
利用php_imagick实现复古效果的方法
Oct 18 PHP
PHP会话控制实例分析
Dec 24 PHP
PHP 二级子目录(后台目录)设置二级域名
Mar 02 PHP
thinkphp中的多表关联查询的实例详解
Oct 12 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
Aug 06 PHP
ThinkPHP5+Layui实现图片上传加预览功能
Aug 17 PHP
PHP实现提取多维数组指定一列的方法总结
Dec 04 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
Sep 11 #PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
Sep 11 #PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
Sep 11 #PHP
PHP入门教程之数学运算技巧总结
Sep 11 #PHP
PHP入门教程之操作符与控制结构流程详解
Sep 09 #PHP
PHP基本语法实例总结
Sep 09 #PHP
php入门教程之Zend Studio设置与开发实例
Sep 09 #PHP
You might like
星际争霸任务指南——神族
2020/03/04 星际争霸
php 批量替换程序的具体实现代码
2013/10/04 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
PHP实现与java 通信的插件使用教程
2019/08/11 PHP
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
Google 地图类型详解及示例代码
2016/08/06 Javascript
Laravel中常见的错误与解决方法小结
2016/08/30 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
layui获取选中行数据的实例讲解
2018/08/19 Javascript
新手必须知的Node.js 4个JavaScript基本概念
2018/09/16 Javascript
详解JavaScript作用域、作用域链和闭包的用法
2020/09/03 Javascript
[01:09:13]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第三场 1月19日
2021/03/11 DOTA
Python模块包中__init__.py文件功能分析
2016/06/14 Python
python中join()方法介绍
2018/10/11 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
Flask框架中request、请求钩子、上下文用法分析
2019/07/23 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
python实现简单文件读写函数
2021/02/25 Python
匡威帆布鞋美国官网:Converse美国
2016/08/22 全球购物
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
机械专业应届生求职信
2013/12/12 职场文书
遗产继承公证书
2014/04/09 职场文书
超市创业计划书
2014/04/24 职场文书
党的生日活动方案
2014/08/15 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
公司清洁工岗位职责
2015/04/15 职场文书
庆祝教师节主持词
2015/07/06 职场文书
高三数学复习备考教学反思
2016/02/18 职场文书
vue判断按钮是否可以点击
2022/04/09 Vue.js