今天内容

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









匹配与以上特殊字符同名的普通字符,须要在前面增加/

<?php
$sub = "www.baidu.com"; $ptn = '/\w*\.\w*\.\w*/'; // 正則表達式,元数据,返回的数据
preg_match($ptn, $sub,$mats); echo "<pre>";
print_r($mats);
echo "</pre>"; ?>

//匹配ip

<?php
$str = "my ip is 192.168.10.1sdjlfajdf192.178.39.4la"; $ptn = '/\d+\.\d+\.\d+\.\d+/'; preg_match_all($ptn, $str,$mats); echo "<pre>";
print_r($mats);
echo "</pre>"; ?>

模式修正符,放在正則表達式的最后面





i,m,s,u,e

i :忽略大写和小写

m :视为多行

s :视为一行

u :贪婪模式,最大模式

e :替换的时候用的,能够用函数加工,用于匹配正則表達式中的第一个圆括号

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

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>"; ? >

模式修正符

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

e的使用

 

<?php
$str = "123 php"; $ptn = '/\d+\s(\w+)/e'; $rep = 'strtoupper($1)'; // preg_match_all($ptn, $str,$mats); $str2 = preg_replace($ptn, $rep, $str); echo "<pre>";
print_r($str2);
echo "</pre>"; ? >

向后引用

 <?php
$str = "123 php"; $ptn = '/(\d+)(\s)(\w+)/'; $rep = '$3$2$1'; // preg_match_all($ptn, $str,$mats); $str2 = preg_replace($ptn, $rep, $str); echo "<pre>";
print_r($str2);
echo "</pre>"; ?>

五个经常使用函数





1.字符串的匹配与替换

preg_match();

preg_match_all();

preg_grep();做搜索





2.字符串的替换

preg_replace();





3.字符串的切割

preg_split();









eval让字符串表达式可以运行





preg_grep实例,做搜索:

 

<?php
//比方代表文章
$arr = array(
"php html",
" linux redhat rhce",
"junzaivip test php",
);
//须要搜索的内容
$ptn = '/junzaivip/'; //返回搜索到的内容
$arr2 = preg_grep($ptn, $arr); echo "<pre>";
print_r($arr2);
echo "</pre>"; ? >

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打开计算器





时间的起源点:

 

<?php
echo time();
echo "<hr>";
echo date("Y-m-d H:i-s w t",0);
?>

时间转换为时间戳

 

 <?

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

计算当前时间的详细日期:

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

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

  <?php
//设置中国的时区为默认时区
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整除,此时它就是闰年

  

<?php
//设置中国的时区为默认时区
date_default_timezone_set("PRC");
$y = "1900/1/1";
$time = strtotime($y); echo date("L",$time); ?>

microtime() 微秒





 计算脚本的执行时间:

  

<?php
$stime = microtime(1);//注意这个位置必须用true,否者无法參与计算 sleep(1); $etime = microtime(1); echo $etime - $stime; ?>

实例:万年历





 万年历技术点

 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

PHP第九课 正則表達式在PHP中的使用的更多相关文章

  1. JAVA学习第六十五课 — 正則表達式

    正則表達式:主要应用于操作字符串.通过一些特定的符号来体现 举例: QQ号的校验 6~9位.0不得开头.必须是数字 String类中有matches方法 matches(String regex) 告 ...

  2. js中 正則表達式

    正則表達式使用具体解释 简单介绍 简单的说,正則表達式是一种能够用于模式匹配和替换的强有力的工具.其作用例如以下: 測试字符串的某个模式.比如,能够对一个输入字符串进行測试,看在该字符串是否存在一个电 ...

  3. iOS正則表達式(一)

    什么是正則表達式? 正則表達式是对字符串操作的一种逻辑公式. 作用? 在iOS开发中我们通常使用正則表達式来匹配给定的字符串是否符合我们的业务逻辑,比方说用户注冊帐号仅仅能是手机号或者邮箱等.我们还能 ...

  4. 使用正則表達式的格式化与高亮显示json字符串

    使用正則表達式的格式化与高亮显示json字符串 json字符串非常实用,有时候一些后台接口返回的信息是字符串格式的,可读性非常差,这个时候要是有个能够格式化并高亮显示json串的方法那就好多了,以下看 ...

  5. JavaScript使用正則表達式

    2.0 简单介绍 正則表達式是能够用来查找与给定模式匹配的文本的搜索模式.比如,在上一章中,我们在一个较长的字符串中查找子字符串Cookbook: var testValue = "This ...

  6. JavaScript正則表達式知识汇总

    Js 正則表達式知识汇总 正則表達式: 1.什么是RegExp?RegExp是正則表達式的缩写.RegExp 对象用于规定在文本中检索的内容. 2.定义RegExp:var +变量名=new RegE ...

  7. Python正則表達式

    Python正則表達式 正則表達式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本号起添加了re 模块,它提供 Perl 风格的正則表達式模式. r ...

  8. js正則表達式语法

    1. 正則表達式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之同样的 ...

  9. Java正則表達式入门

     众所周知,在程序开发中,难免会遇到须要匹配.查找.替换.推断字符串的情况发生,而这些情况有时又比較复杂,假设用纯编码方式解决,往往会浪费程序猿的时间及精力.因此,学习及使用正則表達式,便成了解决这一 ...

随机推荐

  1. Tire树总结(模板+例题)

    题目来自<算法竞赛设计指南> Tire树是一种可以快速查找字符串的数据结构 模板 #include<cstdio> #include<algorithm> #inc ...

  2. 单元测试Struts2的Action(包含源码)

    很久没有从头搭建Struts2的环境了.最近,认真实践了单元测试Struts2.Spring等Java项目. 今天特意写的是单元测试Struts2的Action,遇到了不少问题,果然是实践出真知啊. ...

  3. VUE:过渡&动画

    VUE:过渡&动画 vue动画的理解 1)操作css的 trasition 或 animation 2)vue会给目标元素添加/移除特定的class 3)过渡的相关类名 xxx-enter-a ...

  4. Linux配置nignx虚拟主机

    Nginx 是一个轻量级高性能的 Web 服务器, 并发处理能力强, 对资源消耗小, 无论是静态服务器还是小网站, Nginx 表现更加出色, 作为 Apache 的补充和替代使用率越来越高. 我在& ...

  5. MyBatis初始化

    1. 准备工作 为了看清楚MyBatis的整个初始化过程,先创建一个简单的Java项目,目录结构如下图所示: 1.1 Product 产品实体类 public class Product { priv ...

  6. ZOJ 2705

    这题,找找规律,可以发现一个斐波那契数列.按照斐波那契数列求和,知道, SUM=Fn+2-F1,于是,该长度为Fn+2的倍数.因为斐波那契数列不一定是从1开始的,而从2开始的每个数都是从1开始的倍数. ...

  7. Android-Universal-Image-Loader学习笔记(3)--内存缓存

    前面的两篇博客写了文件缓存.如今说说Android-Universal-Image-Loader的内存缓存.该内存缓存涉及到的类如图所看到的 这些类的继承关系例如以下图所看到的: 如同文件缓存一样,内 ...

  8. BZOJ 2005 [Noi2010]能量採集 (容斥)

    [Noi2010]能量採集 Time Limit: 10 Sec  Memory Limit: 552 MB Submit: 2324  Solved: 1387 [id=2005"> ...

  9. 30个php操作redis经常用法代码样例

    这篇文章主要介绍了30个php操作redis经常用法代码样例,本文事实上不止30个方法,能够操作string类型.list类型和set类型的数据,须要的朋友能够參考下 redis的操作非常多的,曾经看 ...

  10. android sudio 执行的中文是乱码解决方式

    1.File-->Setings-->查找file encodings 例如以下图 2.将 IDE Encoding .Project Encoding.Default encoding ...