2. PHP 字符串操作
1.2.1. 字符串大小写切换以及翻转和加密
//将小写字母全部变成大写字母 $a = 'hello world'; echo strtoupper($a);//HELLO WORLD! //将大写字母全部变成小写字母 $b = 'HELLO WORLD!'; echo strtolower($b);//hello world! //将语句中的首字母变成大写 $c = 'my name is fxxy'; echo ucfirst($c);//My name is fxxy //将语句中每个字母的首字母变成大写 $d = 'my name is fxxy'; echo ucwords($d);//My Name Is Fxxy; /字符串翻转函数 $e = 'hello world'; echo strrev($a);//!dlrow olleh //字符串加密函数 $f = 'hello fxxy'; echo md5($f); //b9facffba44a838e493d2f8f28bb3584
1.2.2. 字符串截取
// 1. 按照字符所在索引进行截取: $str = 'hello word,my name is fxxy'; echo substr($str,11);//my name is fxxy echo substr($str,11,2);//my // 2. 按照指定字符进行截取: $str = 'hello world,my name is fxxy'; //截取某个字符在字符串中首次出现直到最后的所有字符(从左到右) echo strchr($str,'my');//my name is fxxy //另外一种写法 echo strstr($str,'my');//my name is fxxy //不区分大小写的写法 echo stristr($str,'MY');//my name is fxxy //截取某个字符在字符串中最后出现到最后的所有字符(从右到左) echo strrchr($str,'o');//orld,my name is fxxy //输出某个字符在字符串中首次出现的位置索引 echo strpos($str,'my');//12 //将字符串拆分成数组 $arry = explode(',',$str); var_dump($arry); // 在一个语句中,找出某个字出现了多少次,分别出现在哪个位置? $str = 'hello world,my name is fxxy'; $num=0; echo '字母【o】出现了位置索引是:'; for($i=0; strpos($str,'o',$i)!=0; $i=strpos($str,'o',$i)+1){ $num+=1; echo strpos($str,'o',$i).'、';//4 7 } echo '字母【o】总共出现了'.$num.'次';//2 // 3. 通过指定字符将主字符串进行拆分: $arr = array(); $a = 'hello,world,my,name,is,fxxy'; $b = strtok($a,','); while($b){ $arr[] = $b; //array_push($arr,$b); $b = strtok(','); } echo "<pre>";var_dump($arr);exit; // 4. 把查询字符解析到变量中: $url = 'http://www.baidu.com?username=fxxy&age=24'; $msg = substr($url,(strpos($url,'?')+1)); parse_str($msg); echo $username; echo $age; // 5. 将字符串每隔 n 个字符就拆分一次,并插入特定的分隔符: $a = 'abcdefghijklmnopqrstuvwxyz'; echo chunk_split($a,5,' | ');
1.2.3. 字符串替换和比较函数
// 1. PHP 字符串替换函数: $str = 'hello world!'; //替换单个字符 echo str_replace('h','H',$str).'<br/>';//Hello world! //替换多个字符(用数组) $arry1 = array('h','d'); $arry2 = array('H','D'); echo str_replace($arry1,$arry2,$str);//Hello worlD! // 2. PHP 字符串比较函数: //非自然比较,第一个字符串是小于 10 的数字,大于第二个字符串的第一个数字 echo strcmp('4','30').'<br/>';//1 //自然数比较 echo strnatcmp('4','30').'<br/>';//-1 //英文字符串比较 echo strcmp('hello','hello').'<br/>';//0 //不区分大小写 echo strcasecmp('hello','Hello').'<br/>';//0 //规定前几个数字进行比较 echo strncmp('2015','2016',3).'<br/>';//0 //两个字符串中相似字符的数量 echo similar_text('hello world','hello zym');//6
1.2.4. 字符串 url 解析和实体转换
// 1. 通过 parse_url() 解析 url,并且返回其组成部分: $str = 'http://www.baidu.com/admin?username=fxxy&pwd=123456'; echo '<pre>'; print_r(parse_url($str)); echo '<pre/>'; /* Array ( [scheme] => http [host] => www.baidu.com [path] => /admin [query] => username=fxxy&pwd=123456 ) */ echo parse_url($str,PHP_URL_HOST);//www.baidu.com echo parse_url($str,PHP_URL_PATH);// /admin // 2. url 编码和解码函数,对 url 的中文进行编码和解码: $str = '疯行西月'; $a = urlencode($str); echo "<a href='www.baidu.com/a..php?h=$a' >点击跳转</a>";//网址的中文部分变成了英文编码 echo urlencode($str);// %E7%96%AF%E8%A1%8C%E8%A5%BF%E6%9C%88 echo urldecode(urlencode($str));//疯行西月 // 3. 将字符串转换为 html 实体: $str = '<h1>疯行西月</h1>'; echo $str;//疯行西月 //转换中文 echo htmlentities($str);//<h1>疯行西月</h1> echo htmlspecialchars($str);//不转换【中文】 echo htmlspecialchars_decode($str);//疯行西月
1.2.5. implode vs explode
// 将数组元素组合为字符串 $array = array('姓名', '电话', '电子邮箱'); $char = implode("^", $array); echo $char; // 将字符串转化为数组 $str = '姓名^电话^电子邮箱'; $arr = explode('^',$str); print_r($arr);
1.2.6. 在字符串指定位置插入字符串
function str_insert($str,$i,$subStr){ for($j=0;$j<$i;$j++){ $startStr .=$str[$j]; } for($j=$i;$j<strlen($str);$j++){ $lastStr .= $str[$j]; } $newStr = $startStr.$subStr.$lastStr; return $newStr; }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 1. PHP 基础入门
下一篇: 彻底找到 Tomcat 启动速度慢的元凶
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论