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

[经验分享] Learning PHP-String与正则表达式

[复制链接]

尚未签到

发表于 2017-4-2 07:22:01 | 显示全部楼层 |阅读模式
字符串的格式化
字符串的整理:chop()ltrim()trim()
整理字符串的第一步是清理字符串中多余的空格。

  • trim()函数可以除去字符串开始位置和结束位置的空格,并将结果字符串返回。默认情况下,除去的字符是换行符和回车符、水平和垂直制表符、字符串结束符和空格。
  • ltrim()只从字符串的开始处除去空格,rtrim()只从字符串的结束处除去空格。
  • printf()函数是将一个格式化的字符串输出到浏览器中
  • sprintf()函数是返回一个格式化了的字符串


echo "Total amount of order is $total.";
printf("Total amount of order is %s.",$total);
printf()函数的优点在于,可以使用更有用的转换说明来制定$total为一个浮点数。
所有转换说明都以%开始。如果想打印一个"%"符号,必须使用"%%"。
改变字符串中的字符大小写
可以重新格式化字符串中的字母大小写。

  • strtoupper()  将字符串转换为大写
  • strtolower() 将字符串转换成小写
  • ucfirst() 如果字符串的第一个字符是字母,就将该字符转换为大写
  • ucwords() 将字符串每个单词的第一个字母转换为大写


格式化字符串以便存储:addslashes()和stripslashes()
对于字符串来说,某些字符肯定是有效的,但是当将数据插入到数据库中的时候可能会引起一些问题,因为数据库会将这些字符解释称控制符。这些有问题的字符是引号、反斜杠和NULL字符
我们需要找到一种标记或是转义它们的方法,以便使像MySQL这样的数据库能够理解我们表示的是有实际意义的特殊文本字符,而不是控制序列。为了将这些字符进行转义处理,可以在它们前面加一个反斜杠。
PHP提供了两个专门用于转义字符串的函数。
在将任何字符串写到数据库之前,如果你的PHP的默认配置还没有启用该功能,你应该使用addslashes()将它们重新格式化,例如:
$feedback = addslashes(trim($_POST['feedback']));
调用addslashes()后,所有引号将被加上反斜杠,而Stripslashes()会移出这些反斜杠
用字符串函数连接和分割字符串
使用函数explode()、implode()和join()
分割字符串,explode(),它的函数原型如下所示:
array explode(string separator, string input [, int limit]);

if(strtolower($email_arrau[1])=="bigcustomer.com"){
$toaddress = "bob@example.com";
}else{
$toaddress = "feedback@example.com";
}
使用implode()或者join()函数来实现与函数explode()相反的效果,这两个函数的效果是一致的。例如:
$new_email = implode('@', $email_array)
使用strtok()函数
与函数explode()每次都将一个字符串全部分割成若干小块不同,strtok()函数一次只从字符串中取出一些片段。对于一次从字符串中取出一个单词的处理来说,strtok()函数比explode()函数的效果更好。
strtok()函数的原型如下所示:
string strtok(string input, string separator);
使用substr()函数
函数substr()允许我们访问一个字符串给定起点和中带你的子字符串。
string substr(string string, int start[, int length]);
字符串的比较
字符串的排序:strcmp()、strcasecmp()和strnatcmp()
strcmp()函数原型如下所示:
int strcmp(string str1, string str2);

  • 函数strcasecmp()除了不区分大小写之外,其他和strcmp()一样。
  • 函数strnatcmp()及与之对应的不区分大小写的strnatcasecmp()将按照“自然排序”比较字符串。

使用strlen()函数测试字符串的长度
使用字符串函数匹配和替换子字符串
在字符串中查找字符串:strstr()、strchr()、strrchr()和stristr()
为了在一个字符串中查找另一个字符串,可以使用上面四个函数中的任意一个。
strstr()有两个变体。

  • 第一个变体是stristr(),它几乎和strstr()函数一样,其区别在于不区分字符大小写。
  • 第二个变体strtchr(),它也几乎和strstr()一样,但会从最后出现目标关键字的位置的前面返回被搜索的字符串。

查找子字符串的位置:strpos()、strrpos()
strpos()和strrpos()的操作和strstr()类似,但它不是返回一个子字符串,而是返回目标关键字子字符串在被搜索字符串中的位置。
strpos比strstr()运行的速度更快
strrpos()也几乎是一样的,但返回的是被搜索字符串中最后一次出现的目标关键字子字符串的位置。
替换子字符串:str_replace()、substr_replace()
进行替换操作最常用的字符串函数是str_replace()。它的函数原型如下所示:
mixed str_replace(mixed needle, mixed new_needle, mixed haystack[, int&count]);
函数substr_replace()则用来在给定位置中查找和替换字符串中特定的子字符串。
正则表达式:
PHP支持两种风格的正则表达式语法:POSIX和Perl.

  • * 表示这个模式可以被重复0次或更多次
  • + 表示这个模式可以被重复一次或更多次

子表达式
通常,将一个表达式分隔为几个字表达式是非常有用的。可以使用()来实现
(very )*large可匹配"large" "very large" "very very large"
子表达式计数
({})中表示指定内容允许重复的次数。
(very ){1, 3}
表示匹配"very" "very very" "very very very"
定义到字符串的开始或末尾

  • [a-z]模式将匹配任何包含小写字母字符的字符串。
  • ^用于正则表达式的开始
  • $用于正则表达式的末尾

分支
可以使用正则表达式中的一条竖线来表示一个选择。例如:
com|edu|net
参考资料:
PHP&MySQL.Web

运维网声明 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-358865-1-1.html 上篇帖子: PHP代码优化的42条建议 下篇帖子: Publishing.Ajax.And.Php.Building.Responsive.Web.Applications
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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