设为首页 收藏本站
查看: 696|回复: 0

[经验分享] PHP之字符串函数

[复制链接]

尚未签到

发表于 2018-12-13 14:08:15 | 显示全部楼层 |阅读模式
字符串的处理和分析在任何编程语言中都是一个重要的基础,往往是简单而重要的。信息的分类、解析、存储和显示,以及网络中的数据都需要操作字符串来完成。尤其在web开发中更为重要,程序员大部分工作都是在操作字符串,本文将详细介绍php中的字符串函数
  [注意]关于javascript中字符串的属性和方法移步至此

特点
  
  因为php是弱类型语言,所以其他类型的数据一般都可以直接应用于字符串操作函数中,而自己转换成字符串类型进行处理
echo substr( "1234567", 2, 4 );  //将字串用函数substr()处理,输出子字符串 345echo substr( 123456, 2, 4 );     //将整型用字串函数处理,输出同样是字符串 345echo hello;           //先找hello常量,找不到就会将常名看作是字符串使用  字符串貌似数组,可以使用中括号语法,但由于无法与真正的数组进行区别,带来二义性,所以最好使用功能相同的花括号
$str = "lamp";      
echo $str."";      
echo $str{0};//输出字符串$str中第一个字符lecho $str[1];//输出字符串$str中第二个字符a,[]也可以,不过已过时  在处理变量解析时,如果在字符串中遇到美元符号,解析器会尽可能多地取得后面的字符以组成一个合法的变量名,如果想明确指定名字的结束,用花括号把变量名括起来
  
    $lamp = array('os'=>'Linux');  
    //可以解析
    echo "A OS is $lamp[os].";   
    //不能解析,如果在对关联数组下标使用引号就必须使用花括号,否则将出错
    echo "A OS is $lamp['os'].";   
    //可以解析,如果在对关联数组下标使用引号就必须使用花括号,否则将出错
    echo "A OS is {$lamp['os']}.";   
    //可以解析,注意PHP将数组下标看作常量名,常量不存在时将常量名称转为字符串,效率低
    echo "A OS is {$lamp[os]}.";  
  [注意]在php中,一个GB2312编码的汉字占2个字节,一个UTF-8编码的汉字占3个字节

输出
  
echo()
void echo ( string $arg1 [, string $... ] )  echo()函数用来输出一个或多个字符串,它会输出所有参数,且不会换行,没有返回值
  echo不是一个函数, 因此不一定要使用小括号来指明参数,单引号,双引号都可以。另外,如果想给echo 传递多个参数,就不能使用小括号
  
  
print()
int print ( string $arg )  print()函数用来输出字符串,且总是返回 1
  
  
var_dump(echo('123'));//报错var_dump(print('123'));//int 1  echo可以接受多个参数(不可以加括号),而print不可以
exit()
  exit()函数用来输出一个消息并且退出当前脚本,没有返回值,同名函数为die()
void exit ([ string $status ] )
void exit ( int $status )  如果 status 是一个字符串,在退出之前该函数会打印status;如果 status 是一个 integer,该值会作为退出状态码,并且不会被打印输出。退出状态码应该在范围0至254,不应使用被PHP保留的退出状态码255。 状态码0用于成功中止程序
printf
  printf()函数用于输出格式化字符串
int printf ( string $format [, mixed $args [, mixed $... ]] )sprintf
  sprintf()函数用于把格式化的字符串写入一个变量中
string sprintf ( string $format [, mixed $args [, mixed $... ]] )  字符串转换格式如下
  
%%    返回百分比符号%b    二进制数%c    依照ASCII值的字符%d    带符号十进制数%e    科学计数法(如1.5e3)%u    无符号十进制数%f或%F     浮点数%o        八进制数%s        字符串%x或%X    十六进制数  
  
  
  上面的两个函数不仅可以设置转换类型,还可以设置精确度、填充符和对齐方式
%%.%#    在结果前面填充#号
%-   左对齐printf("%'#10.3f",123);//###123.000printf("%10.3f",123);// 123.000(右对齐)printf("%-10.3f",123);//123.000   (左对齐)
空格
  
trim()
  trim()函数用于去除字符串首尾处的空白字符(或者其他字符),过滤后的字符串
string trim ( string $str [, string $charlist = " \t\n\r\0\x0B" ] )  此函数返回字符串str去除首尾空白字符后的结果。如果不指定第二个参数,trim() 将去除这些字符:
  
" " (ASCII 32 (0x20)),普通空格符"\t" (ASCII 9 (0x09)),制表符"\n" (ASCII 10 (0x0A)),换行符"\r" (ASCII 13 (0x0D)),回车符"\0" (ASCII 0 (0x00)),空字节符"\x0B" (ASCII 11 (0x0B)),垂直制表符  
  charlist为可选参数,过滤字符也可由charlist参数指定。一般要列出所有希望过滤的字符,也可以使用 “..” 列出一个字符范围
ltrim()
  ltrim函数用于删除字符串开头的空白字符(或其他字符)
rtrim()
  rtrim函数用于删除字符串末端的空白字符(或者其他字符) 
  
  
str_pad()
  str_pad()函数使用另一个字符串填充字符串为指定长度
string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )  该函数返回input被从左端、右端或者同时两端被填充到制定长度后的结果。如果可选的 pad_string 参数没有被指定,input 将被空格字符填充,否则它将被 pad_string 填充到指定长度
  [注意]如果pad_length的值是负数,小于或者等于输入字符串的长度,不会发生任何填充
  
  

大小写
  
strtolower()
  strtolower — 将字符串转化为小写
strtoupper()
  strtoupper — 将字符串转化为大写
ucfirst()
  ucfirst — 将字符串的首字母转换为大写
ucwords()
  ucwords — 将字符串中每个单词的首字母转换为大写
  
  

HTML
  
nl2br()
  nl2br — 在字符串所有新行之前插入 HTML 换行标记
string nl2br ( string $string [, bool $is_xhtml = true ] )  
  
md5()
  md5 — 计算字符串的 MD5 散列值
string md5 ( string $str [, bool $raw_output = false ] )  如果可选的raw_output被设置为TRUE,那么MD5报文摘要将以16字节长度的原始二进制格式返回
  
  

比较
  
strcmp()
  strcmp — 字符串比较,如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0
int strcmp ( string $str1 , string $str2 )  
  
strncmp()
  strncmp — 限定字符串长度的字符串比较
int strncmp ( string $str1 , string $str2 , int $len )  如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0
strcasecmp()
  strcasecmp — 字符串比较(不区分大小写),如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0
int strcasecmp ( string $str1 , string $str2 )  
  
strnatcmp()
  strnatcmp — 使用自然排序算法比较字符串
int strnatcmp ( string $str1 , string $str2 )  如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0
  
  

位置
  
strstr()
  strstr()查找字符串的首次出现,返回haystack字符串从needle第一次出现的位置开始到haystack结尾的字符串
string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )  before_needle若为TRUE,strstr()将返回needle在haystack中的位置之前的部分
  
  
strpos()
  strpos()查找字符串首次出现的位置
mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )strrpos()
  strrpos()计算指定字符串在目标字符串中最后一次出现的位置
int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )  
  

子串
  
substr()
  substr()返回字符串的子串
string substr ( string $string , int $start [, int $length ] )  

  

替换
  
str_replace()
  str_replace()返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )  如果count被指定,它的值将被设置为替换发生的次数
  
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-651006-1-1.html 上篇帖子: PHP之错误处理 下篇帖子: PHP 实现简单的树形列表 之二
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表