Time of Update: 2016-07-21
最近有人問我做下載檔案的方法,對於php方法如下: 複製代碼 代碼如下: header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=ins.jpg"); readfile("imgs/test_Zoom.jpg"); ?> 第一行代碼是強制下載; 第二行代碼是給下載的內容指定一個名字; 第三行代碼是把下載的內容讀進檔案中。
Time of Update: 2016-07-21
這裡講一個簡單的方法,直接使用discuz的include/common.inc.php來登入。 複製代碼 代碼如下: include_once("../discuz/include/common.inc.php"); $CTDF_USERINFO = array(); $CTDF_USERINFO["sid"] = $sid; $CTDF_USERINFO["uid"] = $discuz_uid; $CTDF_USERINFO["user"] = $discuz_user; if
Time of Update: 2016-07-21
這裡的方法是利用fputcsv寫CSV檔案的方法,直接向瀏覽器輸出Excel檔案。 複製代碼 代碼如下: // 輸出Excel檔案頭,可把user.csv換成你要的檔案名稱 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="user.csv"'); header('Cache-Control: max-age=0'); //
Time of Update: 2016-07-21
PHP 版: 複製代碼 代碼如下: function format($size) { $sizetext = array(" B", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"); return round($size/pow(1024,($i=floor(log($size,1024)))),2).$sizetext[$i]; } C# 版: 複製代碼 代碼如下: public string formatSize(long
Time of Update: 2016-07-21
複製代碼 代碼如下: /** * 策略模式(Strategy.php) * * 定義一系列演算法,把它們一個個封裝起來,並且使它們可相互替換,使用得演算法的變化可獨立於使用它的客戶 * */ // ---以下是一系列演算法的封閉---- interface CacheTable { public function get($key); public function set($key,$value); public function del($key); } // 不使用緩衝 class
Time of Update: 2016-07-21
函數嵌套,這個名字有點糾結,也許不太好理解。一個比較常見的函數嵌套特例:遞迴函式,即函數自己嵌套自己。 一直以為在PHP中不能有太多的函數嵌套,這是因為在以前某些時候不小心用到了遞迴,在遞迴的深度達到100時, 即函數嵌套的層數達到100時,程式會報一個 Fatal error。如下樣本: 複製代碼 代碼如下: function rt() { static $i; echo $i++, ''; rt(); } rt(); die(); 在我的win7 + php5.3的環境下報錯如下:
Time of Update: 2016-07-21
rsort()定義和用法 rsort() 函數對數組的元素按照索引值進行逆向排序。與 arsort() 的功能基本相同。 注釋:該函數為 array 中的單元賦予新的鍵名。這將刪除原有的鍵名而不僅是重新排序。 如果成功則返回 TRUE,否則返回 FALSE。 可選的第二個參數包含另外的排序標誌。 文法 rsort(array,sorttype)參數 描述 array 必需。輸入的數組。 sorttype 可選。規定如何排列數組的值。可能的值: SORT_REGULAR -
Time of Update: 2016-07-21
array_sum()定義和用法 array_sum() 函數返回數組中所有值的總和。 如果所有值都是整數,則返回一個整數值。如果其中有一個或多個值是浮點數,則返回浮點數。 PHP 4.2.1 之前的版本修改了傳入的數組本身,將其中的字串值轉換成數值(大多數情況下都轉換成了零,根據具體制而定)。 文法 array_sum(array) 參數 描述 array 必需。規定輸入的數組。 例子1 複製代碼 代碼如下: $a=array(0=>"5",1=>"15",2=>"25"); echo
Time of Update: 2016-07-21
結果碰到一個問題,setcookie設定了Cookie並沒有生效,在瀏覽器端也沒有看到。查了一下,原來是setcookie是通過HTTP請求響應的Header來完成的,需要在請求響應內容輸出之前執行(就像其他Header設定一樣)。 在php.ini中error_reporting = E_ALL的情況下,輸出內容之後再setcookie會彈出以下提示: 複製代碼 代碼如下: Warning: Cannot modify header information – headers already
Time of Update: 2016-07-21
複製代碼 代碼如下: echo json_encode("中文"); //"\u4e2d\u6587" 這就讓我們這些在天朝做開發的同學, 很是頭疼, 有的時候還不得不自己寫json_encode. 而在PHP5.4, 這個問題終於得以解決, Json新增了一個選項: JSON_UNESCAPED_UNICODE, 故名思議, 就是說, Json不要編碼Unicode. 看下面的例子: 複製代碼 代碼如下: echo json_encode("中文",
Time of Update: 2016-07-21
複製代碼 代碼如下:function foreachDir($path){ $handle=opendir($path); if($handle){ while (false !== ($file = readdir($handle))) { if($file!="." && $file!='..'){ if(is_dir($path.$file)){ echo $path.$file.""; foreachDir($path.$file); }else{ echo "--".$path."/"
Time of Update: 2016-07-21
empty — 檢查一個變數是否為空白 Report a bug 描述 bool empty ( mixed $var ) 如果 var 是非空或非零的值,則 empty() 返回 FALSE。換句話說,""、0、"0"、NULL、FALSE、array()、var $var; 以及沒有任何屬性的對象都將被認為是空的,如果 var 為空白,則返回 TRUE。 除了當變數沒有置值時不產生警告之外,empty() 是 (boolean) var 的反義詞。參見轉換為布爾值擷取更多資訊。
Time of Update: 2016-07-21
在PHP 4.2.0 至 4.2.3中,可以使用w32api_register_function 函數調用外部的DLL,前提是需要在php.ini中開啟擴充的php_w32api.dll。 如果使用的是PHP 5,調用DLL只有使用PHP的COM類了。 基本方法為:$obj = new COM("server.object") 顯然COM類將php功能又提高了一大截。同時這個類將組件的PO調用方法改成了OO方法。 在使用COM類之前,確保下面3個條件: 1.啟用組件:regsvr32
Time of Update: 2016-07-21
文字編碼的轉換mb_convert_encoding() mb_convert_encoding( $str, $encoding1,$encoding2 ) $str,要轉換編碼的字串 $encoding1,目標編碼,如utf-8,gbk,大小寫均可 $encoding2,原編碼,如utf-8,gbk,大小寫均可 執行個體1 複製代碼 代碼如下: $str='指令碼之家:http://www.jb51.net'; echo mb_convert_encoding($str, "UTF-8");
Time of Update: 2016-07-21
一、中文截取:mb_substr() mb_substr( $str, $start, $length, $encoding ) $str,需要截斷的字串 $start,截斷開始處,起始處為0 $length,要截取的字數 $encoding,網頁編碼,如utf-8,GB2312,GBK 執行個體: 複製代碼 代碼如下: $str='指令碼之家:http://www.jb51.net'; echo
Time of Update: 2016-07-21
實驗了一下python的urllib庫以及js 的 encodeURIComponent 均不會替換。空格encode也是替換成了 '%20' 。python提供了urllib.quote_plus, urlib.unquote_plus來處理空格->加號,看起來還是比較合理的。 查了一下 RFC 3986: 有下面一段 Scheme names consist of a sequence of characters beginning with a letter and followed
Time of Update: 2016-07-21
首先需要的檔案有jquery.js,jquery.autocomplete.js,jquery.autocomplete.js,這三個檔案,哪裡有?百度、Google都可以找到。可以去官網上下,裡麵包含了一些demo,只留下這三個檔案即可。 js代碼: 複製代碼 代碼如下: HTML代碼中只有: 下面是php代碼: 複製代碼 代碼如下: if($_GET['action'] == 'getAjaxInfo'){ //這裡由於我寫其它應用了,如果單純做這一個自動完成,可以寫簡單一點 if(
Time of Update: 2016-07-21
Content-disposition 是 MIME 協議的擴充,MIME 協議指示 MIME 使用者代理程式如何顯示附加的檔案。Content-disposition其實可以控制使用者請求所得的內容存為一個檔案的時候提供一個預設的檔案名稱,檔案直接在瀏覽器上顯示或者在訪問時彈出檔案下載對話方塊。 格式說明: content-disposition = "Content-Disposition" ":" disposition-type *( ";" disposition-parm )
Time of Update: 2016-07-21
註冊程式統一走單一入口,核心判斷是checkip處,只需要在未實名認證的模板程式處做一個game_id的判斷即可。因為太過肯定、急於下班的心理,再加上大家催促的緊張,一下子就蒙了,犯了兩個錯誤:一是game_id的判斷位置提前了,導致後面的很多變數沒有傳到目的頁面;二是沒有理解header跳轉和include包含的涵義,直接用了header做跳轉。 header跳轉後的頁面,不能繼承上一頁的變數等元素,舉例說明: a.php檔案 $userEname = "crystal";
Time of Update: 2016-07-21
複製代碼 代碼如下: /* php Ubb代碼編輯器 */ function get_ubb($ubb){ $ubb=preg_replace("/([B])(.*)([/B])/","\2" ,$ubb);//替換B粗體字 $ubb=preg_replace("/([I])(.*)([/I])/","\2" ,$ubb); $ubb=preg_replace("/([U])(.*)([/U])/","\2" ,$ubb);