$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 |