2. PHP 字符串操作

发布于 2024-11-03 11:16:42 字数 4336 浏览 8 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

雨巷深深

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

lee_heart

文章 0 评论 0

往事如风

文章 0 评论 0

春风十里

文章 0 评论 0

纸短情长

文章 0 评论 0

qq_pdEUFz

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文