您的位置:首页 > 编程语言 > PHP开发

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

2016-03-03 00:00 573 查看
摘要: 读《PHP和MySQL Web开发》,一些自己感觉基础、重要但容易忘的摘记。本文对应《PHP和MySQL Web开发》第4章。

很多时候,搜索 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() :用正则表达式分割字符串。

注意:对于同样的功能,正则表达式函数运行效率要低于字符串函数。如果程序足够简单,那么就用字符串表达式。但是,对于可以通过单个正则表达式执行的任务来说,如果使用多个字符串函数,通常是不好滴。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PHP 字符串 正则