欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第8章 字符串处理

程序员文章站 2024-01-25 15:26:22
...

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');	
?>