Time of Update: 2017-01-13
這裡拿cve-2016-5734講講preg_replace引發的命令執行漏洞,漏洞在exploit-db上有利用指令碼,經過測試沒有問題。這裡對這個漏洞進行一下回溯跟蹤來解釋下preg_replace這個正則替換函數帶來的問題。0x01 漏洞觸發原理preg_replace漏洞觸發有兩個前提:01:第一個參數需要e標識符,有了它可以執行第二個參數的命令02:第一個參數需要在第三個參數中的中有匹配,不然echo會返回第三個參數而不執行命令,舉個例子://echo
Time of Update: 2017-01-13
短網址的實現原理就是有一個資料表會設定檔將短網址和實際網址進行對應,當請求某個短網址時,程式跳轉到對應的實際網址上去,從而實現網址的訪問。方案1:PHP+MySQl實現短網址的產生和讀取常規的方案我們將產生好的短網址和原網址對應到一張資料表中,然後供讀取使用。我們先來看如何產生唯一的短網址。//產生短網址 function code62($x){ $show=''; while($x>0){
Time of Update: 2017-01-13
PHP 7 改變了大多數錯誤的報告方式。不同於傳統(PHP 5)的錯誤報表機制,現在大多數錯誤被作為 Error 異常拋出。這種 Error 異常可以像 Exception 異常一樣被第一個匹配的 try / catch 塊所捕獲。如果沒有匹配的 catch 塊,則調用異常處理函數(事先通過 set_exception_handler() 註冊)進行處理。 如果尚未註冊異常處理函數,則按照傳統方式處理:被報告為一個致命錯誤(Fatal Error)。Error 類並非繼承自 Exception
Time of Update: 2017-01-13
Windows下PHP PEAR安裝:(1)下載go-pear.phpar到PHP安裝目錄 官方下載:http://pear.php.net/go-pear.phar(2)PEAR安裝流程①執行php go-pear.phar 請選擇local,因為system可能沒有寫入許可權,然後選擇yes②選擇同意修改php.ini③安裝php擴充④進入下載目錄,引入php擴充即可使用。Linux下安裝PEAR①.下載pear包: wget
Time of Update: 2017-01-13
通常有一下三種: 代碼如下 複製代碼 Location: xxxx:yyyy/zzzz Content-Type: xxxx/yyyy Status: nnn xxxxxx 常用執行個體1.實現重新導向(狀態代碼302)
Time of Update: 2017-01-13
舉例說明:在Windows環境下:原本在php4.3.0中運行正常的程式,在4.3.1中為何多處報錯,大體提示為:Notice:Undefined varialbe:變數名稱.例如有如下的代碼: 代碼如下複製代碼 if (!$tmp_i) {$tmp_i=10;} 在4.3.0中運行正常,在4.3.1中運行會提示Notice:Undefined
Time of Update: 2017-01-13
而基於HTTP的上傳,相對來說易用性和安全性上就比FTP要增強了很多. 可以應用的上傳方式有PUT, WEBDAV, 和RFC1867三種, 本文將分析在PHP中,是如何基於RFC1867實現檔案上傳的.RFC1867RCF1867是Form-based File Upload in HTML標準協議, RFC1867標準對HTML做出了兩處修改:1 為input元素的type屬性增加了一個file選項。2 input標記可以具有accept屬性,該屬效能夠指定可被上傳的檔案類型或檔案格式列表。
Time of Update: 2017-01-13
PHP錯誤提示“Undefined variable”:變數未定義,如果你在php.ini設定中屏蔽了Notice這個等級的提示那麼他就不會顯示任何提示了,但是為了程式的嚴謹性考慮,我們盡量避免任何警告、錯誤等明顯的程式缺陷。例一:class.Chinese.php中以下代碼就會出錯“Undefined variable”: 代碼如下複製代碼 for ( $i=0; $i<strlen($hexdata); $i+=2 )
Time of Update: 2017-01-13
堆排序 堆排序是利用堆的性質進行的一種選擇排序。下面先討論一下堆。1.堆 堆實際上是一棵完全二叉樹,其任何一非分葉節點滿足性質: Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或者Key[i]>=Key[2i+1]&&key>=key[2i+2] 即任何一非分葉節點的關鍵字不大於或者不小於其左右孩子節點的關鍵字。
Time of Update: 2017-01-13
當有人想要實現並發功能時,他們通常會想到用fork或者spawn threads,但是當他們發現php不支援多線程的時候,大概會轉換思路去用一些不夠好的語言,比如perl。其實的是大多數情況下,你大可不必使用 fork 或者線程,並且你會得到比用 fork 或 thread 更好的效能。假設你要建立一個服務來檢查正在啟動並執行n台伺服器,以確定他們還在正常運轉。你可能會寫下面這樣的代碼: 代碼如下複製代碼 <?php$hosts = array("host1.
Time of Update: 2017-01-13
字元組合 代碼如下複製代碼 for($k=2;$k<5;$k++){ if(!empty(${'pfile'.$k})) { echo ${'pfile'.$k};}//那麼相當於輸出的是$pfile2,$pfile3.......}} implode() 函數把數組元素組合為一個字串。注釋:implode() 可以接收兩種參數順序。但是由於曆史原因,explode() 是不行的。你必須保證 separator 參數在 string 參數之前才行。
Time of Update: 2017-01-13
PHP中的CURL函數庫(Client URL Library Function)curl_close — 關閉一個curl會話curl_copy_handle — 拷貝一個curl串連資源的所有內容和參數curl_errno — 返回一個包含當前會話錯誤資訊的數字編號curl_error — 返回一個包含當前會話錯誤資訊的字串curl_exec — 執行一個curl會話curl_getinfo —
Time of Update: 2017-01-13
一句話,錯在用對象作為數組的鍵。比如說,以下代碼就會引發這個warning: 代碼如下複製代碼 $arr = array(); class a { } $o = new a; echo $arr[$o]; 具體說來,我是在做Yii多語言網站的時候觸發這個warning的,我寫了一句: 代碼如下複製代碼
Time of Update: 2017-01-13
cURL簡介cURL是一個利用URL文法規定來傳輸資料和檔案的工具,支援很多種協議如HTTP、FTP、TELNET等。PHP也支援 cURL 庫。假如我們要擷取某個網頁的內容,我們可能會使用下面這幾種方法: 代碼如下複製代碼 <?php// 把整個檔案讀入一個字串中$str = file_get_contents("http://www.111cn.net");// 把整個檔案讀入一個數組中$arr = file("http://www.1
Time of Update: 2017-01-13
代碼如下複製代碼 function multi_array_sort($multi_array,$sort_key,$sort=sort_asc){ if(is_array($multi_array)){ foreach ($multi_array as $row_array){
Time of Update: 2017-01-13
檔案使用權限設定許可權管理主要的命令有: chmod、chown、chgrp、umask1). 改變檔案或目錄的許可權chmod2). 改變檔案或目錄的所有者chown3). 改變檔案或目錄的所屬組chgrp4). 顯示、設定檔案與目錄的預設許可權umask我想要改改目錄許可權的初衷,是因為我想將這個伺服器配置更像虛擬機器主機一樣,因為我的運行環境是nginx+php-fpm,我將他們的運行使用者都設定為nginx,組設定為ftp,以我的名字建了ftp賬戶,使用者名稱為zhangcunchao,
Time of Update: 2017-01-13
引用我們講兩個一種是變數引用一種是檔案include引用,通過 include() 或 require() 函數,您可以在伺服器執行 php教程 檔案之前在該檔案中插入一個檔案的內容。除了它們處理錯誤的方式不同之外,這兩個函數在其他方面都是相同的。include() 函數會產生一個警告(但是指令碼會繼續執行),而 require() 函數會產生一個致命錯誤(fatal error)(在錯誤發生後指令碼會停止執行)。 <?php
Time of Update: 2017-01-13
Ueditor做為百度的可視化編輯器,受到了廣大使用者的追捧!而七牛雲儲存是專門為使用者提供附件儲存、快速上傳、附件安全的一個雲產品,很多公司不打算用鏡像儲存的方法來同步資料,而是想通過可視化編輯器,將圖片、附件等上傳到七牛雲端儲存,因為一個網站上主要是附件和圖片佔用資源多,對頻寬的耗損比較嚴重!Ueditor和七牛雲端儲存的結合實現了-圖片和附件直接上傳到七牛,圖片線上管理等功能~~IT分享ueditor七牛1、登入官方下載原始碼http://ueditor.baidu.com/website
Time of Update: 2017-01-13
導讀: 大寫Y表示年四位元字,而小寫y表示年的兩位元字; 小寫m表示月份的數字(帶前置),而小寫n則表示不帶前置的月份數字。 echo date(''Y-M-j''); 2007-Feb-6 echo date(''Y-m-d''); 2007-02-06 大寫M表示月份的3個縮寫字元,而小寫m則表示月份的數字(帶前置0); 沒有大寫的J,只有小寫j表示月份的日期,無前置o;若需要月份帶前置則使用小寫d。 echo date(''Y-M-j''); 200
Time of Update: 2017-01-13
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta