博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP第九课 正則表達式在PHP中的使用
阅读量:6690 次
发布时间:2019-06-25

本文共 3676 字,大约阅读时间需要 12 分钟。

今天内容
1.正則表達式
2.数学函数
3.日期函数
4.错误处理
正則表達式:
1.模式修正符
2.五个经常使用函数
另外一个正則表達式的站点:http://www.jb51.net/tools/zhengze.html
正則表達式
1.原子
2.元子符
3.模式修正符
正則表達式函数
1.preg_match();
2.preg_match_all();
3.preg_grep();
4.preg_replace();
5.preg_split();
原子:
.:代表随意一个字符
\w: 字母 数字 下划线
元子符:
*:修饰前面的,0,1,多个.代表随意多个字符,直到结束
+:一个.多个
?:0个一个前面的原子
|:代表或
^:一开什么开头
$:以什么结尾
\b:词边缘
\B:非词边缘
单个字母 数字
a-z A-Z 0-9 代表随意一个字符
[]代表里面的随意一个字符
[^abc]他里面除了abc的随意一个字符
()代表一个单元
\d 随意一个数字
\D 随意一个非数字
\w:代表随意一个字母数字下划线
\W:出了字母.数字.下划线意外随意一个字符
\s:空白字符
\S:除了空白字符以外的随意一个字符
{2}:2个原子
{2,}:2个以上的原子
{2,5}: 2-5个前面的原子
模式修正符:
/正則表達式/U
匹配与以上特殊字符同名的普通字符,须要在前面增加/
"; print_r($mats); echo ""; ?>
//匹配ip
"; print_r($mats); echo ""; ?>
模式修正符,放在正則表達式的最后面
i,m,s,u,e
i :忽略大写和小写
m :视为多行
s :视为一行
u :贪婪模式,最大模式
e :替换的时候用的,能够用函数加工,用于匹配正則表達式中的第一个圆括号
"; print_r($mats); echo ""; ?>
 m样例
 m视为多行

php $str = "Linux and php are lamp or \nlinux is very much"; $ptn = '/^linux/im'; preg_match_all($ptn, $str,$mats); echo "<pre>"; print_r($mats); echo "</pre>"; ?

>

模式修正符
"; print_r($mats); echo ""; ?

>

 e的使用
 
"; print_r($str2); echo ""; ?

>

向后引用
"; print_r($str2); echo ""; ?>
 
五个经常使用函数
1.字符串的匹配与替换
preg_match();
preg_match_all();
preg_grep();做搜索
2.字符串的替换
preg_replace();
3.字符串的切割
preg_split();
eval让字符串表达式可以运行
preg_grep实例,做搜索:
 
"; print_r($arr2); echo ""; ?

>

 4.数学函数
  1.max();
  2.min();
  注意:1.多个数字,2,多个数字组成的数组
   

php echo max(3,45,6,7); echo "<br>"; echo max(array(4,6,8,9)); ?

>

5.日期函数
1.time();
2.date(); //把时间戳转换为日期
3.strtotime();//把日期转换为时间戳
4.microtime();
//calc打开计算器
时间的起源点:
 
"; echo date("Y-m-d H:i-s w t",0); ?>
 时间转换为时间戳
 

php echo strtotime("2014-12-12"); ?>

 计算当前时间的详细日期:
 通过改动时区来查找当前日期:

>

 注意:假设每一个改比較麻烦的话,就直接去改动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整除,此时它就是闰年
  
 microtime() 微秒
 计算脚本的执行时间:
  
 实例:万年历
 万年历技术点
 1.几年几月几日
 2.周日到周六
 3.1号是星期几
 4.这个月有多少天
 5.下一年和上一年
 6.下一月和上一月
 万年历代码:
  

php //改动字符编码 //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 "<center>"; //输出表头 echo "<h2>{$year}年{$month}月</h2>"; //输出日期表格 echo "<table width='700px' border='1px'>"; //输出第一行 echo "<tr>"; //表头单元格由th来创建 echo "<th>日</th>"; echo "<th>一</th>"; echo "<th>二</th>"; echo "<th>三</th>"; echo "<th>四</th>"; echo "<th>五</th>"; echo "<th>六</th>"; echo "</tr>"; //開始铺表格 for($i = 1 - $weeks;$i <= $days;){ echo "<tr>"; for ($j=0; $j < 7; $j++) { if ($i > $days || $i < 1) { echo "<td> </td>"; } else{ echo "<td>{$i}</td>"; } $i++; } echo "</tr>"; } echo "</table>"; //实现一下上一年和上一月 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; } //输出上一月和下一月的button echo "<h2><a href = 'index.php?y={$prevyear}&m={$prevmonth}'>上一月</a>|<a href='index.php?

y={$nextyear}&m={$nextmonth}'>下一月</a></h2>"; echo "</center>"; ?

>

PHP的错误处理
1.关闭和开启报错
2.错误报告级别
3.错误报告地方
关闭和开启报错
E_ALL
E_ERROR //严重错误
E_WARNING  //警告错误
E_PARSE    //语法错误
E_NOTICE //提示错误
关闭错误
display_error = off
报什么级别的错:
error_reporting = E_ALL
error_reporting = E_ALL & ~E_NOTICE //报全部错误,可是除了提示错误
报错地方:
//是否从浏览器报错
display_error = off
//是否把错误输出到一个自己定义日志文件里
log_errors = on
error_log = d:\phplogs\php.log
转载请注明出处: http://blog.csdn.net/junzaivip
你可能感兴趣的文章
【ZeroClipboard is not defined】的解决方法
查看>>
【题解】Matrix BZOJ 4128 矩阵求逆 离散对数 大步小步算法
查看>>
iOS 一个ViewController上显示2个tableView的方法
查看>>
VSCode插件整理
查看>>
【六】tf和cgi进行联合试验,完成日志服务器
查看>>
面试题解(2):loop相关
查看>>
《当当网系统分级与海量信息动态发布实践》读后感
查看>>
完整的学习C++的读书路线图
查看>>
Android获取屏幕宽度、高度的4种方法
查看>>
Go学习笔记-使用MySQL数据库
查看>>
python asyncio异步代理池
查看>>
httpclient post请求实例(自己写的)
查看>>
记一次log4j日志文件输出错误的解决
查看>>
什么是PHP Guzzle?
查看>>
rabbitmq 不发送ack消息如何处理: RabbitMQ 消息确认以及消息消费方处理消息时候抛出了异常以...
查看>>
Bluefish
查看>>
Step by step guide to set up master and slave machines(转)
查看>>
色彩学基础知识(转)
查看>>
如何对 GIT 分支进行规划? (转)
查看>>
Oracle exp,imp
查看>>