字符串处理
<?php echo substr("1234567",2,4);//将字符串用substr处理,输出345 echo substr(123456,2,4);//同样是345因为php是弱类型语言
$str="lamp" $str(strlen($str)-1)="nginx";//结果为lamn
双引号中的变量解析总结
echo "A OS is $lamp[os]";//右方括号标志着索引的结束 echo "A OS is {$lamp['os']}.";//下标有引号就必须使用花括号 echo "A OS is {$lamp[os]}."; echo "$square->width"; echo "{$square->width}00";//使用方括号括起来
php中常用的字符串输出函数
函数名 | 功能描述 |
---|---|
echo() | 输出字符串 |
print() | 输出一个和多个字符串 |
die() | 输出一条消息,并退出当前脚本 |
printf() | 输出格式化字符串 |
sprintf() | 把格式化字符串写入一个变量 |
函数echo
用来输出一个或多个字符串
<?php $str="what's LAMP"; echo $str;
函数print
与echo一样,有返回值1/0
函数die
是exit函数别名,如果参数是字符串,则在退出前输出它,整数则为退出状态,255由php保留,o用于成功终止程序。
<?php $url="www.baidu.com"; fopen($url,"r") or die("unable to connect to $url");
函数printf()
用于输出格式化字符串,与c语言用法一样。
常用字符串转换格式
格式 | 功能 |
---|---|
%% | 返回百分比符号 |
%b | 二进制 |
%c | 依照ASCII值的字符 |
%d | 带符号十进制 |
%e | 可续计数法 |
%u | 无符号十进制数 |
%f | 浮点数 |
%F | 浮点数 |
%o | 八进制数 |
%s | 字符串 |
%x | 小写十六进制数 |
%X | 大写十六进制数 |
函数sprintf
把格式化字符串以返回值的形式写入到一个变量
<?php $num=12345; $txt=sprintf("%0.2f",$num);//转换为保留两位小数的浮点数,并赋值给变量$txt echo $txt;
常用的字符串格式化函数
函数名 | 功能描述 |
---|---|
ltrim() | 从字符串左侧删除空格或其他预定义字符 |
rtrim() | 从字符串的末端开始删除空白字符或其他预定义字符 |
str_pad() | 把字符串填充为新的长度 |
strtolower() | 把字符串转换为小写 |
strtoupper() | 把字符串转换为大写 |
ucfirst() | 把字符串首字符转换为大写 |
Ucwords() | 把字符串每个单词的首字符转换为大写 |
nl2br() | 在字符串中的每个新行之前插入HTML换行符 |
htmlentities() | 把字符串转换为HTML实体 |
htmlspecialchars() | 把一些预定义的字符串转换为HTML实体 |
Stripslashes() | 删除由addcslashes()函数添加的反斜杠 |
strip_tags() | 剥去HTML,XML及PHP的标签 |
number_format() | 通过千位分组来格式化数字 |
strrev() | 反转字符串 |
md5() | 将一个字符串进行MD5计算 |
trim() | 从字符串的两端删除空白字符或其他预定义字符 |
大部分都是返回一个格式化后的新字符,而不是修改原字符串
去除空格和字符串填充函数
格式
函数名(字符串,过滤字符串(可选))函数为ltrim,rtrim,trim
过滤字符串默认去掉下列字符
"":ASCII32 空格。"\0":ASCII0 NULL。"\t":ASCII9 制表符。"\n":ASCII10 换行。"\r":ASCII13 回车
使用".."符号指定去除范围。例如"0..9"或"a..z"。echo ltrim($str,"0..9");
使用str_pad对字符串进行填充
格式str_pad(字符串,给定处理后字符串的长度,填补用的字符串(可选默认空格填充),填补方向STR_PAD_RIGHT/STR_PAD_BOTH/STR_PAD_LEFT(可选默认右填充))
echo str_pad($str,10,"_",STR_PAD_BOTH);
字符大小写替换
echo ucfirst(strtolower($lamp));
和HTML标签相关的字符串格式化
函数nl2br()在"\n"之前插入HTML换行符"<br/>"
echo nl2br("one line.\Another line.");
函数htmlspecialchars()将一些预定义的字符转换为HTML实体。
可以转换的字符串"&"转换为"&"。"""转换为"""。"'"转换为"'"。"<"转换为"<"。">"转换为">"。
格式htmlspecialchars(字符串,转换方式(可选默认ENT_QUOTES只转换双引号,保留单引号。ENT_QUOTES同时转换两种引号,ENT_NOQUOTES不转换引号),指定处理字符串的字符集默认字符集是ISO 8859-1);
在htmlspecialchars()的第三个参数中可以使用的合法字符集
字符集 | 别名 | 描述 |
---|---|---|
ISO-8859-1 | ISO 8859-1 | 西欧Latin-1 |
ISO-8859-15 | ISO 8859-15 | 西欧Latin-9 |
UTF-8 | ASCII兼容多字节8-bit Unicode | |
cp886 | ibm886,886 | DOS持有Cyrillic字母字符集 |
cp1251 | Windows-1251,win-1251,1251 | Windows持有的Cyrillic字母字符集 |
KOI8-R | koi8-ru,koi8r | 俄文 |
BIG5 | 950 | 繁体中文 |
GB2312 | 936 | 简体中午 |
BIG5-HKSCS | 繁体中文 | |
Shift_JIS | SJIS,932 | 日文 |
EUC-JP | EUCIP | 日文 |
cp1252 | Windows-1252,1252 | Windows对于西欧特有的字符集 |
删除字符串strip_tags($str,"<front>");
strip_tags(被操作字符串,保留的参数(可选))
其他字符串格式化函数
函数strrev()将输入的字符反转。
echo strrev("www.baidu.com");
函数number_format()
number_format(格式化的字符串,规定使用多少小数(可选),作为小数点的字符串(可选),作为千位分隔符的字符串()可选)
number_format($number,2,",",".");
函数md5()
进行MD5加密
md5(字符串,布尔型数值(可选,默认值为FALSE,返回32位。TRUE返回16位))
字符串比较函数
按字节顺序进行字符串比较
int strcmp(string str1,string str2)//区分字符串中字母大小写的比较
int strcasecmp(string str1,string str2)//忽略字符串中字母大小写的比较
str1和str2等于则返回0,大于则返回1,小于则等于-1。
按自然排序进行字符串比较
即按照数字大小进行比较
使用strnatcmp()函数按自然排序法比较两个字符串
<?php $files=array("file11.txt","file22.txt","file1.txt","file2.txt"); function mySort($arr,$select=false){ for($i=0;$i<count($arr);$i++){ for($j=0;$j<count($arr)-1;$j++){ if($select){ if(strcmp($arr[$j],$arr[$j+1])>0){ $tmp=$arr[$j]; $arr[$j]=$arr[$j+1]; $arr[$j+1]=$tmp; } }else{ if(strnatcmp($arr[$j],$arr[$j+1])>0){ $tmp=$arr[$j]; $arr[$j]=$arr[$j+1]; $arr[$j+1]=$tmp; } } } } }