PHP字符串

猫斯基 28 2014-01-31

字符串的声明

PHP中可以使用双引号,也可以使用单引号。
双引号可以解析变量,可以使用所有的转义字符。

字符串的使用

分割、匹配、查找、替换

系统函数:如果是其他类型的数据,也可以使用字符串处理函数。处理的方式就是先将其他类型自动转成字符串,再处理。

字符串可以像数组一样,通过下标,来访问每个字符,但不是数组。

字符串除了有英文字符,还有中文。utf-8编码下,一个汉字占三个字节。

/*
 猫斯基 www.maosiji.com
 */
// 统计数组长度的,有警告
// echo count( "abc" ).'
'; // 1 echo strlen( 'abc' ).'
'; // 3 // 整型转成字符串,然后再计算长度 echo strlen( 10000 ).'
'; // 5 $str = "hello"; // 字符串可以像数组一样,通过下标,来访问每个字符,但不是数组。 echo $str[0].$str[1].'
'; // he echo $str{0}.$str{1}.'
'; // he // utf-8编码下,一个汉字占三个字节 echo strlen( "中国" ); // 6
/*
 猫斯基 www.maosiji.com
 */
$str = "hello";
// 通过下标改值
$str{2} = 'm';
// 字符串可以像数组一样,通过下标,来访问每个字符,但不是数组。
echo $str.'
'; // hemlo // 只对第一个字符有效,其他的自动舍弃 $str[2] = 'mao'; echo $str.'
'; // hemlo $int = 888; $arr = array( 'one'=>666, 'two'=>777 ); echo "1111111 $int 111111".'
'; // 1111111 888 111111 echo "1111111{$arr['one']}111111".'
'; // 1111111666111111 echo "1111111 $arr[one] 111111".'
'; // 1111111 666 111111 class Demo { var $name = 222; } $d = new Demo; echo "1111111{$d->name}111111".'
'; // 1111111222111111 echo "1111111 $d->name 111111".'
'; // 1111111 222 111111

中文的分割

$str = "hello world";
$str1 = "你好 世界";
echo substr( $str, 0, 7 ).'
'; // hello w echo mb_substr( $str1, 0, 2, 'utf-8' ).'
'; // 你好

echo 与 print 的区别

/*
	猫斯基 wp.www.maosiji.com
*/
// 指令方式
echo "11111111
"; // 函数方式 echo ("11111111
"); // print 有返回值,echo 没有返回值 var_dump( print "11111111
" ); echo '
'; print "11111111
"; print ("11111111
"); // echo 可以打印多个值 echo "aa","bb","cc";

exit die

/*
	猫斯基 wp.www.maosiji.com
*/
exit('aaa');
die('bbb');
// 正常退出
die(0);
exit(0);
// 意外退出 可以写 1 到 254 的整数
die(1);
exit(254);

printf sprintf

%% 返回百分比符号
%b 返回二进制数
%c 返回依照ASCII值的字符
%d 返回带符号的十进制数
%e 返回科学计数法的数
%u 返回无符号十进制数
%f 返回浮点数
%F 返回浮点数
%o 返回八进制数
%s 返回字符串
%x 返回十六进制数
%X 返回十六进制数

/*
	猫斯基 wp.www.maosiji.com
*/
$int = 100;
printf( '%c', $int );
echo '
'; printf( 'sfsdfw%ddfdfsd%csfsdgfds', $int, $int ); echo '
'; printf( '%%, %d, %c, %b, %e, %u, %f, %.2f', $int, $int, $int, $int, $int, $int, $int, $int ); echo '
'; echo chr($int).'
'; /* d sfsdfw100dfdfsddsfsdgfds %, 100, d, 1100100, 1.000000e+2, 100, 100.000000, 100.00 d */
/*
	猫斯基 wp.www.maosiji.com
*/
$int = 100;
$str = sprintf( '%%, %d, %c, %b, %e, %u, %f, %.2f', $int, $int, $int, $int, $int, $int, $int, $int );
echo str;
/*
%, 100, d, 1100100, 1.000000e+2, 100, 100.000000, 100.00
*/

trim rtrim ltrim 去除两边字符

/*
	猫斯基 wp.www.maosiji.com
*/
$str = ' hello world98adw!!  ';
// 去除右边空格
echo rtrim( $str ).'---'.strlen( rtrim( $str ) ).'
'; $str = ' hello world98adw!!'; // 去除最右边的两个叹号 echo rtrim( $str, '!!').'---'.strlen( rtrim( $str, '!!') ).'
'; $str = ' hello world98adw!! '; // 去除左边空格 echo ltrim( $str ).'---'.strlen( ltrim( $str ) ).'
'; // 去除两边空格 echo trim( $str ).'---'.strlen( trim( $str ) ).'
'; // 去除两边0到9的数字、a到z的字母、空格 echo trim( $str, "0..9a..z ").'
'; /* hello world98adw!!---19 hello world98adw---17 hello world98adw!! ---19 hello world98adw!!---18 !! */

str_pad 字符串补足

/*
	猫斯基 wp.www.maosiji.com
*/
$str = 'hello';
// 用空格补足字符串的长度
$strnew = str_pad( $str, 10 );
$strnew2 = str_pad( $str, 10, ' ' );
echo $strnew.' --- '.strlen( $strnew ).'
'; echo $strnew2.' --- '.strlen( $strnew2 ).'
'; // 用#补足字符串10个长度 $strnew2 = str_pad( $str, 10, '#' ); // 默认在右边补足 $strnew3 = str_pad( $str, 10, '#', STR_PAD_RIGHT ); echo $strnew2.' --- '.strlen( $strnew2 ).'
'; echo $strnew3.' --- '.strlen( $strnew3 ).'
'; // 用#在左边补足字符串10个长度 $strnew4 = str_pad( $str, 10, '#', STR_PAD_LEFT ); echo $strnew4.' --- '.strlen( $strnew4 ).'
'; // 用#在两边补足字符串10个长度 $strnew4 = str_pad( $str, 10, '#', STR_PAD_BOTH ); echo $strnew4.' --- '.strlen( $strnew4 ).'
'; /* hello --- 10 hello --- 10 hello##### --- 10 hello##### --- 10 #####hello --- 10 ##hello### --- 10 !! */

大小写转换

$str = 'hello World maosiji';
// 转成小写
echo strtolower( $str ).'
'; // 转成大写 echo strtoupper( $str ).'
'; // 将第一个字符转成大写 echo ucfirst( $str ).'
'; // 每个字的第一个字母转成大写 echo ucwords( $str ).'
'; /* hello world maosiji HELLO WORLD MAOSIJI Hello World maosiji Hello World Maosiji !! */

提交表单时的字符串

title:
'; // 删除html标签 echo strip_tags( $title ); // 只删除b和u标签 echo strip_tags( $title, "" ); }

nl2br

$str = "i i i i i i n";
$str .= "a a a a a n";
echo $str.'
'; echo nl2br( $str ); /* i i i i i i a a a a a i i i i i i a a a a a */

字符串格式处理

/*
	猫斯基 wp.www.maosiji.com
*/
$str = "hello world";
// 前后颠倒
echo strrev( $str ).'
'; // 字符串长度 echo strlen( $str ).'
'; $str2 = "0123456789"; // 格式 echo number_format( $str2 ).'
'; echo number_format( $str2, 2 ).'
'; echo number_format( $str2, 2, ".", "," ).'
'; // md5加密 多层加密存储密码 echo md5( md5( md5( $str ).'maosiji').'com' ).'
'; /* dlrow olleh 11 123,456,789 123,456,789.00 123,456,789.00 534765312785f1ce561ddcba5aa48dd7 */

字符串比较处理

$str = "hello world";
$str2 = "hello world";
// 等号比较
if ( $str == $str2 ) { echo '相等';} else { echo '不相等';}
$str = "hello world maosiji";
$str2 = "hello world MAOSIJI";
// 等号比较
if ( strtoupper($str) == strtoupper($str2) ) { echo '相等';} else { echo '不相等';}
$str = "hello world";
$str2 = "hello World";
// 二进制安全比较
// 字符串1小于字符串2,返回负数;
// 字符串1大于字符串2,返回正数;
// 字符串1等于字符串2,返回0
switch ( strcmp( $str, $str2 ) ) {
	case 0:
		echo "{$str} 等于 {$str2}";
	break;
	case -1:
		echo "{$str} 小于 {$str2}";
	break;
	case 1:
		echo "{$str} 大于 {$str2}";
	break;
}
// 不区分大小写
switch ( strcasecmp( $str, $str2 ) ) {
	case 0:
		echo "{$str} 等于 {$str2}";
	break;
	case -1:
		echo "{$str} 小于 {$str2}";
	break;
	case 1:
		echo "{$str} 大于 {$str2}";
	break;
}
$str = "hello11.txt";
$str2 = "hello1.txt";
// 按自然顺序比较
switch ( strnatcmp( $str, $str2 ) ) {
	case 0:
		echo "{$str} 等于 {$str2}";
	break;
	case -1:
		echo "{$str} 小于 {$str2}";
	break;
	case 1:
		echo "{$str} 大于 {$str2}";
	break;
}
// 不区分大小写
switch ( strnatcasecmp( $str, $str2 ) ) {
	case 0:
		echo "{$str} 等于 {$str2}";
	break;
	case -1:
		echo "{$str} 小于 {$str2}";
	break;
	case 1:
		echo "{$str} 大于 {$str2}";
	break;
}

本文由 猫斯基 原创发布。

著作权均归用户本人所有。独家文章转载,请联系本站管理员。获得授权后,须注明本文地址! 本文地址:https://www.maosiji.com/2577.html

猫斯基

专注于WordPress主题定制、插件定制、二次开发。

周一至周日 12:30-05:30

寻找站长,请添加
最新消息,请关注

已有 5000+ 关注