Time of Update: 2016-07-13
自 php 4.1.0 起,取得外部變數的首選方法是用下面提及的超全域變數。在此之前,人們要麼依賴 register_globals,要麼就是長長的預定義 PHP 數組($HTTP_*_VARS)。自 PHP 5.0.0 起,長格式的 PHP 預定義變數可以通過設定 register_long_arrays 來屏蔽。伺服器變數:$_SERVER注: 在 PHP 4.1.0 及以後版本使用。之前的版本,使用 $HTTP_SERVER_VARS。$_SERVER 是一個包含諸如頭資訊(header)
Time of Update: 2016-07-13
php四種基礎演算法:冒泡,選擇,插入和快速排序法許多人都說 演算法是程式的核心,一個程式的好於差,關鍵是這個程式演算法的優劣。作為一個初級phper,雖然很少接觸到演算法方面的東西 。但是對於冒泡排序,插入排序,選擇排序,快速排序四種基本演算法,我想還是要掌握的。下面是我按自己的理解,將四個方法分析一遍。需求:分別用 冒泡排序法,快速排序法,選擇排序法,插入排序法將下面數組中 的值按照從小到的順序進行排序。 $arr(1,43,54,62,21,66,32,78,36,76,39);1.
Time of Update: 2016-07-13
複製代碼 代碼如下:class Page { // 分頁欄每頁顯示的頁數 public $rollPage = 6; // 頁數跳轉時要帶的參數 public $parameter ; // 預設列表每頁顯示行數 public $listRows = 20; // 起始行數 public $firstRow ; // 分頁總頁面數 protected $totalPages ; // 總行數 protected
Time of Update: 2016-07-13
負載瓶頸 一般主要在以下四個方面:1 資料庫2 伺服器CPU3 硬碟 I/O4 網路頻寬除了這四個。還有什麼值得我們最佳化的呢。php真很強。今天就說下在PHP的 指令碼級上來調整PHP的效能。如果你想在單台伺服器 上提高PHP的效能。我們可以使用“編譯緩衝”。 編譯cache 不單能提高效能而且會隨著PHP程式的容量和代碼複雜性的增加 伺服器的效能也增加。什麼是編譯cache呢。等下告訴你。我們先說下PHP編譯指令檔所要做的兩步吧:1
Time of Update: 2016-07-13
1. VC6與VC9的區別:VC6版本是使用Visual Studio 6編譯器編譯的,如果你的PHP是用Apache來架設的,那你就選擇VC6版本。VC9版本是使用Visual Studio 2008編譯器編譯的,如果你的PHP是用IIS來架設的,那你就選擇 VC9版本。VC9版本是針對IIS伺服器的版本,沒有對APACHE的支援,而VC6版本對IIS和apache都提供了支援 2.Ts與nts的區別:Windows版的PHP從版本5.2.1開始有Thread Safe和NoneThread
Time of Update: 2016-07-13
在指南的開始,我們說過資料過濾在任何語言、任何平台上都是WEB應用安全的基石。這包含檢驗輸入到應用的資料以及從應用輸出的資料,而一個好的軟體設計可以協助開發人員做到:確保資料過濾無法被繞過,確保不合法的資訊不會影響合法的資訊,並且識別資料的來源。關於如何確保資料過濾無法被繞過有各種各樣的觀點,而其中的兩種觀點比其他更加通用並可提供更進階別的保障。調度方法這種方法是用一個單一的 php 指令碼調度(通過
Time of Update: 2016-07-13
官方解釋curl是一個利用URL文法在命令列方式下工作的檔案傳輸工具。curl是一個利用URL文法在命令列方式下工作的檔案傳輸工具。它支援很多協議:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同樣支援HTTPS認證,HTTP POST方法, HTTP PUT方法, FTP上傳, kerberos認證, HTTP上傳, Proxy 伺服器, cookies, 使用者名稱/密碼認證,
Time of Update: 2016-07-13
需要在先運行wamp,然後雙擊zend安裝軟體,一直下一步到這一步主要是選擇伺服器類型,我試過了,選擇other Web server也可以的。然後要注意的幾步。找到php.ini的目錄找到appache的目錄,即web server的根目錄。這一步要注意,一定要先停掉,wamp的所有服務,再點擊確定。同上,先開啟所有服務,再點擊確定。到此,zend
Time of Update: 2016-07-13
伺服器端:複製代碼 代碼如下:set_time_limit(10);//* 設定不顯示任何錯誤 *///error_reporting(0);function varinfo($str) {echo "";var_dump($str);echo "";}$commonProtocol = getprotobyname("tcp");$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);if ($socket)
Time of Update: 2016-07-13
header() 函數向用戶端發送原始的 HTTP 前序。複製代碼 代碼如下://200 正常狀態header('HTTP/1.1 200 OK');// 301 永久重新導向,記得在後面要加重新導向地址 Location:$urlheader('HTTP/1.1 301 Moved Permanently');// 重新導向,其實就是302 暫時重新導向header('Location: http://www.maiyoule.com/');// 設定頁面304
Time of Update: 2016-07-13
在實際項目或者自己編寫小工具(比如新聞彙總,商品價格監控,比價)的過程中, 通常需要從第3方網站或者API介面擷取資料, 在需要處理1個URL隊列時, 為了提高效能, 可以採用cURL提供的curl_multi_*族函數實現簡單的並發。本文將探討兩種具體的實現方法, 並對不同的方法做簡單的效能對比.1. 經典cURL並發機制及其存在的問題經典的cURL實現機制在網上很容易找到, 比如參考PHP線上手冊的如下實現方式:複製代碼
Time of Update: 2016-07-13
PHP中對於URL進行編碼,可以使用 urlencode() 或者 rawurlencode(),二者的區別是前者把空格編碼為 '+',而後者把空格編碼為 '%20',不過應該注意的是,在編碼時應該只對部分URL編碼,否則URL中的冒號和反斜線也會被轉義。下面是詳細解釋: 複製代碼 代碼如下: string urlencode( string str) 返回字串,此字串中除了 -_. 之外的所有非字母數字字元都將被替換成百分比符號(%)後跟兩位十六進位數,空格則編碼為加號(+)。 例子 1 :
Time of Update: 2016-07-13
DataTable匯出Execl代碼太簡單,我們直接看代碼。複製代碼 代碼如下: protected void btnPrint_Click(object sender, EventArgs e) { string strPath = "MFOut" + DateTime.Now.ToString("yyyymmddhhmmssfff") + ".xls"; DataGrid dg = new DataGrid();
Time of Update: 2016-07-13
查看 POP3/SMTP 協議的時候想嘗試一下自己寫一個操作類,核心沒啥,就是使用 fsockopen ,然後寫入/接收資料,只實現了最核心的部分功能,當作是學習 Socket 操作的練手。其中參考了 RFC 2449和一個國外的簡單Web郵件系統 Uebimiau 的部分代碼,不過絕對沒有抄他滴,HOHO,絕對原創。複製代碼 代碼如下:class SocketPOPClient { var $strMessage = ''; var $intErrorNum
Time of Update: 2016-07-13
起因: 在一個項目中,接到使用者反饋說其所有客戶不能上傳檔案,都返回失敗。經過排查發現是PHP中的is_uploaded_file函數在搗鬼。 細節分析: 在正常情況下,通過PHP 上傳檔案 ,需要通過is_uploaded_file函數來判斷檔案是否是通過 HTTP POST 上傳的,這可以用來確保惡意的使用者無法欺騙指令碼去訪問本不能訪問的檔案,例如 /etc/passwd。 而本次遇到的問題是本來應該是C:/WINDOWS/Temp/php99.tmp這樣的tmp_name,卻變成了C:/
Time of Update: 2016-07-13
在web開發中對象的序列化與還原序列化經常使用,比較主流的有json格式與xml格式的序列化與還原序列化,今天想寫個jsop的小demo,結果發現不會使用php序列化,查了一下資料,做個筆記簡單數組json格式序列化/還原序列化php提供了json_encode和json_decode函數對對象進行json格式序列化/還原序列化操作$data=array('Name'=>'Byron','Age'=>24,'Sex'=>'Male','Friends'=>array('Casper','Fran
Time of Update: 2016-07-13
首先我們先來瞭解下Ucenter登入步驟 1、使用者登入discuz,通過logging.php檔案中的函數uc_user_login對post過來的資料進行驗證,也就是對username和password進行驗證。 2、如果驗證成功,將調用位於uc_client下client.php檔案中的函數uc_user_synlogin,在這個函數中調用 uc_api_post('user', 'synlogin', array('uid'=>$uid))。
Time of Update: 2016-07-13
當轉換為 boolean 時,以下值被認為是 FALSE: the 布爾值 FALSE 自身 the 整型值 0 (零) the 浮點型值 0.0 (零) 空 字串, 以及 字串 "0" 不包括任何元素的數組 不包括任何成員變數的對象(僅PHP 4.0 適用) 特殊類型 NULL (包括尚未設定的變數) 從沒有任何標記(tags)的XML文檔產生的SimpleXML 對象 所有其它值都被認為是 TRUE(包括任何資源)。 Warning -1 和其它非零值(不論正負)一樣,被認為是 TRUE!
Time of Update: 2016-07-13
1、對於數組 $a=array(1,2,3,6); $b=array(1,2,3,6,8); echo "\n"; var_dump( $a>$b); var_dump( $a==$b); var_dump( $a結果: boolean false boolean false boolean true ps:具有較少成員的數組較小 $a=array(1,2,3,6,9); $b=array(1,2,3,6,8); echo "\n"; var_dump( $a>$b); var_dump(
Time of Update: 2016-07-13
複製代碼 代碼如下:mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )是執行一個Regex的搜尋和替換的用函數,平時我們用它時多是一次替換結束,今天又看php手冊發現了一個較為難理解(自認為)的例子分享給大家。複製代碼 代碼如下: $subject = array('1', 'a', '2', 'b', '3', 'A',