php将连续回车(换行)、空格正则替换为1个
作者:admin 日期:2018-05-24
连续回车:
PHP代码
- $str = "开始
- 内容
- 结束";
- $str = preg_replace("/\s+\r/is", "\n", $str);//回车符是\r
- $str = preg_replace("/\s+\r\n/is", "\n", $str);//回车符是\r\n
- $str = preg_replace("/\s+\n/is", "\n", $str);//回车符是\n
- $str = str_replace("\n",'<br />',$str);
连续空格:
必须是两个或者两个以上才去掉:
PHP代码
- $str = "a b d\nc";
- echo preg_replace( '#\s{2,}#', '', $str ); // output abdc
去掉所有空白字符:
PHP代码
- preg_replace( '#\s#', '', $str );
多个连续空白字符替换成一个空格:
PHP代码
- preg_replace( '#\s+#', ' ', $str );
php正则判断字符串是否含有中文
作者:admin 日期:2018-05-24
php如何在某个时间上加一天?一小时? 时间加减
作者:admin 日期:2018-05-23
PHP代码
- <?php
- date_default_timezone_set('PRC'); //默认时区
- echo "今天:",date("Y-m-d",time()),"<br>";
- echo "今天:",date("Y-m-d",strtotime("18 june 2008")),"<br>";
- echo "昨天:",date("Y-m-d",strtotime("-1 day")),"<br>";
- echo "明天:",date("Y-m-d",strtotime("+1 day")),"<br>";
- echo "一周后:",date("Y-m-d",strtotime("+1 week")),"<br>";
- echo "一周零两天四小时两秒后:",date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds")), "<br>";
- echo "下个星期四:",date("Y-m-d",strtotime("next Thursday")),"<br>";
- echo "上个周一:".date("Y-m-d",strtotime("last Monday"))."<br>";
- echo "一个月前:".date("Y-m-d",strtotime("last month"))."<br>";
- echo "一个月后:".date("Y-m-d",strtotime("+1 month"))."<br>";
- echo "十年后:".date("Y-m-d",strtotime("+10 year"))."<br>";
- ?>
PHP代码
- //strtotime可以接受第二个参数,类型timestamp,为指定日期
- echo date('Y-m-d', strtotime ("+1 day", strtotime('2011-11-01'))),"\n";
PHP代码
- <?php
- echo "今天:",date('Y-m-d H:i:s'),"<br>";//输出当前时间
- echo "明天:",date('Y-m-d H:i:s',strtotime('+1 day'));//输出明天时间
- //这里+1 day 可以修改参数1为任何想需要的数 day也可以改成year(年),month(月),hour(小时),minute(分),second(秒)
- //如:
- date('Y-m-d H:i:s',strtotime("+1 day +1 hour +1 minute");
- ?>
注:该方法之针对1970年以后试用,也就是时间戳的适用范围。
PHP代码
- <?php
- //下面这些代码是一些常用的日期处理函数了,可以两个时间的日期加减,两日期之差,日期转换时间截等。
- echo date('Y-m-d',strtotime('+1 d',strtotime('2009-07-08')));//日期天数相加函数
- echo date("Y-m-d",'1246982400');
- echo '<br>';
- echo date("Y-m-d",'1279123200');
- die();
- $d = "2009-07-08 10:19:00";
- echo date("Y-m-d",strtotime("$d +1 day")); //日期天数相加函数
- function dateToTime($d){//把日期转换成时间堆截
- $year=((int)substr("$d",0,4));//取得年份
- $month=((int)substr("$d",5,2));//取得月份
- $day=((int)substr("$d",8,2));//取得几号
- return mktime(0,0,0,$month,$day,$year);
- }
- $Date_1="2009-07-08";
- echo $Date_1+1;
- $Date_2="2009-06-08";
- $Date_List_a1=explode("-",$Date_1);
- $Date_List_a2=explode("-",$Date_2);
- $d1=mktime(0,0,0,$Date_List_a1[1],$Date_List_a1[2],$Date_List_a1[0]);
- $d2=mktime(0,0,0,$Date_List_a2[1],$Date_List_a2[2],$Date_List_a2[0]);
- $Days=round(($d1-$d2)/3600/24);
- echo "两日期之前相差有$Days 天";
- ?>
php高效遍历目录文件及子目录
作者:admin 日期:2018-05-21
PHP代码
- <?php
- //递归方式
- function read_dir($dir){
- $files=array();
- $dir_list=scandir($dir);
- foreach($dir_list as $file){
- if($file!='..' && $file!='.'){
- if(is_dir($dir.'/'.$file)){
- $files[]=read_dir($dir.'/'.$file);
- }else{
- $files[]=$file;
- }
- }
- }
- return $files;
- }
- //队列方式
- function read_dir_queue($dir){
- $files=array();
- $queue=array($dir);
- while($data=each($queue)){
- $path=$data['value'];
- if(is_dir($path) && $handle=opendir($path)){
- while($file=readdir($handle)){
- if($file=='.'||$file=='..') continue;
- $files[] = $real_path=$path.'/'.$file;
- if (is_dir($real_path)) $queue[] = $real_path;
- }
- }
- closedir($handle);
- }
- return $files;
- }
- print_r(read_dir_queue('D:/webroot/suanfa/dir'));exit;
如果目录很多,推荐队列方式,递归方式会慢,慢的原因:递归的实现是通过调用函数本身,函数调用的时候,每次调用时要做地址保存,参数传递等
广告位