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

详解PHP中的字符串

程序员文章站 2024-03-25 08:30:58
...

字符串

单引号与双引号的区别

单引号中的变量不会被解析且格式化字符串不会被转义,而双引号中的变量会被解析,格式化字符串也会被转义:

<meta charset="utf-8">
<?php
	$a = 15;
	$b = 10;

	echo "xxxx\nxxx$a".'<br>';
	echo 'xx\nxxxxx$a'.'<br>';
?>

运行结果:
详解PHP中的字符串

字符串常用的函数

strlen()

输出当前字符串的长度,汉字占3个字符,英文和数字占1个字符:

<meta charset="utf-8">
<?php
	
	$a = "editor.csdn.com";
	# 这里输出15
	echo strlen($a);
?>
mb_strlen()

输出解码后字符串的长度:

<meta charset="utf-8">
<?php

	$a = "editor.csdn.com";
	$b = '北京';
	echo mb_strlen($a,'utf-8');
	echo "<br>";
	# 北京经过utf-8解码后是2
	echo mb_strlen($b,'utf-8');
?>
strpos()

这个函数用来返回字符串在其当前行数出现的位置:

<meta charset="utf-8">
<?php

	$a = "editor.csdn.com";
	$b = '北京';
	# 这里会输出7
	echo strpos($a, 'csdn');
?>
stripos()

它跟上面函数的区别就是区分大小写,它不区分,它上面的区分

<meta charset="utf-8">
<?php

	$a = "editor.csdn.com";
	$b = '北京';
	
	var_dump(strpos($a, 'Csdn'));
	echo '<br>';
	var_dump(stripos($a, 'Csdn'));
?>

详解PHP中的字符串

str_replace()

这个函数在很多代码级的防护上都有出现,效果就是字符串替换,这个函数跟strpos()一样,区分大小写,而str_ireplace()不区分大小写:

<meta charset="utf-8">
<?php

	$a = "editor.csdn.com";
	$b = '北京';
	//将字符串a中的csdn替换成baidu并把结果赋值给c
	$c = str_replace('csdn', 'baidu', $a);
	echo "$a";
	echo '<br>';
	echo "$c";
?>

详解PHP中的字符串

strstr()

这个函数的作用是查找字符串的首次出现 :

<meta charset="utf-8">
<?php
$email   =  'aaa@qq.com' ;
$domain  =  strstr ( $email ,  '@' );
echo  $domain ;  // 打印 @example.com
echo "<br>";
// 从 PHP 5.3.0 起,参数true返回条件前的字符串,不包含条件,false返回条件后的字符串,包含条件
$user  =  strstr ( $email ,  '@' ,  true );  
echo  $user ;  // 打印 name
?> 
substr()

这个函数的作用是截取字符串,比如我们要截取username这个字符串,他就是从0开始,长度为8的一个条件,我们按照这个条件来截取即可

<meta charset="utf-8">
<?php
$email   =  'aaa@qq.com' ;

$str = substr($email,0,8);
echo "$str";
?> 

详解PHP中的字符串

explode()

这个函数类似于Python中的split()函数,按条件分割字符串并以数组的形式保存:

<meta charset="utf-8">
<?php
$website = 'www.qq.com' ;
$array = explode('.',$website);
print_r($array);
?> 

详解PHP中的字符串

implode()

这个函数刚好与explode()对应,它的作用是把数组以某种条件拼接成一串字符串:

<meta charset="utf-8">
<?php

$array  = array( 'lastname' ,  'email' ,  'phone' );
$comma_separated  =  implode ( "," ,  $array );

echo  $comma_separated ;  // lastname,email,phone
echo "<br>";
//使用空数组时为空字符串
 var_dump ( implode ( 'hello' , array()));  // string(0) ""

 ?> 

详解PHP中的字符串

trim()

这个函数对应Python中的strip()函数,用于去除字符串头尾的空格或其他你指定的字符:

<?php
$test = '000This is test str000';
$newstr = trim($test,0);


echo "$test";
echo "<br>";
echo "$newstr";
 ?> 

详解PHP中的字符串
如果想要去除空格的话是不需要加条件的,这个函数本身就是用来去除字符串首尾空格的,对应消除左边字符与右边字符的是rtrim()ltrim()

addslashes()和htmlspecialchars()

这两个函数放到一起写是因为他俩经常用于防注入和防XSS

详解PHP中的字符串
来一段代码感受一下:

<?php
$username = "admin'";
echo addslashes($username);
 ?> 

这里会把admin后面的单引号转义掉:
详解PHP中的字符串
再看一下htmlspecialchars()函数
详解PHP中的字符串
主要看下面那5条,这是他的过滤规则,我们来一个代码测试一下:

<?php
$search = "<script>alert('xss')</script>";
echo htmlspecialchars($search);
 ?> 

看一下源代码就知道它怎么转义的了 :
详解PHP中的字符串
在后面的学习中我会更详细的补充这两个函数的

相关标签: PHP php