mwwdfl 发布的文章

HTML iframe:

<iframe src="audio/source.mp3" allow="autoplay" style="display:none" id="iframeAudio">
</iframe> 

HTML radio(可用可不用)

<audio autoplay loop  id="playAudio">
      <source src="audio/source.mp3">
    </audio>

js:(可用可不用)

var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
    if(!isChrome){
      $('#iframeAudio').remove()
    }
  else{
     $('#playAudio').remove() //just to make sure that it will not have 2x audio in the background 
  }

php 自带过滤和转义函数

htmlspecialchars
    

将与、单双引号、大于和小于号化成HTML格式
    

&转成&amp;
"转成&quot;
' 转成&#039;
<转成&lt;
>转成&gt;

htmlentities()
    

所有字符都转成HTML格式
    

除上面htmlspecialchars字符外,还包括双字节字符显示成编码等。

addslashes
    

单双引号、反斜线及NULL加上反斜线转义
    

被改的字符包括单引号 (')、双引号(")、反斜线 backslash (\) 以及空字符NULL。

stripslashes
    

去掉反斜线字符
    

去掉字符串中的反斜线字符。若是连续二个反斜线,则去掉一个,留下一个。若只有一个反斜线,就直接去掉。

quotemeta
    

加入引用符号
    

将字符串中含有 . \\ + * ? [ ^ ] ( $ )等字符的前面加入反斜线 "\" 符号。

nl2br()
    

将换行字符转成<br>
     

strip_tags
    

去掉HTML及PHP标记
    

去掉字符串中任何 HTML标记和PHP标记,包括标记封堵之间的内容。注意如果字符串HTML及PHP标签存在错误,也会返回错误。

mysql_real_escape_string
    

转义SQL字符串中的特殊字符
    

转义 \x00  \n  \r  空格  \  '  " \x1a,针对多字节字符处理很有效。mysql_real_escape_string会判断字符集,mysql_escape_string则不用考虑。

base64_decode
    

base64解码
    

对使用 MIME base64 编码的数据进行解码

base64_encode
    

base64编码
    

使用 MIME base64 对数据进行编码

rawurldecode
    

URL解码
    

对已编码的 URL 字符串进行解码

rawurlencode
    

URL编码
    

按照 RFC 1738 对 URL 进行编码

urldecode
    

URL解码
    

解码已编码的 URL 字符串

urlencode
    

URL编码
    

编码 URL 字符串

后台只做两个交互
1、获取凭证
1-1、在官方demo里配置好appid、mchid、key即可
1-2、前端返回的rawdata要做处理,先去掉rawdata=,再用rawurldecode转义一下,否则获取authinfo失败
2、完成支付(支付要由后台做)

压缩某个文件或多个文件
//这里需要注意该目录是否存在,并且有创建的权限
        $zip_path = ROOT_PATH . 'public' . DS . 'uploads/zip';
        if (!file_exists($zip_path)) {
            mkdir($zip_path);
        }
        $zipname = $zip_path . '/exportdevice_' . date('Y-m-d-H-i-s') . '.zip';

        $zip = new \ZipArchive();
        $res = $zip->open($zipname, \ZipArchive::CREATE);
        $img = ROOT_PATH . 'public' . DS . 'uploads/images/aaa.png';
        if ($res === TRUE) {
            $zip->addFile($img, basename($img)); //1、单个文件
            foreach($fileList as $file){ //2、多个文件
                $zip->addFile($file,basename($file));   
            }
        }
        $zip->close();
        //这里是下载zip文件
        header("Content-Type: application/zip");
        header("Content-Transfer-Encoding: Binary");

        header("Content-Length: " . filesize($zipname));
        header("Content-Disposition: attachment; filename=\"" . basename($zipname) . "\"");

        readfile($zipname);
        exit;
    }
压缩某个文件夹
function addFileToZip($path,$zip){
    $handler=opendir($path); //打开当前文件夹由$path指定。
    while(($filename=readdir($handler))!==false){
        if($filename != "." && $filename != ".."){//文件夹文件名字为'.'和‘..’,不要对他们进行操作
            if(is_dir($path."/".$filename)){// 如果读取的某个对象是文件夹,则递归
                addFileToZip($path."/".$filename, $zip);
            }else{ //将文件加入zip对象
                $zip->addFile($path."/".$filename);
            }
        }
    }
    @closedir($path);
}
$zip=new ZipArchive();
if($zip->open('rsa.zip', ZipArchive::OVERWRITE)=== TRUE){
    addFileToZip('rsa/', $zip); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法
    $zip->close(); //关闭处理的zip文件
}