-
PHP随机获取国内IP地址的方法
?php//随机IP地址//$randip=rand(1,254)...rand(1,254)...rand(1,254)...rand(1,254);//echo$randip;//随机国内IP地址$iprand=array(array(607649792,608174079),/*36.56.0.0-36.63.255.255*/array(1038614528,1039007743),/*61.232.0.0-61.237.255.255*/array(1783627776,1784676351),/*106.80.0.0-106.95.255.255*/array(2035023872,2035154943),/*121.76.0.0-121.77.255.255*/array(2078801920,2079064063),/*123.232.0.0-123.235.255.255*/array(-1950089216,-1948778497),/*139.196.0.0-139.215.255.255*/array(-142553907…
-
PHP中将中文转码为ASCII码值换为&#XXXX的形式
?phpfunctioncode($c,$prefix=#){$len=strlen($c);$a=0;while($a$len){$ud=0;if(ord($c{$a})=0ord($c{$a})=127){$ud=ord($c{$a});$a+=1;}elseif(ord($c{$a})=192ord($c{$a})=223){$ud=(ord($c{$a})-192)*64+(ord($c{$a+1})-128);$a+=2;}elseif(ord($c{$a})=224ord($c{$a})=239){$ud=(ord($c{$a})-224)*4096+(ord($c{$a+1})-128)*64+(ord($c{$a+2})-128);$a+=3;}elseif(ord($c{$a})=240ord($c{$a})=247){$ud=(ord($c{$a})-240)*262144+(ord($c{$a+1})-128)*4096+(ord($c{$a+2})-128)*64+(ord($c{$a+3})-128);$a+=4;}elseif(ord($c{$a})=248…
-
PHP判断访问者手机端还是电脑端的函数
?phpfunctionMobile(){if(isset($_SERVER[HTTP_USER_AGENT])){$client=array(mobile,android,iPhone,iPod,ios,wap);if(preg_match(/(.implode(|,$client).)/i,strtolower($_SERVER[HTTP_USER_AGENT]))){returntrue;}}returnfalse;}if(Mobile()){echo手机端;}else{echo电脑端;}? …
-
PHP中检查数组是否存在元素的方法
PHP数组是否存在元素的判断方法是什么? 方法1:使用 === 检查数组是否为空 //检查数组是否为空$arr=array(1,2,3);if($arr===[]){echo数组中不存在元素;}else{echo数组中存在元素;} 方法2:使用count() 检查数组是否为空 //检查数组是否为空$arr=array(1,2,3);if(count($arr)){echo数组中存在元素;}else{echo数组中不存在元素;} 方法3:使用sizeof() 检查数组是否为空 //检查数组是否为空$arr=array(1,2,3);if(sizeof($a…
-
PHP中使用正则表达式来检测字符中是否含有大写字母
使用preg_match()函数配合正则表达式来检测是否含有大写字母 preg_match 函数用于执行一个正则表达式pattern匹配,会返回 pattern 的匹配次数(0或1)。0代表没有匹配,1代表有匹配。 用到的正则为:/[A-Z]/,用于查找大写字母 ?phpfunctionis_bigstr($str){if(preg_match(/[A-Z]/,$str)){echo有大写字母!br;}else{echo没有大写字母!br;}}is_bigstr(hello);is_bigstr(Hello);? …
-
PHP怎么获取数组中的某个值
php可以获取数组某一项的值 方法1:使用“$数组名[下标]”语句获取“$数组名[下标]”可以访问数组中的指定下标的一个元素。 ?php$arr=array(香蕉,苹果,梨子,橙子,橘子,榴莲);var_dump($arr);echo数组下标为0的一个元素:.$arr[0].br;echo数组下标为2的一个元素:.$arr[2].br;echo数组下标为3的一个元素:.$arr[3].br;? 方法2:使用array_shift()函数获取 ?php$arr=array(香蕉,苹果,梨子,橙子,橘子,榴莲);var_dum…
-
PHP数组去重的方法
?php$arr=array(1,1,2,3,3,3,4,4,5,6,6,7,8,8,9,9,9);$arr=array_unique($arr);//去重$arr=array_values($arr);//排序print_r($arr);//输出去重后的数组? …
-
PHP从数组中随机获取其中的一个数值
?php$img_num=array(6,8,10,15,16,17,19,20,21,24,25,30);//一组数组$fileath=$img_num[array_rand($img_num)];//随机获取该数组中一个值echo$fileath;? …
-
PHP在指定范围批量生成N个不重复的随机数
?php/**arrayunique_rand(int$min,int$max,int$num)*生成一定数量的不重复随机数,指定的范围内整数的数量必须*比要生成的随机数数量大*$min和$max:指定随机数的范围*$num:指定生成数量*/functionunique_rand($min,$max,$num){$count=0;$return=array();while($count$num){$return[]=mt_rand($min,$max);$return=array_flip(array_flip($return));$count=count($return);}//打乱数组,重新赋予数组新的下标shuffle($return);return$return;}$arr=unique_rand(1,10,5…
-
PHP遍历数组效率最高的几种方法
PHP中遍历数组有三种常用的方法: 一、使用for语句循环遍历数组; 二、使用foreach语句遍历数组; 三、联合使用list()、each()和while循环遍历数组。 这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始就引入了foreach结构,是PHP中专门为遍历数组而设计的语句,推荐大家使用。先分别介绍这几种方法。 一、使用for语句循环遍历数组 值得大家注意的是使用for语句循环遍历数…
-
PHP获取指定月份的起止时间戳
?php/***获取指定月份的时间戳*@param$dateY-m*/functionget_month_begin_end($date){//$date=2018-11;$data[begin_time]=strtotime($date);//指定月份月初时间戳$data[end_time]=mktime(23,59,59,date(m,strtotime($date))+1,00);//指定月份月末时间戳return$data;}? …
-
PHP获取指定年份的每个月的起始时间
?php/***@paramyear年份*/functiongetMonthByDate($year){//$year=2019;$yeararr=[];$month=[];for($i=1;$i=12;$i++){$yeararr[$i]=$year.-.$i;}foreach($yeararras$key=$value){$timestamp=strtotime($value);$start_time=date(Y-m-100:00:00,$timestamp);$mdays=date(t,$timestamp);$end_time=date(Y-m-.$mdays.23:59:59,$timestamp);$month[$key][start_time]=strtotime($start_time);$month[$key][end_time]=strtotime($end_time);}return$month;}? …
-
PHP根据指定日期获取所在月的起始时间和结束时间
?php/***@paramdate日期*/functionget_monthinfo_by_date($date){$ret=array();$timestamp=strtotime($date);$mdays=date(t,$timestamp);returnarray(month_start_day=date(Y-m-1,$timestamp),month_end_day=date(Y-m-.$mdays,$timestamp));}? …
-
PHP获取指定日期之间的各个月
?php/***@paramsdate开始日期*@paramedate结束日期*/functionget_months($sdate,$edate){$range_arr=array();do{$monthinfo=get_monthinfo_by_date($sdate);$end_day=$monthinfo[month_end_day];$start=substr_date($monthinfo[month_start_day]);$end=substr_date($monthinfo[month_end_day]);$range={$start}~{$end};$range_arr[]=$range;$sdate=date(Y-m-d,strtotime($sdate.+1month));}while($end_day$edate);return$range_arr;}/***截取日期中的月份和日*@paramstring$date*@returnstring$date*/functionsubstr_da…
-
PHP获取指定日期之间的各个周
?php/***@paramsdate开始日期*@paramedate结束日期*/functionget_weeks($sdate,$edate){$range_arr=array();//检查日期有效性check_date(array($sdate,$edate));//计算各个周的起始时间do{$weekinfo=get_weekinfo_by_date($sdate);$end_day=$weekinfo[week_end_day];$start=substr_date($weekinfo[week_start_day]);$end=substr_date($weekinfo[week_end_day]);$range={$start}~{$end};$range_arr[]=$range;$sdate=date(Y-m-d,strtotime($sdate)+7*86400);}while($end_day$edate);return$range_arr;}/***检查日…
-
PHP通过时间戳获取某个日期段内的周几获取对应的日期 开始日期 结束日期
?php/***@paramdata日期array(start_date,end_data)*/functiongetDateByWeek($data){$start_date=strtotime($data[start_date]);$end_date=strtotime($data[end_date]);$days=($end_date-$start_date)/86400;$weekArr=array(周日,周一,周二,周三,周四,周五,周六);$newDate=array();//组建数组格式$dataWeek[日期]=星期for($i=0;$i$days;$i++){$num_week=date(w,$start_date+($i*86400));$dateWeek[date(Y-m-d,$start_date+($i*86400))]=$weekArr[$num_week];}//查找两个数组的交集,即获取提交的…
-
PHP获取指定日期是周几的时间戳函数
?php/***@paramdata日期*/functionDateToWeek($date){//强制转换日期格式$date_str=date(Y-m-d,strtotime($date));//封装成数组$arr=explode(-,$date_str);//参数赋值//年$year=$arr[0];//月,输出2位整型,不够2位右对齐$month=sprintf(%02d,$arr[1]);//日,输出2位整型,不够2位右对齐$day=sprintf(%02d,$arr[2]);//时分秒默认赋值为0;$hour=$minute=$second=0;//转换成时间戳$strap=mktime($hour,$minute,$second,$month,$day,$year);//获取数字型星期几$num…
-
PHP获取周的开始时间和结束时间戳函数
1、根据指定时间获取所在周的起始时间和结束时间 ?php/***@paramdata日期*/functionget_weekinfo_by_time($date){$idx=strftime(%u,strtotime($date));$mon_idx=$idx-1;$sun_idx=$idx-7;returnarray(week_start_day=strftime(%Y-%m-%d,strtotime($date)-$mon_idx*86400),week_end_day=strftime(%Y-%m-%d,strtotime($date)-$sun_idx*86400),);}? 2、通过时间戳获取某周的开始时间和结束时间 ?php/***@paramtime时间*@paramfirst表示每周星期一为开始日期0表示每周日为开始…
-
PHP获取当前周的每天的起始时间戳函数
?phpfunctiongetDay(){$timestr=time();//当前时间戳$now_day=date(w,$timestr);//当前是周几//获取周一$monday_str=$timestr-($now_day-1)*60*60*24;$monday=date(Y-m-d,$monday_str);//获取周日$sunday_str=$timestr+(7-$now_day)*60*60*24;$sunday=date(Y-m-d,$sunday_str);for($i=0;$i7;$i++){$arr[$i][start]=strtotime(date(Y-m-d,strtotime($monday.+.$i.day)));$arr[$i][end]=strtotime(date(Y-m-d,strtotime($monday.+.$i.day)).24:00:00);}return$arr;}? …
-
PHP获取今日、昨日、上周、本周、上月、本月的起始时间戳
?php//今日开始时间戳和结束时间戳$beginToday=mktime(0,0,0,date(m),date(d),date(Y));$endToday=mktime(0,0,0,date(m),date(d)+1,date(Y))-1;//昨日起始时间戳和结束时间戳$beginYesterday=mktime(0,0,0,date(m),date(d)-1,date(Y));$endYesterday=mktime(0,0,0,date(m),date(d),date(Y))-1;//本周起始时间戳和结束时间戳$startTime=mktime(0,0,0,date(m),date(d)-date(w)+1,date(y));$endTime=mktime(23,59,59,date(m),date(d)-date(w)+7,date(y));//上周起始时间戳和结束时间戳$…