当前位置 : 主页 > 网络编程 > PHP >

preg_match.php

来源:互联网 收集:自由互联 发布时间:2021-06-28
preg_match.php ';$b = unserialize($str); //反序列化为对象var_dump($b);echo '匹配 ';$p = '/[\w\.\-]+@[a-z0-9\-]+\.(com|cn)/';$str = "我的邮箱是Spark.eric@imooc.com";preg_match($p, $str, $match);print_r( $match);echo '匹配所有
preg_match.php
 ';
$b = unserialize($str); //反序列化为对象
var_dump($b);

echo '匹配
'; $p = '/[\w\.\-]+@[a-z0-9\-]+\.(com|cn)/'; $str = "我的邮箱是Spark.eric@imooc.com"; preg_match($p, $str, $match); print_r( $match); echo '匹配所有
'; $p = "|<[^>]+>(.*?) ]+>|i"; $str = "example: this is a test "; preg_match_all($p, $str, $matches); print_r($matches); echo '匹配所有
'; $p = "/(.*?)<\/td>\s*(.*?)<\/td>\s*<\/tr>/i"; $str = " Eric 25 John 26 "; preg_match_all($p, $str, $matches); print_r($matches); echo '替换
'; $patterns = array ('/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/', '/^\s*{(\w+)}\s*=/'); $replace = array ('\3/\4/\1\2', '$\1 =');//\3等效于$3,\4等效于$4,依次类推 echo preg_replace($patterns, $replace, '{startDate} = 1999-5-27'); //结果为:$startDate = 5/27/1999 echo '替换空字符
'; $str = 'one two'; $str = preg_replace('/\s+/', ' ', $str); echo $str; // 结果改变为'one two' echo '增加标签
'; $str = '主要有以下几个文件:index.php, style.css, common.js'; //将目标字符串$str中的文件名替换后增加em标签 $replacement = '/\w+\.\w+/i'; echo preg_replace($replacement,'$0',$str); echo '常用正则元素的测验'; $user = array( 'name' => 'spark1985', 'email' => 'spark@imooc.com', 'mobile' => '13312345678' ); //进行一般性验证 if(empty($user)){ die('用户信息不能为空'); } if(strlen($user['name'])<6){ die('用户长度最少少于6位'); } //用户名必须为字母、数字与下划线 if (!preg_match('/^\w+$/i',$user['name'])) { die('用户名不合法'); } //验证邮箱格式是否正确 if (!preg_match('/^[\w\.]+@\w+\.\w+$/i',$user['email'])) { die('邮箱不合法'); } //手机号必须为11位数字,且为1开头 if (!preg_match('/^1\d{10}$/i',$user['mobile'])) { die('手机号不合法'); } echo '用户信息验证成功'; /*异常错误的处理*/ try{ //可能出现异常的代码 //catch表示捕获,Exception是php已定义好的异常类; }catch(Exception $e){ /*多异常,方法 1、自己处理; 2、不处理,将其再次抛出; */ } //创建一个可抛出异常的函数 function checkNum($num){ if($num>1){ throw new Exception("异常提示-数字必须小于等于1"); } return true; } //在代码块中触发异常 try{ checkNum(2); //如果出现异常,那么下一段代码将不会执行 echo '如果能看到这里,说明你的数字小于1'; }catch(Exception $e){ //异常捕获 echo '捕获异常:'.$e->getMessage(); } /* PHP具有很多异常处理类,其中Exception是所有异常处理的基类。 Exception具有几个基本属性与方法,其中包括了: message 异常消息内容 code 异常代码 file 抛出异常的文件名 line 抛出异常在该文件的行数 其中常用的方法有: getTrace 获取异常追踪信息 getTraceAsString 获取异常追踪信息的字符串 getMessage 获取出错信息 如果必要的话,可以通过继承Exception类来建立自定义的异常处理类。 */ //自定义的异常类,继承了PHP的异常基类Exception class MyException extends Exception { function getInfo() { return '自定义错误信息'; } } try { //使用异常的函数应该位于 "try" 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。 throw new MyException('error');//这里规定如何触发异常。注意:每一个 "throw" 必须对应至少一个 "catch",当然可以对应多个"catch" } catch(Exception $e) {//"catch" 代码块会捕获异常,并创建一个包含异常信息的对象 echo $e->getInfo();//获取自定义的异常信息 echo $e->getMessage();//获取继承自基类的getMessage信息 } /* 在了解了异常处理的基本原理之后,我们可以通过try catch来捕获异常,我们将执行的代码放在try代码块中,一旦其中的代码抛出异常,就能在catch中捕获。 这里我们只是通过案例来了解try catch的机制以及异常捕获的方法,在实际应用中,不会轻易的抛出异常,只有在极端情况或者非常重要的情况下,才会抛出异常,抛出异常,可以保障程序的正确性与安全,避免导致不可预知的bug。 一般的异常处理流程代码为: */ try{ throw new Exception('wrong'); }catch(Exception $e){ echo 'Error:'.$e->getMessage().''; echo $e->getTraceAsString().''; } echo '异常处理,继续执行其他代码'; /* PHP异常处理之获取错误发生的所在行 在异常被捕获之后,我们可以通过异常处理对象获取其中的异常信息,前面我们已经了解捕获方式,以及获取基本的错误信息。 在实际应用中,我们通常会获取足够多的异常信息,然后写入到错误日志中。 通过我们需要将报错的文件名、行号、错误信息、异常追踪信息等记录到日志中,以便调试与修复问题。 */ try{ throw new Exception('wrong'); }catch(Exception $e){ $msg='Error'.$e->getMessage()."\n"; $msg.=$e->getTraceAsString()."\n"; $msg.='异常行号:'.$e->getLine()."\n"; $msg.='所在文件:'.$e->getFile()."\n"; //将异常信息记录到日志中 $filename='log/error.log'; $arr =explode('/',$filename); if(!is_dir($arr[0])){ mkdir($arr[0],0777,true); } if(!is_file($filename)){ fopen($filename,"w"); } file_put_contents($filename,$msg); @fclose($filename); } //PHP文件系统之读取文件内容 $filename='log/error.log'; //编写代码读取$filename的文件内容 //1 $fp=fopen($filename,'rb'); $contents = ''; while(!feof($fp)){ $contents .= fread($fp,4096);//一次性读取4096个字符 } fclose($fp); echo $contents; //2 //$content = file_get_contents('./test.txt'); //$content = file_get_contents('./test.txt', null, null, 100, 500); //判断文件的相关操作 /* file_exists($filename); file_put_contents($filename, 'test'); file_get_contents($filename); is_file($filename); is_writeable($filename); is_readable($filename); */ /* PHP文件系统之取得文件的修改时间 文件有很多元属性,包括:文件的所有者、创建时间、修改时间、最后的访问时间等。 fileowner:获得文件的所有者 filectime:获取文件的创建时间 filemtime:获取文件的修改时间 fileatime:获取文件的访问时间 其中最常用的是文件的修改时间,通过文件的修改时间,可以判断文件的时效性,经常用在静态文件或者缓存数据的更新。 */ echo '所有者:'.fileowner($filename).''; echo '创建时间:'.filectime($filename).''; echo '修改时间:'.filemtime($filename).''; echo '最后访问时间:'.date('Y-m-d H:i:s',fileatime($filename)).''; //给$mtime赋值为文件的修改时间 $mtime = time(); //通过计算时间差 来判断文件内容是否有效 if (time() - $mtime > 3600) { echo '缓存已过期'; } else { echo file_get_contents($filename); } /* 通过filesize函数可以取得文件的大小,文件大小是以字节数表示的。 $size = filesize($filename); */ function getSize($size,$format='kb'){ $p = 0; if($format == 'kb'){ $p = 1; }else if($format == 'mb'){ $p = 2; }else if($format == 'gb'){ $p = 3; } $size/=pow(1024,$p);//次方 return round($size,2); } $size = filesize($filename); $size = getsize($size,'kb'); echo '文件大小'.$size.'kb'; /* 存储 */ session_start(); //假设用户登录成功获得了以下用户数据 $userinfo = array( 'uid' => 10000, 'name' => 'spark', 'email' => 'spark@imooc.com', 'sex' => 'man', 'age' => '18' ); header("content-type:text/html; charset=utf-8"); /* 将用户信息保存到session中 */ $_SESSION['uid'] = $userinfo['uid']; $_SESSION['name'] = $userinfo['name']; $_SESSION['userinfo'] = $userinfo; //* 将用户数据保存到cookie中的一个简单方法 */ $secureKey = 'imooc'; //加密密钥 $str = serialize($userinfo); //将用户信息序列化 //用户信息加密前 $str = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), $str, MCRYPT_MODE_ECB)); //用户信息加密后 //将加密后的用户数据存储到cookie中 setcookie('userinfo', $str); //当需要使用时进行解密 $str = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), base64_decode($str), MCRYPT_MODE_ECB); $uinfo = unserialize($str); echo "解密后的用户信息:"; print_r($uinfo); ?>
网友评论