本节内容;
php常用正则表达式
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
匹配空白行的正则表达式:\n\s*\r
评注:可以用来删除空白行
匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
匹配首尾空白字符的正则表达式:^\s*|\s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
评注:表单验证时很实用
匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用
匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
评注:匹配形式如 0511-4405222 或 021-87888822
匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始
匹配中国邮政编码:[1-9]\d{5}(?!\d)
评注:中国邮政编码为6位数字
匹配身份证:\d{15}|\d{18}
评注:中国的身份证为15位或18位
匹配ip地址:\d+\.\d+\.\d+\.\d+
评注:提取ip地址时有用
匹配特定数字:
^[1-9]\d*$ //匹配正整数
^-[1-9]\d*$ //匹配负整数
^-?[1-9]\d*$ //匹配整数
^[1-9]\d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
评注:最基本也是最常用的一些表达式
相关阅读:
实例php正则表达式教程
php正则表达式学习实例
php正则表达式完全教程六
php正则表达式完全教程五
php正则表达式完全教程四
php正则表达式完全教程三
php正则表达式完全教程二
php正则表达式完全教程一
>>> 查看更多 php入门教程 <<<
本节内容:
php字符串处理
一,常用字符串函数
1、字符串的分割 explode()()
例子:
$str = "Hello world. It's a beautiful day.";
print_r (explode(" ",$str));
?>
2、字符串的连接
例子:
//定义字符串
$str1 = "Hello World!";
$str2 = "PHP !";
//连接上面两个字符串 中间用空格分隔
$str3 = $str1 . " " . $str2;
//输出连接后的字符串
echo $str3;
3、字符串的截取 substr() , mb_substr
例子:
$str ="login.com";
echo substr($str, 2); //gin.com
echo substr($str, 2,3); //gin
echo substr($str, -2); //om 负数从结尾开始取
?>
但是当你截取中文字符串的时候很容易出现乱码,因为一个汉字是两个字节,而一个英文字母是一个字节。
解决办法:
2,mb_substr(),使用方法和substr相同,不过要开启php.ini里面extension=php_mbstring.dll扩展。
例子:
echo mb_substr("int你好", 1,3,"UTF-8"); //nt你
?>
3. 字符串查找 strpos()
定义和用法
strpos() 函数返回字符串在另一个字符串中第一次出现的位置。
如果没有找到该字符串,则返回false。
语法
strpos(string,find,start)
参数 描述
string 必需 规定被搜索的字符串
find 必需 规定要查找的字符。
start 可选。规定开始搜索的位置
例子:
$string = '#11#22#33#44#55#66#77';
$find = '#55';
if(strpos($string,$find)===false){
echo '没有找到';
}else{ // www.
echo '找到';
}
echo strpos($string,$find);
?>
4,字符串替换 str_replace()
例子:
$replace_string = '你很坏,真的很坏';
$replace_string_b = '很坏';
$replace_string_ = str_replace($replace_string_b,'*',$replace_string,$i);
echo $replace_string_ ;
?>
指定位置替换 substr_replace
echo substr_replace("Hello world","php12",6); // Hello php12
?>
5,字符串转大小写函数
将字符串转换成小写
strtolower()(): 该函数将传入的字符串参数所有的字符都转换成小写,并以小定形式放回这个字符串.
例子:
$str = "i love YOU";
$str = strtolower($str);
echo $str;
?>
输出结果:
i love YOU
将字符转成大写
strtoupper()(): 该函数的作用同strtolower函数相反,是将传入的字符参数的字符全部转换成大写,并以大写的形式返回这个字符串.用法同strtolowe()一样。
将字符串首字符转换成大写
usfilst(): 该函数的作用是将字符串的第一个字符改成大写,该函数返回首字符大写的字符串。用法同strtolowe()一样。
将字符串每个单词的首字符转换成大写
ucwords()(): 该函数将传入的字符串的每个单词的首字符变成大写。
如"hello world",经过该函数处理后,将返回"Hello Word"。用法同strtolowe()一样。
>>> 查看更多 php入门教程 <<<
本节内容:
php抽象类与接口
什么是抽象类?
1. 如果一个类中,有一个方法是抽象的则这个类就是抽象类
2. 如果一个类是抽象类,则这个类必须要使用abstract修饰
3. 抽象类是一种特殊的类,就是因为一个类中有抽象方法,其他不变。也可以在抽象类中声明成员属性,常量,非抽象的方法。
4. 抽象类不能实例化对象(不能通过抽象类去创建一个抽象类的对象)
一、抽象方法没有方法体,不知道做什么的(没写功能)
二、对象中的方法和属性都要通过对象来访问,除常量和静态的变量和方法, 而抽象类又不能创建对象,抽象类中的成员都不能直接访问
例子:
/**
* php抽象类示例
* by www.
*/
abstract class Demo {
var $name;
var $age;
abstract function test();
abstract function fun();
function say(){
echo "gogogooggogo";
}
function run(){
}
}
class Hello extends Demo {
function test() {
echo "子类要完成的任务1";
}
function fun(){
echo "了类中另一个实现";
}
}
$h=new Hello;
$h->test();
2,接口
接口和抽象类是一样的作用
因为在PHP是单继承的, 如果使用抽象类,子类实现完抽象类就不能再去继承其它的类了。
如果即想实现一些规范, 又想继承一个其他类。就要使用接口
接口和抽象类的对比
1. 作用相同,都不能创建对象, 都需要子类去实现
2. 接口的声明和抽象类不一样
3. 接口被实现的方式不一样
4. 接口中的所有方法必须是抽象方法,只能声明抽象方法(不用使用abstract修饰)
5. 接口中的成员属性,只能声明常量,不能声明变量
6. 接口中的成员访问权限 都必须是public, 抽象类中最低的权限protected
例子:
/**
* php接口的例子
* by www.
*/
interface dome {
function test1();
function test2();
}
class One implements dome{
function test1(){
echo "wwwwwwwwwwwwwwww<br>";
}
function test2(){
echo "eeeeeeeeeeeeeeeee<br>";
}
}
class Two implements dome {
function test1(){
echo "66666666666666666<br>";
}
function test2(){
echo "88888888888888888<br>";
}
}
$a=new Two;
$a->test1();
$a->test2();
>>> 查看更多 php入门教程 <<<