Time of Update: 2016-11-09
/** * 數字轉日期遞迴 *@param list *@return list **/ function day2str($key,$obj,$keys=array('create_time'=>'Y-m-d','s_time'=>'Y-m-d','e_time'=>'Y-m-d','usetime'=>'Y-m-d G:i:s'
Time of Update: 2016-11-09
今天用 curl_init 函數抓取搜狐的網頁時,發現採集的網頁時亂碼,經過分析發現原來是伺服器開啟了gzip壓縮功能。只要往函數 curl_setopt 添加多個選項 CURLOPT_ENCODING 解析 gzip 就可以正確解碼了。 還有如果抓取的網頁時 GBK 編碼,但是指令碼確是 utf-8 編碼,還得把抓取的網頁再用函數 mb_convert_encoding 轉換下。
Time of Update: 2016-11-09
很多人可能不知道,動態網頁在瀏覽器也是可以緩衝的。下面就以 PHP 指令碼為例子,闡述如何設定動態網頁在瀏覽器緩衝//設定網頁到期時間為1小時$duetime = 3600*24*30;//擷取瀏覽器會向伺服器傳送 Last-Modified 前序$modify_time = $_SERVER['HTTP_IF_MODIFIED_SINCE'];//當瀏覽器在設定時間之內再次訪問該網頁時,發送 HTTP 304
Time of Update: 2016-11-09
傳統的HTML方式已經難已滿足超大檔案的上傳。別說是100MB,50MB對伺服器來說都是非常大的,服務不僅要專門開一個連結等待這個檔案上傳完畢,還要分配同等大小的記憶體來儲存這個檔案對伺服器來講壓力相當的大。 在實際網路環境中一般10MB左右的檔案都需要藉助於控制項來實現。一方面是因為國內的網路環境不太穩定,另一方面是從伺服器的負載方面考慮。 像QQ郵箱中的超大附件上傳功能,115網盤中的超大附件上傳控制項,華為網盤(DBank),金山快盤他們都是使用控制項來實現超大檔案上傳功能的。
Time of Update: 2016-11-09
我們知道,Session是針對HTTP協議的局限性而提出的一種保持用戶端和伺服器間保持會話串連狀態的機制。 訪問網站的來客會被分配一個唯一的標識符,即所謂的會話 ID。它要麼存放在用戶端的 cookie,要麼經由 URL 傳遞。 Session 的儲存方式預設是以檔案的形式存放在本地的一個硬碟目錄中,所以當Session比較多時,磁碟讀取檔案會比較慢。還有一點就是對於大網站,它無法實現多台伺服器會話的共用。 一個解決方案是用資料庫來存取 Session
Time of Update: 2016-11-08
1、什麼是MemCached?memcache是一個高效能的分布式的記憶體對象緩衝系統,它能夠用來儲存各種格式的資料,包括映像、視頻、檔案以及資料庫檢索的結果等。使用Memcache的網站一般流量都是比較大的,為了緩解資料庫的壓力,讓Memcache作為一個快取區域,把部分資訊儲存在記憶體中,在前端能夠迅速的進行存取。2、Memcache在Windows平台的安裝(1)下載 memcached
Time of Update: 2016-11-08
* 基本圖片處理,用於完成圖片縮入,浮水印添加* 當浮水印圖超過靶心圖表片尺寸時,浮水印圖能自動適應靶心圖表片而縮小* 浮水印圖可以設定跟背景的合并度setSrcImg("img/test1.jpg");$t->setDstImg("tmp/new_test1.jpg");$t->setDstImgBorder(4,"#dddddd");// 指定縮放比例$t->createImg(300,200);?>setSrcImg("img/test2.gif");$t->setDstImg("tmp/
Time of Update: 2016-11-08
分析:1、確認gb庫是否正確安裝?沒有報這個方法不存在。2、imagettftext()必須utf-8編碼,php的整個項目都是utf-8編碼,所以不用太多考慮。如果不是,可以mb_convert_encoding()轉換;3、檢查字型是否載入正確,寫死了字型路徑,而且換了多個字型(常用的中文字型檔是simsun.ttc和simhei.ttf),還是不行,確認應該不是字型的問題。然後看到網上有人說:請檢查你在編譯gd庫時是否添加了–enable-gd-jis-conv選項,此選項是為了讓gd庫支
Time of Update: 2016-11-08
有時候,你可能有這樣的需求,就是提交表單的時候,不想重新整理本頁面。但你又不想用Ajax,有什麼方法呢?這時可以在頁面中用和實現。原理大概是這樣實現的。 大家注意到這個form的target的了嗎?這個target屬性的值frameFile,是form之後的iframe的name值,這樣的寫法是讓當前的form表單在提交表單內容的時候轉交給iframe中進行頁面中表單處理,並且不會產生當前頁面跳轉!
Time of Update: 2016-11-08
apaceh 配置: ServerAdmin xxx@qq.com DocumentRoot "C:/htdocs/demo" ServerName dev.dd.cn ##ErrorLog "logs/dummy-host.localhost-error.log" ##CustomLog "logs/dummy-host.localhost-access.log" combined #Require all denied
Time of Update: 2016-11-08
資料庫用 oracle,當 PHP串連 Oracle 的時候,如果指定字元集,會出現中文亂碼。查PHP手冊,oci_pconnect 的第四個參數為 charset,只需設定這參數即可。首先擷取 Oracle 的字元集,運行“SELECT * FROM V$NLS_PARAMETERS;”,變數NLS_CHARACTERSET對應的就是我們需要的字元集,比如我這裡就是 “AL32UTF8”。所以,最終的PHP代碼為:$conn = oci_pconnect('scott',
Time of Update: 2016-11-08
對於thinkPHP3.2.0版本: 載入模組 $_GET['m'] = '模組名'; 例如:$_GET['m'] = 'Admin';為載入Admin模組(後台模組) 載入模組下的控制器 $_GET['c'] = '控制器名'; 例如:$_GET['c'] = 'Admin';為載入Admin模組下的AdminController控制器 對於thinkPHP3.2.1
Time of Update: 2016-11-08
PHP教程-php讀取輸出其他檔案方法 人們往往想到出現一些關於訪問很緩慢,有白頁現象,要是測試環境你也就重啟一下PHP的php-fpm進程發現又好了,隔一段時間又出類似的問題,本期我們邀請到了 兄弟連PHP教育www.lampbrother.net的PHP大牛為大家分享,php讀取輸出其他檔案方法,感謝鐵成為我們帶來這次暢快的體驗,小夥伴們,準備好這次技術之旅了嗎? ob_start(); iconv('utf-8','gb2312',readfile('
Time of Update: 2016-11-08
PHP MVC架構核心類 現在我們舉幾個核心架構的例子示範:在framework/core下建立一個Framework.class.php的檔案。寫入以下代碼: // framework/core/Framework.class.php class Framework { public static function run() { echo "run()"; }
Time of Update: 2016-11-08
$TOC$ #### 叨叨幾句 本來這個問題是在oschina上提出的: 但一直沒收到合適的答案,所以還是自己下功夫梳理了一下,如果有錯誤的地方,歡迎交流。 通常的函數是通過ZEND_FUNCTION(xxx) 這種宏定義來實現的,這個規範很好理解,也很容易讀懂源碼。 但empty(), isset()的處理比較特殊,類似的還有echo, eval等。 #### 準備工作 用於查看PHP opcode的擴充vld,下載: PHP源碼,分支 => remotes/origin/PHP-5.
Time of Update: 2016-11-08
10個 問題 問題 :1 MySQL裡的儲存引擎有什麼不同,哪一個是預設的? 答案: 1 我們可以一下儲存引擎: 1. MyISAM(MySQL的預設引擎。 每個MyISAM表是分為三個檔案儲存體在硬碟上的。檔案名稱是以表明開始並且有一個擴充檔案名稱來指示檔案的類型。 .frm 檔案用來儲存表的格式。 The data file has an資料檔案被儲存在 .MYD (MYData) 檔案中。 索引檔案的尾碼是.MYI。) 2.
Time of Update: 2016-11-08
本篇是繼上一篇 [PHP實現投鏢求PI法,最笨但最有意思](http://www.yinqisen.cn/blog-676.html) 講完最笨的,再說一個更精巧的方法,代碼如下: ~~~.php // pi = 2 + 2/3 + 2/3*2/5 + 2/3*2/5*2/7 + ... $pi = (double)2.0; $z = (double)2.0; $a = 1; $b = 3; while ($z > 0.0000000000001) { $z *= $a / $b;
Time of Update: 2016-11-07
隨機產生痛點是在於如何避免碰撞,有人說用md5,GUID這些機制啊,當然可以,但是做為帳號,看著有亂,而且產生位元也過長。 本方法只需要解決1秒內的並發碰撞就可以,因為固定頭部採用的是unixtime時間,精確到秒,超過1秒,這個頭部的時間肯定變化了。同時本方法也可以使用者隨機訂單編號的產生。 測試條件是用迴圈建立1萬個隨機帳號(毫秒級),0碰撞,10萬個大約有0-3個碰撞。應該沒有哪個互連網公司會在瞬間同時建立這麼多帳號,所以足夠應付數十億PV這麼大的規模了。 ~~~.java //
Time of Update: 2016-11-07
前置條件在開始前,請作如下準備 1.學會用PHP輸出“Hello World” 2.去 彙總資料 申請證件識別專用的KEY操作步驟1.配置好PHP開發環境 2.在相應的以磁碟為基礎的網站根目錄下建立一個檔案夾並命名為:card 3.請準備一張jpg格式的身份證照片(本樣本中的圖片來自網路),並命名為1.jpg,放在card目錄 4.請務必確保PHP對1.jpg有讀許可權(先用fopen(‘1.jpg’, ‘r’)測試一下) 5.在card目錄建立一個index.php檔案,並輸入以下內容: *
Time of Update: 2016-11-09
有時候模版裡面定義需要寫很長的全路徑類名,此處提供一個 簡易的別名調用代碼來規避此問題,缺點就是IDE 代碼提示功能就沒有了 * // 初始化 * ZGFacade::setZGFacade('form', 'Aert_Form'); * ZGFacade::setZGFacade('esClient', '\Elasticsearch\Client'); * * // 使用demo * $form =