PHP正则替换HTML代码中的所有图片链接地址
function handleDescriptionHtml($description,$http_path)
{
$description = htmlspecialchars_decode($description);
$pregRule = '/<img.*?src=[\"|\']?(.*?)[\"|\']?\s.*?>/i';
$description = preg_replace($pregRule, '<img src="'.$http_path. '${1}" />', $description);
return $description;
}
PHP正则替换mackdown代码中的所有图片链接地址
function handleDescriptionMackdown($description,$http_path)
{
$pregRule = '/!\\[.*\\]\\((.+)\\)/';
$description = preg_replace($pregRule, '![]('.$http_path. '${1})', $description);
return $description;
}
获取域名
function protocol()
{
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
return $protocol.$_SERVER[HTTP_HOST];
}
转换字符编码为utf-8
function strToUtf8($str){
$encode = mb_detect_encoding($str, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5'));
if($encode == 'UTF-8'){
return $str;
}else{
return mb_convert_encoding($str, 'UTF-8', $encode);
}
}
二维数组排序
function arraySort($array, $keys, $sort = 'asc') {
if ($sort == 'asc') {
$sort = SORT_ASC;
} else {
$sort = SORT_DESC;
}
$keysValue = [];
foreach ($array as $k => $v) {
$keysValue[$k] = $v[$keys];
}
array_multisort($keysValue, $sort, $array);
return $array;
}
function arraySort($array,$keys,$sort='asc') {
$newArr = $valArr = array();
foreach ($array as $key=>$value) {
$valArr[$key] = $value[$keys];
}
($sort == 'asc') ? asort($valArr) : arsort($valArr);
reset($valArr);
foreach($valArr as $key=>$value) {
$newArr[$key] = $array[$key];
}
return $newArr;
}
curl_get
function curl_get($url){
$header = array(
'Accept: application/json',
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_TIMEOUT, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
$data = curl_exec($curl);
if (curl_error($curl)) {
return false;
} else {
curl_close($curl);
return $data;
}
}
curl_post
function curl_post( $url, $postdata ) {
$header = array(
'Accept: application/json',
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE );
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
$data = curl_exec($curl);
if (curl_error($curl)) {
return false;
} else {
curl_close($curl);
return $data;
}
}
获取两个时间相差几天
function getTimeDifferDay($time1,$time2)
{
return floor((strtotime($time1) - strtotime($time2))/86400);
}
获取两个时间相差几小时
function getTimeDifferHour($time1,$time2)
{
$day = getTimeDifferDay($time1,$time2);
$data = ceil((strtotime($time1) - strtotime($time2)) % 86400 / 3600);
if ($day > 0) {
$data += $day*24;
}
return $data;
}
获取两个时间相差几分钟
function getTimeDifferMinute($time1,$time2)
{
$day = getTimeDifferDay($time1,$time2);
$data = ceil((strtotime($time1) - strtotime($time2)) % 86400 / 60);
if ($day > 0) {
$data += $day*24*60;
}
return $data;
}
获取两个时间相差几秒
function getTimeDifferSecond($time1,$time2)
{
return strtotime($time1) - strtotime($time2);
}
获取随机字符串
function getRand( $length = 6,$isAll = false)
{
if ($isAll) {
$chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
} else {
$chars = '0123456789';
}
$randStr = '';
for ( $i = 0; $i < $length; $i++ )
{
$randStr .= $chars[ mt_rand(0, strlen($chars) - 1) ];
}
return $randStr;
}
身份证校验
function isCreditNo($vStr){
$vCity = array(
'11','12','13','14','15','21','22',
'23','31','32','33','34','35','36',
'37','41','42','43','44','45','46',
'50','51','52','53','54','61','62',
'63','64','65','71','81','82','91'
);
if (!preg_match('/^([\d]{17}[xX\d]|[\d]{15})$/', $vStr)) return 0;
if (!in_array(substr($vStr, 0, 2), $vCity)) return 0;
$vStr = preg_replace('/[xX]$/i', 'a', $vStr);
$vLength = strlen($vStr);
if ($vLength == 18) {
$vBirthday = substr($vStr, 6, 4) . '-' . substr($vStr, 10, 2) . '-' . substr($vStr, 12, 2);
} else {
$vBirthday = '19' . substr($vStr, 6, 2) . '-' . substr($vStr, 8, 2) . '-' . substr($vStr, 10, 2);
}
if (date('Y-m-d', strtotime($vBirthday)) != $vBirthday) return 0;
if ($vLength == 18) {
$vSum = 0;
for ($i = 17 ; $i >= 0 ; $i--) {
$vSubStr = substr($vStr, 17 - $i, 1);
$vSum += (pow(2, $i) % 11) * (($vSubStr == 'a') ? 10 : intval($vSubStr , 11));
}
if($vSum % 11 != 1) return 0;
}
return 1;
}
Base64图片转换为本地图片并保存
function base64_image_content($base64_image_content,$path){
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){
$type = $result[2];
$src = date('Ymd',time())."/";
$new_file = $path."/".$src;
if(!file_exists($new_file)){
mkdir($new_file, 0700);
}
$img = md5(time().rand()).".{$type}";
$new_file = $new_file.$img;
if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){
return $src.$img;
}else{
return 0;
}
}else{
return 0;
}
}
大数值计算防止使用科学计数法
function calc($m,$n,$x)
{
$errors=array(
'被除数不能为零',
'负数没有平方根'
);
switch($x){
case 'add':
$t=bcadd($m,$n,2);
break;
case 'sub':
$t=bcsub($m,$n,2);
break;
case 'mul':
$t=bcmul($m,$n,2);
break;
case 'div':
if($n!=0){
$t=bcdiv($m,$n,2);
}else{
return $errors[0];
}
break;
case 'pow':
$t=bcpow($m,$n,2);
break;
case 'mod':
if($n!=0){
$t=bcmod($m,$n,2);
}else{
return $errors[0];
}
break;
case 'sqrt':
if($m>=0){
$t=bcsqrt($m,2);
}else{
return $errors[1];
}
break;
}
return $t;
}