PHP中一些有用的函数

<?php/** * 加密解密* * @param string $key* @param string $string* @param string $decrypt* @return string */  function encryptDecrypt($key, $string, $decrypt)
{if($decrypt){$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($string), MCRYPT_MODE_CBC, md5(md5($key))), "12");return $decrypted;}else{$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));return $encrypted;}
}function generateRandomString($length = 10)
{$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';$randomString = '';for ($i = 0; $i < $length; $i++) {$randomString .= $characters[rand(0, strlen($characters) - 1)];}return $randomString;
}/** * 获取扩展名* @param string $filename * @return string */ 
function getExtension($filename)
{$ext = substr($filename, strrpos($filename, '.'));return str_replace('.','',$ext);
}function formatSize($size)
{$sizes = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");if ($size == 0) {  return('n/a');  } else {return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i]);  }
}function stringParser($string,$replacer)
{$result = str_replace(array_keys($replacer), array_values($replacer),$string);return $result;
}function listDirFiles($DirPath)
{if($dir = opendir($DirPath)){while(($file = readdir($dir))!== false){if(!is_dir($DirPath.$file)) {echo "filename: $file<br />";}}}
}function curPageURL()
{$pageURL = 'http';if (!empty($_SERVER['HTTPS'])) {$pageURL .= "s";}$pageURL .= "://";if ($_SERVER["SERVER_PORT"] != "80") {$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];} else {$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];}return $pageURL;
}function download($filename)
{if ((isset($filename))&&(file_exists($filename))){header("Content-length: ".filesize($filename));header('Content-Type: application/octet-stream');header('Content-Disposition: attachment; filename="' . $filename . '"');readfile("$filename");} else {echo "Looks like file does not exist!";}
}/** * 获取IP地址 * * @return string */ 
function getIp()
{if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")){$ip = getenv("HTTP_CLIENT_IP");}elseif (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")){$ip = getenv("HTTP_X_FORWARDED_FOR");}elseif (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")){$ip = getenv("REMOTE_ADDR");}elseif (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")){$ip = $_SERVER['REMOTE_ADDR'];}else$ip = "unknown";return ($ip);
}function injCheck($sql_str)
{  $check = preg_match('/select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile/', $sql_str);if ($check) {echo 'Illegal char';exit;} else {return $sql_str;}
}/** * 是否是手机号码 * * @param string $phone 手机号码 * @return boolean */  
function isPhone($phone) {  if (strlen ( $phone ) != 11 || ! preg_match ( '/^1[3|4|5|8][0-9]\d{4,8}$/', $phone )) {  return false;  } else {  return true;  }  
}  
/** * 验证字符串是否为数字,字母,中文和下划线构成 * @param string $username * @return bool */  
function isString($str){  if(preg_match('/^[\x{4e00}-\x{9fa5}\w_]+$/u',$str)){  return true;  }else{  return false;  }  
}  
/** * 是否为一个合法的email * @param sting $email * @return boolean */  
function isEmail($email){  if (filter_var ($email, FILTER_VALIDATE_EMAIL )) {  return true;  } else {  return false;  }  
}  
/** * 是否为一个合法的url * @param string $url * @return boolean */  
function isUrl($url){  if (filter_var ($url, FILTER_VALIDATE_URL )) {  return true;  } else {  return false;  }  
}  
/** * 是否为一个合法的ip地址 * @param string $ip * @return boolean */  
function isIp($ip){  if (ip2long($ip)) {  return true;  } else {  return false;  }  
}  
/** * 是否为整数 * @param int $number * @return boolean */  
function isNnumber($number){  if(preg_match('/^[-\+]?\d+$/',$number)){  return true;  }else{  return false;  }  
}  
/** * 是否为正整数 * @param int $number * @return boolean */  
function isPositiveNumber($number){  if(ctype_digit ($number)){  return true;  }else{  return false;  }  
}  
/** * 是否为小数 * @param float $number * @return boolean */  
function isDecimal($number){  if(preg_match('/^[-\+]?\d+(\.\d+)?$/',$number)){  return true;  }else{  return false;  }  
}  
/** * 是否为正小数 * @param float $number * @return boolean */  
function isPositiveDecimal($number){  if(preg_match('/^\d+(\.\d+)?$/',$number)){  return true;  }else{  return false;  }  
}  
/** * 是否为英文 * @param string $str * @return boolean */  
function isEnglish($str){  if(ctype_alpha($str))  return true;  else  return false;  
}  
/** * 是否为中文 * @param string $str * @return boolean */  
function isChinese($str){  if(preg_match('/^[\x{4e00}-\x{9fa5}]+$/u',$str))  return true;  else   return false;  
}  
/** * 判断是否为图片 * @param string $file  图片文件路径 * @return boolean */  
function isImage($file){  if(file_exists($file) && getimagesize($file===false)){  return false;  }else{  return true;  }  
}  
/** * 是否为合法的身份证(支持15位和18位) * @param string $card * @return boolean */  
function isCard($card){  if(preg_match('/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/',$card) ||preg_match('/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/',$card))  return true;  else   return false;  
}/** * 验证日期格式是否正确 * @param string $date * @param string $format * @return boolean */  
function isDate($date,$format='Y-m-d'){  $t=date_parse_from_format($format,$date);  if(empty($t['errors'])){  return true;  }else{  return false;  }  
}

 

转载于:https://www.cnblogs.com/chenpingzhao/p/4802287.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491799.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文读懂你该了解的5G知识:现在别买5G手机

来源&#xff1a; 腾讯科技2019年是中国全力布局5G的一年&#xff1a;三大运营商纷纷搭建基站&#xff0c;手机厂商发布5G手机&#xff0c;部分城市已经开启了5G测试……在电信日这天&#xff0c;腾讯科技联合知乎推出重磅策划&#xff0c;聚焦和5G相关的小知识&#xff0c;精选…

mnist手写数字数据集下载

下载地址&#xff1a;http://yann.lecun.com/exdb/mnist/

C#黑白棋制作~

前些天自己复习一下C#语言 做了个黑白棋&#xff0c;望大家看一下&#xff0c;可能有些bug嘿嘿 链接如下 http://files.cnblogs.com/files/flyingjun/%E9%BB%91%E7%99%BD%E6%A3%8BV1.2.rar 还有源文件 http://files.cnblogs.com/files/flyingjun/%E9%BB%91%E7%99%BD%E6%A3%8B.r…

未来可能发生的十大颠覆性创新

转自&#xff1a;工信头条本文发表于《中国工业和信息化》杂志2019年5月刊总第12期科技作家凯文凯利认为&#xff1a;“未来在其初期将发展得非常缓慢&#xff0c;随之便可一蹴而就。”随着时间缓慢出现的规模化变革很容易被忽视&#xff0c;但实际上在一个快速创新的世界中&am…

Python计算信息熵

计算信息熵的公式&#xff1a;n是类别数&#xff0c;p(xi)是第i类的概率 假设数据集有m行&#xff0c;即m个样本&#xff0c;每一行最后一列为该样本的标签&#xff0c;计算数据集信息熵的代码如下&#xff1a; from math import logdef calcShannonEnt(dataSet):numEntries …

Delphi Format函数功能及用法详解

DELPHI中Format函数功能及用法详解 DELPHI中Format函数功能及用法详解function Format(const Format: string; const Args: array of const): string; $[SysUtils.pas 功能&#xff1a;返回按指定方式格式化一个数组常量的字符形式 说明 这个函数是Delphi中用得最多的函数&…

Python绘制决策树的节点

import matplotlib.pyplot as pltdecisionNode dict(boxstyle"sawtooth", fc"0.8") # 决策节点的属性。boxstyle为文本框的类型&#xff0c;sawtooth是锯齿形&#xff0c;fc是边框线粗细 # 可以写为decisionNode{boxstyle:sawtooth,fc:0.8} leafNode dic…

IBM对话智能+未来:十年提升AI性能效率千倍?

来源&#xff1a;云科技时代140多前的1879年&#xff0c;爱迪生经过几千次试验发明了电灯&#xff1b;之后过了90年的1969年美国把人类送到了月球&#xff0c;1970年空中客车公司诞生。在1870年代&#xff0c;人类初次进入电力时代的时候&#xff0c;没有人能够想到有一天人类可…

【转】chrome浏览器的跨域设置——包括版本49前后两种设置

做前后分离的webapp开发的时候&#xff0c;出于一些原因往往需要将浏览器设置成支持跨域的模式&#xff0c;好在chrome浏览器就是支持可跨域的设置&#xff0c;网上也有很多chrome跨域设置教程。但是新版本的chrome浏览器提高了跨域设置的门槛&#xff0c;原来的方法不再适用了…

中国信通院:2019年Q1全球人工智能产业数据报告

来源&#xff1a;网络大数据近日&#xff0c;中国信息通信研究院数据研究中心发布了《全球人工智能产业数据报告(2019Q1)》。报告以中国信息通信研究院数研中心人工智能产业数据库为基础&#xff0c;从企业研究、投融资研究、论文等角度出发&#xff0c;结合产业发展热点&#…

数据库一对一,一对多,多对多关系

关联映射&#xff1a;一对多/多对一 存在最普遍的映射关系&#xff0c;简单来讲就如球员与球队的关系&#xff1b; 一对多&#xff1a;从球队角度来说一个球队拥有多个球员 即为一对多 多对一&#xff1a;从球员角度来说多个球员属于一个球队 即为多对一 数据表间一对多关系如下…

Python找出某元素的索引下标

方法&#xff1a;list.index&#xff08;‘xxx’&#xff09; L [a, b, c] index L.index(c) print(index) # 输出2

一文读懂产业互联网的前世今生!

来源&#xff1a;全球物联网观察摘要&#xff1a;随着云计算等企业级技术应用的发展普及&#xff0c; 产业互联网实际已经在各行各业展开实践。广度上不仅覆盖服务业、工业和农业&#xff0c;还从商业扩展到公益和政府&#xff0c;整个社会走向全面互联&#xff1b;深度上从营销…

RAC 的文章

http://limboy.me/ios/2013/12/27/reactivecocoa-2.html http://limboy.me/ios/2014/06/06/deep-into-reactivecocoa2.html转载于:https://www.cnblogs.com/xingkonghao818/p/4808857.html

Python判断变量类型

两种方法&#xff1a; 一&#xff1a; L [a, b, c] print(isinstance(L, list)) #输出True二&#xff1a; L [a, b, c] print(type(L).__name__ list) #输出True

阅读 LdrInitializeThunk

参考&#xff1a; http://blog.csdn.net/hw_henry2008/article/details/6568255 Windows 的 DLL 装入(除 ntdll.dll 外)和连接是通过 ntdll.dll 中的一个函数LdrInitializeThunk()实现的. 在进入这个函数之前&#xff0c;目标 EXE 映像已经被映射到当前进程的用户空间&#xff…

反对量子计算的理由

来源&#xff1a; 悦智网量子计算如今十分流行。几乎每天都有新闻媒体发布相关新闻。其实人类研究量子计算已经长达几十年&#xff0c;却未得出任何实用的结果&#xff0c;大多数评论员都忘记或者掩饰了这一事实。 IBM指出量子计算机能够“使很多学科领域取得突破性进展&#x…

吴恩达《机器学习》学习笔记一——初识机器学习

吴恩达《机器学习》学习笔记一一、 什么是机器学习&#xff1f;二、监督学习三、无监督学习初识机器学习这是个人学习吴恩达《机器学习》课程的一些笔记&#xff0c;供自己和大家学习提升。第一篇内容较少&#xff0c;日后继续加油。课程链接&#xff1a;https://www.bilibili.…

Python存储生成的决策树——pickle模块

假设通过训练样本生成的决策树为&#xff1a; {no surfacing: {0: no, 1: {flippers: {0: no, 1: yes}}}} 利用pickle模块可以存储和加载该决策树 tree {no surfacing: {0: no, 1: {flippers: {0: no, 1: yes}}}}def storeTree(inputTree, filename):import picklefw open…

让引擎不再是你的唯一,对百度再见

信息的传播是人的本性&#xff0c;特别是&#xff0c;对于自己的喜恶事事务。华斯康技术已经做了一项调查&#xff0c;在空调、身体、洗发水、房屋及其他产品的购买过程&#xff0c;分别为&#xff0c;53%、49%、35%和32%消费者&#xff0c;新产品信息。而且分别有35%、28%、15…