0.後臺 循環N*10000次操做的簡單處理javascript
後臺須要循環作N*10000次級別的工做時候,好比,發送郵件,推送通知。能夠先把全部數據導入數據表(數據庫操做所需的時間1~2秒),而後前臺循環發送請求,每一個請求,能夠執行一次或屢次操做,好比一次請求發10封郵件,10個通知等(這些控制,根據需求來定),這樣,就能夠把任務作成一種相似進度條的效果,而且能夠直接展現給用戶看,提升用戶體驗。php
1.empty(trim($ch_url) :報錯css
手冊:html
在 PHP 5.5 以前,empty() 僅支持變量;任何其餘東西將會致使一個解析錯誤。換言之,下列代碼不會生效: empty(trim($name))。 做爲替代,應該使用trim($name) == false.java
2.手機信息提示框(你懂的,複製,粘貼)jquery
<script type='text/javascript' src='resource/js/lib/jquery-1.11.1.min.js'></script> <style type='text/css'> #poptip { position: fixed; top:40%;left:50%;width:160px;margin-left:-80px;height: 27px;background:#000; opacity: 0.7;filter:alpha(opacity=0.7); color:#fff;z-index: 999; border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;} #poptip_content { position: fixed; top:40%;left:50%;width:160px;margin-left:-80px; height: 27px; color:#fff;text-align:center;font-size:14px;z-index: 999999} </style> <script language='javascript'> function tip(msg,autoClose){ var div = $("#poptip"); var content =$("#poptip_content"); if(div.length<=0){ div = $("<div id='poptip'></div>").appendTo(document.body); content =$("<div id='poptip_content'>" + msg + "</div>").appendTo(document.body); }else{ content.html(msg); content.show(); div.show(); } if(autoClose) { setTimeout(function(){ content.fadeOut(500); div.fadeOut(500); },1000); } } function tip_close(){ $("#poptip").fadeOut(500); $("#poptip_content").fadeOut(500); } </script>
達到如下效果:web
3.使用PHP QR Code生成二維碼ajax
phpQrCode 官網:http://phpqrcode.sourceforge.net/ 數據庫
使用:引入phpqrcode.phpapp
封裝的代碼:
/** * 創建文件夾 * * @param string $aimUrl * @return viod */ function createDir($aimUrl) { $aimUrl = str_replace('', '/', $aimUrl); $aimDir = ''; $arr = explode('/', $aimUrl); $result = true; foreach ($arr as $str) { $aimDir .= $str . '/'; if (!file_exists($aimDir)) { $result = mkdir($aimDir,0777,true); } } return $result; } /* -------------------------------------------------------------------- * 建立二維碼 * @param content 二維碼內容 * @param logoPath 圖片文件,或者url * @param fileName 生成的文件名 * @param errorCorrectionLevel 容錯級別 :L、M、Q、H */ function create_qrcode($content, $logoPath = FALSE, $fileName = FALSE, $errorCorrectionLevel = 'M'){ $errorCorrectionLevels = array('L', 'M', 'Q', 'H'); $errorCorrectionLevel = in_array($errorCorrectionLevel, $errorCorrectionLevels) ? $errorCorrectionLevel : "M"; $matrixPointSize = 6; // 點的大小:1到10 if($logoPath == FALSE || empty($logoPath)){ //生成二維碼圖片 QRcode::png($content, false, $errorCorrectionLevel, $matrixPointSize, 2); } else{ $path = ATTACHMENT_ROOT . 'temp/qrcode/' . date('Ymd', time()); $fileName = $path . '/' . $fileName; createDir($path); $QR = $fileName; QRcode::png($content, $QR, $errorCorrectionLevel, $matrixPointSize, 2); $QR = imagecreatefromstring(file_get_contents($QR)); $logo = imagecreatefromstring(file_get_contents($logoPath)); $QR_width = imagesx($QR); // 二維碼圖片寬度 $QR_height = imagesy($QR); //二維碼圖片高度 $logo_width = imagesx($logo); //logo圖片寬度 $logo_height = imagesy($logo); //logo圖片高度 $logo_qr_width = $QR_width / 5; $scale = $logo_width/$logo_qr_width; $logo_qr_height = $logo_height/$scale; $from_width = ($QR_width - $logo_qr_width) / 2; //重 新組合圖片並調整大小 imagecopyresampled( $QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height); } // 輸出圖片 Header("Content-type:image/png"); // header("Content-type:image/png"); // header("Content-Disposition:attachment; filename=meimei.png"); ImagePng($QR); }
4.導出 Excel
關鍵性代碼是:使用 header 便可導出數據
Tip : 這種方式採用 ajax 就不合適了,最好就是一個連接。
header("Content-type:text/csv"); header("Content-Disposition:attachment; filename=" . date('Y-m-d', time()) . "-代金券覈銷數據.csv");
剩下的工做,就是拼接字符串了。
例子:
<?php $html = "\xEF\xBB\xBF"; $filter = array( 'uid' => 'ID', 'realname' => '姓名', 'carno' => '車牌號碼', 'title' => '標題', 'discount' => '面額', /* ... 等等 */ ); foreach ($filter as $title) { $html .= $title . "\t,"; } $html .= "\n"; foreach ($exports as $k => $v) { // exports 爲全部須要導出的數據 foreach ($filter as $key => $title) { if ($key == 'uid') { $html .= $v['uid'] . "\t, "; } elseif ($key == 'realname') { $html .= $v['realname']. "\t, "; } elseif ($key == 'carno') { $html .= $v['carno']. "\t, "; } elseif ($key == 'title') { $html .= $v['title']. "\t, "; } elseif ($key == 'discount') { $html .= $v['discount']. "\t, "; } } $html .= "\n"; } header("Content-type:text/csv"); header("Content-Disposition:attachment; filename=" . date('Y-m-d', time()) . "-代金券覈銷數據.csv"); echo $html; exit();