关于PHP的CLI工具美高梅4858官方网站

作者:编程技术

后台 FileService.php

四、VerifyTools.php —— 校验工具类,如验证ip、手提式无线电话机、邮箱等

php cli轻巧实用表达

大家看--help命令反馈出来的注脚文书档案能够明白什么使用php的cli,Usage后边的内容汇报的是php cli的下令格式。空意气风发格上面包车型地铁-a -c -n那类关键词是指Usage里面options的参数,再往下一些--七个横杠的入眼词便是args里面包车型大巴参数。
比方大家在cmd个中输入:

php -a

就能步入到php的相互影响推行代码的格局。个中-a正是options参数。

 

<?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'; }}

关于PHP的cli

根基甘休让大家说说php的cli程序,php自二零零一年在TIOBE登榜现在一直作为web开拓的机要语言,但是我们在行使php的时候大非常多都以经过配备好的情状然后接受浏览器去拜谒和查看脚本语言的周转结果。
当大家想要测试一些写的代码的时候就需求不停的开辟浏览器去查看运转结果。那样每一次大家都要从IDE切换成浏览器,很麻烦。今后无数IDE以至文本编辑器都以有Terminal插件的大家得以一贯在Terminal插件个中使用cli工具。

<?php 
header("content_type:text/html;charset=utf-8");
require_once 'SqlHelper.php';
error_reporting(E_ALL & ~E_NOTICE);

class FileService{

//查询所有文件信息
function fileInfo(){

    $sql = "select * from upload";
    $sqlHelper = new SqlHelper();

    $res = $sqlHelper->execute_dpl($sql);
    return $res;

    $res->free();
}


/*
*上传文件
*    功能
*        限制文件大小/类型
*        防止不同用户上传同名图片被覆盖的问题
*        防止同一用户上传的文件名相同的问题
*    参数
*        $username
*        $intro
*
*is_uploaded_file  上传到tmp缓存
*move_uploaded_file  移动到目标文件
*/
function Upload($username,$intro){

/*********对文件类型进行限制**********/

    //获取文件的大小,限制上传文件的大小10M
    $file_size = $_FILES['myfile']['size'];
    if ($file_size>10*1024*1024) {
    echo "<script>alert('上传失败,上传的文件不能超过10M的文件');history.go(-1);</script>";
    //echo "上传失败,上传的文件不能超过10M的文件!";
        exit();
    }

    //限制上传文件类型
    /*
    $file_type = $_FILES['myfile']['type'];
    if ($file_type!='image/jpg' && $file_type!='image/pjpeg') {
        echo "上传失败,文件类型只能是jpg格式!";
        exit();
    }*/

    //判断文件是否上传成功
    if (is_uploaded_file($_FILES['myfile']['tmp_name'])) {


/***防止不同用户上传同名图片被覆盖的问题->给每个用户创建一个文件夹*****/
    //一般创建文件夹的时候根据id创建(username换成id,入参时带入id),防止汉字乱码
        //给每个用户动态创建一个相应的文件夹
        $user_path = $_SERVER['DOCUMENT_ROOT']."Demo/File/UpDown/upload/".$username;
        //判断该用户是否已经有文件夹
        if (!file_exists($user_path)) {
            mkdir($user_path);
        }


/****防止同一用户上传的文件名相同的问题->给每个文件名加上时间戳********/
         //tmp里的文件名
         $file_name = $_FILES['myfile']['name'];
        //把缓存文件转存到你希望的目录
        $uploaded_file = $_FILES['myfile']['tmp_name'];
         //目标路径=(目标目录 用户名) 当前时间 后缀(strpos()字符串首次出现的位置)
         $move_to_file = $user_path."/".time().rand(1,1000).substr($file_name, strpos($file_name, "."));


        //对中文路径转码
        $move_to_file = iconv("utf-8", "gb2312", $move_to_file);

/******************数据库操作***********************/
        //存入数据库
        $uptime = date('Y-m-d H:i:s');    //获取当前上传时间

        $sql = "insert into upload (username,fname,fsize,uptime,fpath,intro) values ('$username','$file_name','$file_size','$uptime','$move_to_file','$intro')";

        $sqlHelper = new SqlHelper();
        $res = $sqlHelper->execute_dml($sql);

    //判断是否将上传的文件移动到目标位置(先判断是否上传成功,再判断是否添加到数据库)
         if (move_uploaded_file($uploaded_file, $move_to_file)) {

             //res=1表示添加上传成功
            if ($res == 1) {

                echo "<script>alert('{$_FILES['myfile']['name']}文件上传成功');window.location.href='down.php';</script>";
            }else{
                echo "<script>alert('文件上传失败');history.go(-1);</script>";
            }

         }else{
             echo "<script>alert('文件上传失败');history.go(-1);</script>";
         }

    }else{
        echo "<script>alert('文件上传失败');history.go(-1);</script>";
    }
}


/**
*
* 参数说明:
* 下载文件
*  $filepath     文件路径 
*  $filename     文件名
*
*/
function Download($filepath,$filename){
      //对中文文件名进行转码
    $filename=iconv("UTF-8","GB2312",$filename);   

    if(!file_exists($filepath)){ //检查文件是否存在
       echo "<script>alert('该文件不存在!');history.go(-1);</script>";
       // echo "该文件不存在!";

      return;
     }

      $fp = fopen($filepath, 'r');   //打开文件
      $file_size = filesize($filepath);  //计算文件大小

    if ($file_size>10*1024*1024) {

     echo "<script>window.alert('文件过大,您没权限下载')</script>";
     return;
    }
          //HTTP头部信息
        header("Content-type: application/octet-stream");
        header("Accept-Ranges: bytes");
        header("Accept-Length: ".$file_size);
        header("Content-Disposition: attachment; filename=".$filename);

    $buffer = 1024;
    //为了下载安全,做一个文件字节读取计数器
    $file_count = 0;
    //判断文件是否结束 feof
    while (!feof($fp) && ($file_size-$file_count > 0)) {

       $file_data = fread($fp, $buffer);  //统计读了多少字节
       $file_count =$buffer;

        echo "$file_data";  //把数据会送给浏览器
    }
      fclose($fp);
   }

}

 ?>

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

总结

如上轻松表明了php cli的采纳情势,其实不单是php cli依据本文的思路能够运用其余大器晚成款编制程序语言的cli工具,c/c ,java,python,nodejs,go,ruby等等都足以,我们只需要输入编制程序语言的名字然后 --help查占卜关的授命使用方式就足以了。

 

<?phpheader("Content-Type:text/html; charset=utf-8");/** * 上传文件工具类 * Class Upload */class UploadTools{ public $upload_name; //上传文件名 public $upload_tmp_name; //上传临时文件名 public $upload_final_name; //上传文件的最终文件名 public $upload_target_dir; //文件被上传到的目标目录 public $upload_target_path; //文件被上传到的最终路径 public $upload_filetype ; //上传文件类型 public $allow_uploadedfile_type; //允许的上传文件类型 public $upload_file_size; //上传文件的大小 public $allow_uploaded_maxsize=10240000;//允许上传文件的最大值,单位为字节,现在相当于允许上传 10M 的文件 //构造函数 public function __construct() { $this->upload_name = $_FILES["file"]["name"]; //取得上传文件名 $this->upload_filetype = $_FILES["file"]["type"]; $this->upload_tmp_name = $_FILES["file"]["tmp_name"]; $this->allow_uploadedfile_type = array('jpeg','jpg','png','gif','bmp','doc','xls','csv','zip','rar','txt','wps'); $this->upload_file_size = $_FILES["file"]["size"]; $this->upload_target_dir="./upload"; } //文件上传 public function upload_file() { if(!empty{ $upload_filetype = $this->getFileExt($this->upload_name);//获取文件扩展名 if(in_array($upload_filetype,$this->allow_uploadedfile_type))//判断文件类型是否符合要求 { if($this->upload_file_size < $this->allow_uploaded_maxsize)//判断文件大小是否超过允许的最大值 { if(!is_dir($this->upload_target_dir))//如果文件上传目录不存在 { mkdir($this->upload_target_dir,true);//创建文件上传目录 chmod($this->upload_target_dir,0777);//改权限 } $this->upload_final_name = date.rand.'.'.$upload_filetype;//生成随机文件名 $this->upload_target_path = $this->upload_target_dir."/".$this->upload_final_name;//文件上传目标目录 if(!move_uploaded_file($this->upload_tmp_name,$this->upload_target_path))//文件移动失败 { echo "<p style='color=red'>文件上传失败!</p>"; } else { echo "<p style='color=green'>文件上传成功!</p>"; } } else { echo("<p style='color=red'>文件太大,上传失败!</p>"); } } else { echo("<p style='color=red'>仅支持一下文件类型,请重新选择:<br>".implode(',',$this->allow_uploadedfile_type)."</p>"); } }else{ echo("<p style='color=red'>请上传文件!</p>"); } } /** *获取文件扩展名 *@param String $filename 要获取文件名的文件 */ public function getFileExt($filename){ $info = pathinfo($filename); return @$info["extension"]; }}

什么是cli?

cli是command-line interface的错写及命令行人机联作工具。使用过python只怕nodejs的校友确定都见过如此的工具。
python的cli工具

美高梅4858官方网站 1

python cli

不管是python依旧nodejs以致是java都在windows情状下提供了cli工具方便开荒者使用和测验。

PHP文件上传,下载,Sql工具类! 对文件大小,文件类型 同名覆盖 汉语转码的操作,可一向运用

二、代码目录

干什么供给cli工具?

要掌握有个别linux操作系统是不曾操作分界面包车型大巴,更别提使用什么高级的IDE工具了,那大家怎么技能实行顺序如故对前后相继开展编写翻译呢?那时候大家就需求三个足以对编制程序语言实践一些脚本命令的cli工具了。只须求通过简单的命令行就足以试行编写翻译,调节和测验代码片段的操作了。比方编写翻译c

g   -o hello hello.cpp

上述编写翻译hello的执行顺序。
大概python实施三个程序:

python hello.py

像这种类型python的cli工具就拉拉扯扯我们在指令行里试行hello.py那几个程序了。
总括:cli工具正是二个命令行可执行的顺序。

<?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; }}

用PHP cli运转一个php文件

当然有些时候大家还想单独启动一个文书查看调节和测量试验结果,能够像上边那样做。

php -f 'test.php'

如上-f是options的参数,'test.php'就是代表了尖括号<file>。

 美高梅4858官方网站 2

美高梅4858官方网站 3和煦做工具--封装PHP的工具类.png

windows蒙受下哪些利用php的cli

此处最首要说一些在windows下使用cli的主题素材,首先windows下利用cli必要把php的情形变量增多到系统在那之中。
不停解windows境遇变量配置的能够搜索一下。别的win10的景况变量配置比早前的都有利多了。
windows下php的cli实际上是在命令产业中启用php.exe。当大家布署好意况变量的时候展开windows的cmd输入:

php --help

就足以见到php cli的满贯下令

美高梅4858官方网站 4

phpcli

控制器 FileProcess.php

六、ZipTools.php —— Zip压缩解压工具类

php -a的注意事项

辩解上您看看的应有和上边包车型地铁代码相比较周边,提醒Interactive shell然后唤起php > 后边就足以输入种种吩咐了。同有时间也无需你输入任何<?php ?>。

$ php -a
Interactive shell

php > echo time();
1330954675
php > $a = 1;
php > echo $a;
1

但是在windows下你大概看见的是那般的:

$ php -a
Interactive mode enabled

<?php
echo time() . "n";
$a = 1;
echo $a;
?> 
^Z
1330954647
1

windows下踏入的是Interactive mode enabled形式,那是因为windows的php在编译的经过在那之中未有把readline扩大编写翻译进去,所以windows版的PHP在-a命令的时候就必要增加<?php ?>了。同不时间上述代码当中的^Z表示的意味是按ctrl Z。

 

越来越多特出请访谈,请一定记得 star :

python和nodejs都提供了对应的cli工具方便学习和测量试验代码片段,相像作为脚本语言的php也可能有cli工具,本篇小说就总结的介绍一下在windows情形下什么样行使php的cli工具。大家先切磋一下什么是cli,以致cli的用途然后再张开PHP的cli,看看PHP的cli能扶持大家缓和什么问题。

 

越来越多优良请访谈,请一定记得 star :

前台 upload.html

// 引入两个核心文件require_once './_autoload.php';require_once './functions.php';// 使用示例// 如调用DateTools工具类里的方法,调用示例如下$date_tools = new DateTools();var_dump($date_tools->getSomeZeroTimeStamp;

 

<?phpheader('content-type:text/html;charset=utf-8');/** * Class ZipTools * Zip压缩解压工具类 */class ZipTools{ /** * @desc 对相应目录文件进行压缩 * @param $path * @param $zip **/ // 使用示例 // $zip = new ZipArchive(); // $path = $_SERVER['DOCUMENT_ROOT']; // $zipName = $_SERVER['DOCUMENT_ROOT']."/20180826.zip"; // // if($zip->open($zipName, ZipArchive::CREATE) === TRUE){ // addFileToZip($path, $zip); // 调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法 // $zip->close(); // 关闭处理的zip文件 // } public function addFileToZip($path,$zip){ // 转化  为 / ,适应 windows $file_tools = new FileTools(); $path = $file_tools->dirPath; // 判断是不是目录,是的话递归进入 if(is_dir { $handler = opendir; //打开当前文件夹由$path指定。 while (($filename = readdir) !== false) { if ($filename != "." && $filename != "..") { //文件夹文件名字为'.'和'..',不要对他们进行操作 if (is_dir($path . "/" . $filename)) { // 如果读取的某个对象是文件夹,则递归 $this->addFileToZip($path . "/" . $filename, $zip); } else { //将文件加入zip对象 $zip->addFile($path . "/" . $filename); } } } }else{ $zip->addFile; } @closedir; echo 'zip压缩成功'; } /** * @desc 对相应目录文件进行压缩 * @param $path * @param $zip **/ // php 从zip压缩文件中提取文件 // 使用示例: // $filename = $_SERVER['DOCUMENT_ROOT'].'/unzip.zip'; // $path = $_SERVER['DOCUMENT_ROOT'].'/unzip'; // unZip($filename,$path ); public function unZip($filename = '', $path = ''){ //将文件名和路径转成windows系统默认的gb2312编码,否则将会读取不到 $filename = iconv("utf-8","gb2312",$filename); $path = iconv("utf-8","gb2312",$path); if (!file_exists($filename)) { return false; } $zip = new ZipArchive; if ($zip->open($filename) === TRUE) {//中文文件名要使用ANSI编码的文件格式 $zip->extractTo;//提取全部文件 $zip->close(); echo 'zip解压成功'; } else { echo 'zip解压失败或没有这个zip文件'; } }}

 

关于PHP的CLI工具美高梅4858官方网站。五、UploadTools.php —— 上传文件工具类

 

关于PHP的CLI工具美高梅4858官方网站。意气风发、使用示例

<!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>

第黄金时代有几大工具类: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压缩解压工具类

美高梅4858官方网站 5

 

<?php

/**
 *    sql工具类(dml,dpl,dpl_arr,close_link)
 *
 *1.创建MySqli对象
 *2.操作数据库(发送sql)
 *3.处理结果
 *4.关闭资源
 *
 */

class SqlHelper {
    private $link;
    private static $host = 'localhost';
    private static $user = 'root';
    private static $pwd = '';
    private static $db = 'test';

    public  function __construct() {

        //初始化
        $this->link = new MYSQLi(self::$host,self::$user,self::$pwd,self::$db);
        if ($this->link->connect_error){
            die("数据库连接失败".$this->link->connect_error);
        }
        $this->link->query("set names utf8");
    }


    /**
     * dpl操作
     * @param unknown $sql
     */
    public function execute_dpl($sql){
        $res = $this->link->query($sql) or die("操作dpl失败".$this->link->error);
        return $res;
    }

    /**
     * dpl操作
     * @param $sql
     * @return arr
     *              把结果放在数组里。这样资源可以随时关闭,返回一个数组
     */

    public function execute_dpl_arr($sql){
        $arr = array();
        $res = $this->link->query($sql) or die("操作dpl_arr失败".$this->link->error);
        //把$res=>$arr,把结果集内容转移到一个数组中
        while ($row = $res->fetch_assoc()){
            $arr[] = $row;
        }
        //这里可以把资源立即关闭
        $res->free();
        return $arr;
    }


    /**
     * dml操作  update/delete/insert
     * @param unknown $sql
     */
    public function execute_dml($sql){

        $res = $this->link->query($sql) or die("操作dml失败".$this->link->error);
        if (!$res){
            return 0;   //失败
        }else {
            if ($this->link->affected_rows>0){
                return 1;   //成功
            }else {
                return 2;   //没有行受到影响
            }
        }
        $res->free();
    }


    //关闭链接
    public function close_link(){
        if (!empty($this->link)){
            $this->link->close();
        }
    }

}

工具类  SqlHelper.php

 

本文由分分快三计划发布,转载请注明来源

关键词: php 工具