自己做工具美洲杯赌球:--封装PHP的工具类

2019-05-04 23:46 来源:未知

PHP文件上传,下载,Sql工具类! 对文件大小,文件类型 同名覆盖 中文转码的操作,可直接使用

更多精彩请访问,请一定记得 star :https://github.com/whm19940308/phpTools个人博客:https://www.whmblog.cn转载请标明原文链接:https://www.jianshu.com/p/8ab3dce8d6f1

前台 upload.html

一、使用示例

<!DOCTYPE html>
<html>
<head>
 <title>文件上传</title>
</head>
<body>
<form enctype="multipart/form-data" action="uploadProcess.php" method="post">
 <table>
  <tr><td align="center" colspan="2"><font style="font-size: 40px; font-family: 华文彩云;" >文件上传</font></td></tr>
  <tr>
  <td>请填写用户名:</td>
  <td><input type="text" name="username"></td>
  </tr>
  <tr>
  <td>介绍:</td>
  <td><textarea name="intro" rows="10" cols="80"></textarea></td>
  </tr>
  <tr>
  <td>请选择你要上传的文件</td>
  <td><input type="file" name="myfile"></td>
  </tr>
  <tr><td><input type="submit" value="上传文件" /></td></tr>
 </table>
</form>
</body>
</html>
// 引入两个核心文件require_once './_autoload.php';require_once './functions.php';// 使用示例// 如调用DateTools工具类里的方法,调用示例如下$date_tools = new DateTools();var_dump($date_tools->getSomeZeroTimeStamp;

美洲杯赌球 1

二、代码目录

 

美洲杯赌球 2自己做工具--封装PHP的工具类.png

 

美洲杯赌球,主要有几大工具类:ArrayTools.php —— 数组工具类CharacterTools.php —— 英文字母工具类CurlTools.php —— 跟curl相关的工具类DateTools.php —— 时间工具类EncryptTools.php —— 加密工具类FileTools.php —— 文件工具类HttpTools.php —— 与http协议相关的工具类ImageTools.php —— 图片工具类MapTools.php —— 地图工具类NumberTools.php —— 数字工具类SendCodeTools.php —— 聚合数据发送手机验证码工具类ServerTools.php —— 与服务器相关的工具类StringTools.php —— 字符串相关操作的工具类UploadTools.php —— 上传文件工具类VerifyTools.php —— 校验工具类,如验证ip、手机、邮箱等XmlTools.php —— 操作xml相关的工具类ZipTools.php —— Zip压缩解压工具类

控制器 FileProcess.php

三、ArrayTools.php —— 数组工具类

<?php 
require_once 'FileService.php';
$fileService = new FileService();

if (!empty($_REQUEST['flag'])) {
    $flag = $_REQUEST['flag'];
    //上传
    if ($flag == "upload") {
        $username = $_POST['username'];
        $intro = $_POST['intro'];

        $fileService -> Upload($username,$intro);
    }elseif ($flag == "down") {
        //接收要下载的文件名字
        $filepath = $_GET['filepath'];
        $filename = $_GET['filename'];

 $fileService = new FileService();
 $fileService->Download($filepath,$filename);

    }
}

 ?>
<?phpheader('content-type:text/html;charset=utf-8');/** * 跟curl相关的工具类 * Class CurlsTools */class CurlsTools{ /** * PHP get请求之发送数组 * @param $url * @param array $param * @return mixed * @throws Exception */ public function httpGet{ //初始化一个 cURL 对象 $ch = curl_init(); //设置你需要抓取的URL curl_setopt($ch, CURLOPT_URL, $url); // 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //是否获得跳转后的页面 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); $result = curl_exec; curl_close; return $result; } /** * PHP post请求之发送数组 * @param $url * @param array $param * @return mixed * @throws Exception */ public function httpsPost($url, $param = array { $ch = curl_init(); // 初始化一个 cURL 对象 curl_setopt($ch, CURLOPT_URL, $url); // 设置需要抓取的URL curl_setopt($ch, CURLOPT_HEADER, 0); // // 设置header curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。 // 如果你想PHP去做一个正规的HTTP POST,设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。 curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query; // 传递一个作为HTTP “POST”操作的所有数据的字符串。//http_build_query:生成 URL-encode 之后的请求字符串 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-type:application/x-www-form-urlencoded;charset=utf-8' )); $result = curl_exec; // 运行cURL,请求网页 if ($errno = curl_errno { throw new Exception ('Curl Error(' . $errno . '):' . curl_error; } curl_close; // 关闭URL请求 return $result; // 返回获取的数据 } /** * 使用curl获取远程数据 * @param string $url url连接路径 * @return string 获取到的数据 */ function curlGetContents{ $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, $url); //设置访问的url地址 curl_setopt($ch, CURLOPT_HEADER,1); //是否显示头部信息 curl_setopt($ch, CURLOPT_TIMEOUT, 5); //设置超时 curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); //用户访问代理 User-Agent curl_setopt($ch, CURLOPT_REFERER,$_SERVER['HTTP_HOST']); //设置 referer curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1); //跟踪301 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //返回结果 //这个是重点,加上这个便可以支持http和https下载 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec; curl_close; return $result; } /** * 异步将远程链接上的内容写到本地 * @param $url 远程地址 * @param $saveName 保存在服务器上的文件名 * @param $path 保存路径 * @return boolean */ function putFileFromUrlContent($url, $saveName, $path) { // 设置运行时间为无限制 set_time_limit ; $url = trim ; $curl = curl_init (); // 设置你需要抓取的URL curl_setopt ( $curl, CURLOPT_URL, $url ); // 设置header curl_setopt ( $curl, CURLOPT_HEADER, 0 ); // 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。 curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); //这个是重点,加上这个便可以支持http和https下载 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 运行cURL,请求网页 $file = curl_exec ; // 关闭URL请求 curl_close ; // 将文件写入获得的数据 $filename = $path . $saveName; $write = @fopen ( $filename, "w" ); if ($write == false) { return false; } if (fwrite ( $write, $file ) == false) { return false; } if (fclose  == false) { return false; } return true; } // $url = "https://www.52linmin.wang/upload/portal/20171104/cb1511a3b30ef088c358286110823309.jpg"; // $saveName = 'whm.jpg'; // $path = "./"; //保存在当前目录下 // $res = putFileFromUrlContent($url,$saveName,$path); // var_dump;// 当返回为true时,代表成功,反之,为失败 // 使用代理抓取页面 // 为什么要使用代理进行抓取呢?以google为例吧,如果去抓google的数据,短时间内抓的很频繁的话,你就抓取不到了。 // google对你的ip地址做限制这个时候,你可以换代理重新抓。 public function httpProxy{ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //是否通过http代理来传输 curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE); // curl_setopt($ch, CURLOPT_PROXY, 125.21.23.6:8080); curl_setopt($ch, CURLOPT_PROXY, 'ip:端口号'); //url_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');如果要密码的话,加上这个 $result = curl_exec; curl_close; } // 继续保持本站session的调用 // 在实现用户同步登录的情况下需要共享session,如果要继续保持本站的session,那么要把sessionid放到http请求中 public function httpSession{ $session_str = session_name().'='.session_id().'; path=/; domain=.explame.com'; session_write_close(); //将数据写入文件并且结束session $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIE, $session_str); $result = curl_exec; curl_close; }}

 

四、VerifyTools.php —— 校验工具类,如验证ip、手机、邮箱等

后台 FileService.php

<?phpheader('content-type:text/html;charset=utf-8');/** * 校验工具类,如验证ip、手机、邮箱等 * Class VerifyTools */class VerifyTools{ /** * 说明:判断是否为合法的ip地址 * 判断是否为合法的ip地址 * @param string $ip ip地址 * @return bool|int 不合法则返回false,合法则返回4或6 */ function isIPAddress { $ipv4Regex = '/^d{1,3}.d{1,3}.d{1,3}.d{1,3}$/'; $ipv6Regex = '/^()(?!.*3. 3))3?|([dA-F]{1,4}|2)){5}{2}|(((2[0-4]|1d|[1-9])?d|25[0-5]).?b){4})$/i'; if (preg_match($ipv4Regex, $ip)) return 4; if (false !== strpos && preg_match($ipv6Regex, trim($ip, ' []'))) return 6; return false; } // 说明: 验证邮箱格式 function isValidEmail { $check = false; if(filter_var($email,FILTER_VALIDATE_EMAIL)) { $check = true; } return $check; } /** $email = "blog@koonk.com"; $check = is_validemail; echo $check; //If the output is 1, then email is valid. */ /** * 判断是否为手机访问 * @return boolean */ function isMobile() { $sp_is_mobile = false; if ( empty($_SERVER['HTTP_USER_AGENT']) ) { $sp_is_mobile = false; } elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false // many mobile devices (all iPhone, iPad, etc.) || strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mobi') !== false ) { $sp_is_mobile = true; } else { $sp_is_mobile = false; } return $sp_is_mobile; } /** * 判断是否为微信访问 * @return boolean */ function isWeiXin(){ if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) { return true; } return false; } /** * 检查手机号码格式 * @param $mobile 手机号码 */ function checkMobile{ if(preg_match('/1[0123456789]d{9}$/',$mobile)) return true; return false; } /** * 检查固定电话 * @param $mobile * @return bool */ function checkTelephone{ if(preg_match('/^([0-9]{3,4}-)?[0-9]{7,8}$/',$mobile)) return true; return false; } /** * 当前请求是否是https * @return type */ function isHttps() { return isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && $_SERVER['HTTPS'] != 'off'; }}
TAG标签:
版权声明:本文由美洲杯赌球发布于计算机教程,转载请注明出处:自己做工具美洲杯赌球:--封装PHP的工具类