文档章节

PHP学习笔记4:字符串与正则

slyso
 slyso
发布于 2015/10/19 18:26
字数 1204
阅读 70
收藏 0
很多时候,搜索 PHP中文文档,很多说明和例子,比书上讲的透彻易懂。

1、发用邮件
1)mail函数,为了正常使用该函数,必须将PHP设置指向邮件发送程序
2)可使用封装SMTP协议的邮件类
3)推荐Mail类

2、isset() 等函数来判断用户提交的表单域是否为空

3、字符串的整理
1)trim()  去除字符串两边多余空格
左右是ltrim() , rtrim() 还有一个别名chop()
2)使用HTML格式化
string nl2br ( string $string [, bool $is_xhtml = true ] )
用 <br /> 替换字符串中的换行符
3)其他:格式化输出,以及转换大小写的函数

4、格式化,转义,以便准出
1)addslashed()  转义字符,然后 stripslashes() 移除这些转义符,恢复
2)PHP的 magic_quotes_gpc 配置参数,打开后,会自动转义输入的字符,显示时自动恢复。
gpc :GET、POST、cookie的缩写
get_magic_quotes_gpc()函数判断系统该指令是否已启用。

5、字符串的连接和分割
1) explode()  根据一个分隔符,将字符串分割为小块,然后返回一个数组。然后通过可选的limit来限制分成字符串小块的数量。
2)imlpode() 和 join() 函数实现与explode() 相反的效果。
3)strtok(),分割,每次从字符串出取出一个片段,输入的字符串会根据分隔符字符串中的每个字符来进行分割。

strtok() 将字符串 str 分割为若干子字符串,每个子字符串以 token 中的字符分割。这也就意味着,如果有个字符串是 "This is an example string",你可以使用空格字符将这句话分割成独立的单词。 
<?php
$string = "This is\tan example\nstring";
/* 使用制表符和换行符作为分界符 */
$tok = strtok($string, " \n\t");
while ($tok !== false) {
    echo "Word=$tok<br />";
    $tok = strtok(" \n\t");
}
?> 

4)substr() 截取字符串的一部分,指定起点和重点。

6、字符串的比较
1)strcmp() 区分大小写,strcasecmp()不区分大小写 :这两个函数是字典排序,比如会认为2 大于 12,因为字典顺序2 要大于12;
2)strnatcmp() 和不区分大小写的strnatcasecmp()  这是按照自然排序,就是按照“人们习惯的顺序”进行排序。
3) strlen()函数测试字符串长度
应用:如果一个国家的代码没有二级域名,只有一个字母的服务器名称,和一个字母的电子邮件地址,那么email的最小长度是6个字符。
比如, a@a.to .

7、字符串匹配和替换
1)在字符串中查找字符串
strstr()(strchr()和strstr完全一样):区分字母大小写,返回目标字符串第一次出现的位置直到最后
stristr() 和上边一样,就是不区分字符大小写。
strrchr() 也几乎和strstr 一样,但是会返回最后出现目标关键字的位置开始到最后的字符喜欢。
2)如果只是想判断目标关键字是否存在于字符串中,用strpos() 会快很多,性能好很多。
strpos() 返回目标关键字字符串在被搜索字符串中的位置。(应该是第一次出现的位置)
strrpos() 返回最后一次出现的位置。
注意
如果目标字符串不在字符串中,strpos()和 strrpos()都将返回 false,这又会带来新问题。因为false 在一个如PHP 这样的弱类型语言中等于0。
可以使用运算符"==="来测试返回值。
比如:
$result = strpos($test,"H");
if ($result === false)
{
echo "Not found";
}
else
{
echo "Found at position ".$result ;
}

8、替换子字符串
str_replace() : 替换字符串
substr_replace() :指定的位置开始进行替换

9、正则表达式
PHP 支持两种风格的正则表达式语法: POSIX 和 Perl
注意:POSIX 正则表达式更容易掌握,但是它们不是二进制安全的。

和python的正则表达式语法差不错,不阐述,用得多了就熟悉了
1)几个函数,ereg() 返回一个数组,eregi() 除了不区分大小写,其他和ereg() 一样。
2)替换 ereg_replace() ,eregi_replace()  不区分大小写。
3)split() :用正则表达式分割字符串。
注意:对于同样的功能,正则表达式函数运行效率要低于字符串函数。如果程序足够简单,那么就用字符串表达式。但是,对于可以通过单个正则表达式执行的任务来说,如果使用多个字符串函数,通常是不好滴。

© 著作权归作者所有

共有 人打赏支持
slyso
粉丝 24
博文 28
码字总数 52229
作品 0
美国
个人站长
私信 提问
读《PHP和MySQL Web开发》

【第一部分】PHP基础与入门 1、PHP学习笔记1:基础知识快速浏览 http://my.oschina.net/bluefly/blog/472673 2、PHP学习笔记2:文件 http://my.oschina.net/bluefly/blog/477601 3、PHP学习笔...

slyso
2015/07/14
0
0
python re 模块学习笔记

一.常用方法 re.compile(pattern,flags=0) 编译正则表达式,返回regexobject对象,然后可以通过regexobject对象调用match()和search()方法. 可以实现正则代码的重用. re.serch(pattern,string...

Travler
2016/10/14
7
0
慕课网《PHP性能优化初探》学习笔记

//以下内容为慕课网《PHP性能优化初探》笔记整理 1:什么情况下遇到性能问题 语法使用不恰当 用PHP做了不擅长的问题 连接的服务不给力 PHP自身的短板 2:PHP的性能在项目所占比例约占35% 3:...

雨醉风尘
2016/12/06
12
0
【计算机本科补全计划】Java学习笔记(十) Java 正则表达式

正文之前 最近变故颇多,道心已破,诸位道友多多见谅。正在重铸道基,以期大道可成,从此逍遥万代。故Java之事,后续时断时续,敬请见谅! (郑重声明:本文非原创,只是笔记,取自菜鸟编程!...

HustWolf
2017/12/10
0
0
正则表达式-笔记

正则表达式的一般技巧 正则表达式如何部分替换匹配到的字符串 查找文本并替换其中一部分内容,另一部分保持不变 例子: 有如下文本,我想把“第xx章”改成“第xx节”,要求中间的数字不被替换...

BjarneCpp
01/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kubernetes里的secret最基本的用法

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令...

JerryWang_SAP
昨天
1
0
可重入锁和非可重入锁

广义上的可重入锁指的是可重复可递归调用的锁,在外层使用锁之后,在内层仍然可以使用,并且不发生死锁(前提得是同一个对象或者class),这样的锁就叫做可重入锁。 可重入锁: ReentrantLoc...

狼王黄师傅
昨天
1
0
2018-11-20学习笔记

1. python数据类型: 给变量赋值什么样的值,变量就是什么样的类型 给变量赋值整数,变量就是整数类型 给变量赋值字符串,变量就是字符串类型 123 和“123”一样吗? 在python中 单引号 与双...

laoba
昨天
1
0
使用 React 和 Vue 创建相同的应用,他们有什么差异?

在工作中应用 Vue 之后,我对它有了相当深刻的理解。 不过,俗话说「外国的月亮比较圆」,我好奇「外国的」 React 是怎么样的。 我阅读了 React 文档并观看了一些教程视频,虽然它们很棒,但...

阿K1225
昨天
2
0
2天闭门培训|以太坊智能合约从入门到实战(北京)

2天培训 16个课时 探寻技术原理,精通以太坊智能合约开发 以太坊智能合约是现在应用的最广泛的区块链应用开发方式,HiBlock区块链社区针对以太坊智能合约的学习特别推出2天闭门研修班,通过2...

HiBlock
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部