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 相关文章推荐
PHP中的加密功能
Oct 09 PHP
在线竞拍系统的PHP实现框架(二)
Oct 09 PHP
php操作SVN版本服务器类代码
Nov 27 PHP
PHP的几个常用数字判断函数代码
Apr 24 PHP
探讨如何把session存入数据库
Jun 07 PHP
php过滤XSS攻击的函数
Nov 12 PHP
PHP变量内存分配问题记录整理
Nov 27 PHP
让ThinkPHP支持大小写url地址访问的方法
Oct 31 PHP
PHP获取当前所在目录位置的方法
Nov 26 PHP
在PHP程序中使用Rust扩展的方法
Jul 03 PHP
对PHP依赖注入的理解实例分析
Oct 09 PHP
php经典趣味算法实例代码
Jan 21 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
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
2011/11/02 PHP
如何正确配置Nginx + PHP
2016/07/15 PHP
document对象execCommand的command参数介绍
2006/08/01 Javascript
JavaScript代码复用模式实例分析
2012/12/02 Javascript
JQuery打造省市下拉框联动效果
2014/05/18 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
JQuery实现展开关闭层的方法
2015/02/17 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
JavaScript中的this机制
2016/01/30 Javascript
javascript实现起伏的水波背景效果
2016/05/16 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
jQuery动态改变多行文本框高度的方法
2016/09/07 Javascript
jquery easyui dataGrid动态改变排序字段名的方法
2017/03/02 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
2017/08/31 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
Vue中使用vue-i18插件实现多语言切换功能
2018/04/25 Javascript
Jquery的autocomplete插件用法及参数讲解
2019/03/12 jQuery
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
antd的select下拉框因为数据量太大造成卡顿的解决方式
2020/10/31 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
[01:21:58]守擂赛DOTA2第一周决赛
2020/04/22 DOTA
Python解析树及树的遍历
2016/02/03 Python
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
使用tensorflow根据输入更改tensor shape
2020/06/23 Python
Pandas之缺失数据的实现
2021/01/06 Python
请解释接口的显式实现有什么意义
2012/05/26 面试题
《晏子使楚》教学反思
2014/02/08 职场文书
公证书标准格式
2014/04/10 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
运动会加油稿30字
2015/07/21 职场文书
假如给我三天光明:舟逆水而行,人遇挫而达 
2019/10/29 职场文书
Pygame如何使用精灵和碰撞检测
2021/11/17 Python
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers