php正则模式匹配,php正则表达式模式匹配实例教程

$sub = "bbs.it-home.org";

$ptn = '/\w*\.\w*\.\w*/';

// 正则表达式,元数据,返回的数据

preg_match($ptn, $sub,$mats);

echo "";

print_r($mats);

echo "";

?>

//匹配ip

$str = "my ip is 192.168.10.1sdjlfajdf192.178.39.4la";

$ptn = '/\d+\.\d+\.\d+\.\d+/';

preg_match_all($ptn, $str,$mats);

echo "";

print_r($mats);

echo "";

?>复制代码

模式修正符,放在正则表达式的最后面

i,m,s,u,e

i :忽略大小写

m :视为多行

s :视为一行

u :贪婪模式,最大模式

e :替换的时候用的,可以用函数加工,用于匹配正则表达式中的第一个圆括号

$str = "Linux and php are lamp or linux is very much";

$ptn = '/linux/i';

preg_match_all($ptn, $str,$mats);

echo "";

print_r($mats);

echo "";

?>复制代码

m例子

m视为多行

$str = "Linux and php are lamp or \nlinux is very much";

$ptn = '/^linux/im';

preg_match_all($ptn, $str,$mats);

echo "";

print_r($mats);

echo "";

?>复制代码

模式修正符

$str = "Linux and php are lamp or \nlinux is very much";

$ptn = '/.*/s';

preg_match_all($ptn, $str,$mats);

echo "";

print_r($mats);

echo "";

?>复制代码

e的使用

$str = "123 php";

$ptn = '/\d+\s(\w+)/e';

$rep = 'strtoupper($1)';

// preg_match_all($ptn, $str,$mats);

$str2 = preg_replace($ptn, $rep, $str);

echo "";

print_r($str2);

echo "";

?>复制代码

向后引用

$str = "123 php";

$ptn = '/(\d+)(\s)(\w+)/';

$rep = '$3$2$1';

// preg_match_all($ptn, $str,$mats);

$str2 = preg_replace($ptn, $rep, $str);

echo "";

print_r($str2);

echo "";

?>复制代码

五个常用函数

1.字符串的匹配与替换

preg_match();

preg_match_all();

preg_grep();做搜索

2.字符串的替换

preg_replace();

3.字符串的分割

preg_split();

eval让字符串表达式能够执行

preg_grep实例,做搜索:

//比如代表文章

$arr = array(

"php html",

" linux redhat rhce",

"junzaivip test php",

);

//需要搜索的内容

$ptn = '/junzaivip/';

//返回搜索到的内容

$arr2 = preg_grep($ptn, $arr);

echo "";

print_r($arr2);

echo "";

?>复制代码

4.数学函数

1.max();

2.min();

注意:1.多个数字,2,多个数字组成的数组

echo max(3,45,6,7);

echo "

";

echo max(array(4,6,8,9));

?>复制代码

5.日期函数

1.time();

2.date(); //把时间戳转换为日期

3.strtotime();//把日期转换为时间戳

4.microtime();

//calc打开计算器

时间的起源点:

echo time();

echo "";

echo date("Y-m-d H:i-s w t",0);

?>复制代码

时间转换为时间戳

cho strtotime("2014-12-12");

?>复制代码

计算当前时间的具体日期:

echo date("Y-m-d H:i:s",time()+8*3600);

?>复制代码

通过修改时区来查找当前日期:

//设置中国的时区为默认时区

date_default_timezone_set("PRC");

echo date("Y-m-d H:i:s",time());

?>复制代码

注意:如果每个改比较麻烦的话,就直接去修改php的配置文件php.ini文件,直接修改里面的date 找见timezone修改为PRC

date参数:

Y 2014 年全

y 14年只有后两位

m 03月份有前导0

n 3 月份没有前导0

d 05 日期有前导0

j 5 日期没有前导0

H 24小时

h 12小时

i 05分钟

s 05秒

w 0-6 周日到周六

t 31一月多少天

L 是否为闰年

//怎样区分平润年

能够被4整除,同时如果能被100整除的话,那就必须被400整除,此时它就是闰年

//设置中国的时区为默认时区

date_default_timezone_set("PRC");

$y = "1900/1/1";

$time = strtotime($y);

echo date("L",$time);

?>复制代码

microtime() 微秒

计算脚本的运行时间:

$stime = microtime(1);//注意这个位置必须用true,否者无法参与计算

sleep(1);

$etime = microtime(1);

echo $etime - $stime;

?>复制代码

实例:万年历

万年历技术点

1.几年几月几日

2.周日到周六

3.1号是星期几

4.这个月有多少天

5.下一年和上一年

6.下一月和上一月

万年历代码:

//修改字符编码

//header("content-type:text/html;charset=utf-8");

date_default_timezone_set("PRC");

//获取当前年

$year = $_GET['y']?$_GET['y']:date('Y');

//获取当前月

$month = $_GET['m']?$_GET['m']:date('m');

//获取获取当前月有多少天

$days = date('t',strtotime("{$year}-{$month}-1"));//里面必须用双引号

//当前一号是周几

$weeks = date('w',strtotime("{$year}-{$month}-1"));

//所有有内容居中

echo "";

//输出表头

echo "

{$year}年{$month}月";

//输出日期表格

echo "";

//输出第一行

echo "

";

//表头单元格由th来创建

echo "日";

echo "一";

echo "二";

echo "三";

echo "四";

echo "五";

echo "六";

echo "";

//开始铺表格

for($i = 1 - $weeks;$i <= $days;){

echo "

";

for ($j=0; $j < 7; $j++) {

if ($i > $days || $i < 1) {

echo "";

} else{

echo "{$i}";

}

$i++;

}

echo "";

}

echo "";

//实现一下上一年和上一月

if($month == 1){

$prevyear = $year - 1;

$prevmonth = 12;

} else{

$prevyear = $year;

$prevmonth = $month -1;

}

if($month == 12){

$nextyear = $year + 1;

$nextmonth = 1;

} else{

$nextyear = $year;

$nextmonth = $month + 1;

}

//输出上一月和下一月的按钮

echo "

echo "";

?>复制代码

PHP的错误处理

1.关闭和开启报错

2.错误报告级别

3.错误报告地方

1)、关闭和开启报错

E_ALL

E_ERROR //严重错误

E_WARNING //警告错误

E_PARSE//语法错误

E_NOTICE //提示错误

2)、关闭错误

display_error = off

报什么级别的错:

error_reporting = E_ALL

error_reporting = E_ALL & ~E_NOTICE //报所有错误,但是除了提示错误

3)、报错地方:

//是否从浏览器报错

display_error = off

//是否把错误输出到一个自定义日志文件中

log_errors = on

error_log = d:\phplogs\php.log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值