Time of Update: 2016-07-21
php的內建函數exec,system都可以調用系統命令(shell命令),當然還有passthru,escapeshellcmd等函數。 在很多時候利用php的exec,system等函數調用系統命令可以協助我們更好更快的完成工作。比如前二天筆者在批量處理.rar檔案時exec就幫我了大忙了。 今天整理一下常用的調用系統函數發出來和大家分享經驗。 注意:要想使用這二個函數php.ini中的安全模式必須關閉,要不然為了安全起見php是不讓調用系統命令的。 先看一下php手冊對這二個函數的解釋:
Time of Update: 2016-07-21
.htpasswd 檔案樣本: user1:{SHA}kGPaD671VNU0OU5lqLiN/h6Q6ac= user2:{SHA}npMqPEX3kPQTo+x/+ZckHDrIcQI= user3:{SHA}q1Fh2LTUjjkncp11m0M9WUH5Zrw= 複製代碼 代碼如下: class Htpasswd { private $file = ''; private $salt = 'AynlJ2H.74VEfI^BZElc-Vb6G0ezE9a55-Wj'; private
Time of Update: 2016-07-21
1.不要使用相對路徑 常常會看到: require_once('../../lib/some_class.php'); 該方法有很多缺點: 它首先尋找指定的php包含路徑, 然後尋找目前的目錄. 因此會檢查過多重路徑. 如果該指令碼被另一目錄的指令碼包含, 它的基本目錄變成了另一指令碼所在的目錄. 另一問題, 當定時任務運行該指令碼, 它的上級目錄可能就不是工作目錄了. 因此最佳選擇是使用絕對路徑: define('ROOT' , '/var/www/project/');
Time of Update: 2016-07-21
在自然語言中,我們理解抽象的概念是,一個物體的一種大的描述,這種描述對某類物體來說是共有的特性。那麼在PHP中也是一樣的,我們把一個類進行抽象,可以指明類的一般行為,這個類應該是一個模板,它指示它的子方法必須要實現的一些行為。 PHP抽象類別應用的定義: abstract class ClassName{ } PHP抽象類別應用要點: 1.定義一些方法,子類必須完全實現這個抽象中所有的方法 2.不能從抽象類別建立對象,它的意義在於被擴充
Time of Update: 2016-07-21
首先我們介紹使用自己的資料庫查詢多個手機號碼,那還是建議你擁有一個自己的的手機號碼資料庫。正常情況下,只是滿足一般查詢的話,你不需要去購買專業版的手機號碼資料庫,增加無謂成本。我免費為你提供一個ACCESS資料庫,包含17萬多條資料,常用的130-139、150-159以及180-189開頭手機號碼段都在其中,你可以藉助資料庫工具輕鬆地將它轉換成MYSQL或其它版本資料庫
Time of Update: 2016-07-21
1.使用者訪問伺服器時,利用PHP的超級全域變數$_SERVER數組中欄位['HTTP_USER_AGENT'] 擷取訪問使用者的所有資訊我訪問時的$_SERVER['HTTP_USER_AGENT'] 字串 :Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.3 Safari/533.22.利用Regex匹配以上字串,使用者的瀏覽器
Time of Update: 2016-07-21
所以自己簡單寫了幾行代碼用來實現以上需求 執行結果: 複製代碼 代碼如下: $conn=mysql_connect('localhost','root',''); mysql_select_db('資料庫',$conn); $sql="SELECT information_schema.TABLES.TABLE_NAME FROM information_schema. TABLES WHERE table_schema = '資料庫'"; $res=mysql_query($sql);
Time of Update: 2016-07-21
開發人員、資料庫結構描述師和系統管理員在部署PHP應用程式到伺服器之前都應該採取預防措施。大部分預防措施可以通過幾行代碼或者把應用程式設定稍作調整即可完成。 #1:管理安裝指令碼 如果開發人員已經安裝了一套第三方應用程式的PHP指令碼,該指令碼用於安裝整個應用程式的工作群組件,並提供一個存取點。大多數第三方軟體包都建議在安裝後,刪除該目錄包含的安裝指令碼。但開發人員希望保留安裝指令碼,他們可以建立一個.htaccess檔案來控制管理訪問目錄。 AuthType Basic
Time of Update: 2016-07-21
寫過PHP+MySQL的程式員都知道有時間差,UNIX時間戳記和格式化日期是我們常打交道的兩個時間表示形式,Unix時間戳記儲存、處理方便,但是不直觀,格式化日期直觀,但是處理起來不如Unix時間戳記那麼自如,所以有的時候需要互相轉換,下面給出互相轉換的幾種轉換方式。 一、在MySQL中完成 這種方式在MySQL查詢語句中轉換,優點是不佔用PHP解析器的解析時間,速度快,缺點是只能用在資料庫查詢中,有局限性。 1. UNIX時間戳記轉換為日期用函數: FROM_UNIXTIME()
Time of Update: 2016-07-21
reg.php 複製代碼 代碼如下: 註冊頁面 error_reporting(0); //不讓PHP報告有錯語發生。如果不關閉好有類似這的錯語 Warning: preg_match() 關閉就不出現了 session_start(); header("Cache-control: private"); $conn = @ mysql_connect("localhost","root","")or die("資料庫連接錯誤"); mysql_select_db("bbs"
Time of Update: 2016-07-21
複製代碼 代碼如下: $url='http://www.jb51.net'; //這個網頁裡絕對含有郵件地址。 $content=file_get_contents($url); //echo $content; function getEmail($str) { //$pattern = "/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i";
Time of Update: 2016-07-21
思路: 1)將長網址md5產生32位簽名串,分為4段, 每段8個位元組; 2)對這四段迴圈處理, 取8個位元組, 將他看成16進位串與0x3fffffff(30位1)與操作, 即超過30位的忽略處理; 3)這30位分成6段, 每5位的數字作為字母表的索引取得特定字元, 依次進行獲得6位字串; 4)總的md5串可以獲得4個6位串; 取裡面的任意一個就可作為這個長url的短url地址; 下面是PHP代碼: 複製代碼 代碼如下: function shorturl($url='', $prefix='
Time of Update: 2016-07-21
GBK簡體字元集的編碼是同時用1個位元組和2個位元組來表示的。當高位是0x00~0x7f時,為一個位元組,高位為0x80以上時用2個位元組表示" 注:括弧裡面都是2進位 當你發現一個位元組的內容大於0x7f,那它肯定是個(跟另外一個位元組拼湊成一個)漢字,如何判斷肯定大於0x7f呢? 0x7f(1111111)後面一個數就是0x80(10000000),所以想要大於0x7f,這個位元組的最高位都肯定是1,我們只需要判斷這個最高位是否為1就行了。 判斷方法: 位與(相同的位都是1的才為1,否則為0
Time of Update: 2016-07-21
核心代碼: 複製代碼 代碼如下: /* * 計算星座的函數 string get_zodiac_sign(string month, string day) * 輸入:月份,日期 * 輸出:星座名稱或者錯誤資訊 */ function get_zodiac_sign($month, $day) { // 檢查參數有效性 if ($month 12 || $day 31) return (false); // 星座名稱以及開始日期 $signs = array( array( "20" =>
Time of Update: 2016-07-21
我將這個分享出來,如果以後有誰需要可以直接下載下面外掛程式 使用方法: 在cnblogs選擇備份資料,匯出一個XML到本地; 下載附件中的外掛程式,安裝至\wp-content\plugins目錄; 後台開啟外掛程式後,可以在“工具”中找到“Cnblogs資料轉換”,進入; 選擇剛才下載的XML檔案,上傳後系統會自動將資料轉換並匯入到wordpress中 備忘: 這個外掛程式只是單純將部落格園日誌、隨筆、文章匯入到wordpress中,不會匯入評論相簿資料,因為cnblogs不提供這類資料備份
Time of Update: 2016-07-21
php代碼如下: 複製代碼 代碼如下: header("Content-type:text/html ; charset=utf-8"); if (!empty($_POST['submit'])){ $url = $_POST['url']; //為了擷取相對路徑的圖片所做的操作 $url_fields = parse_url($url); $main_url = $url_fields['host']; $base_url = substr($url,0,strrpos($url, '/')
Time of Update: 2016-07-21
對象的主要三個特性 對象的行為:可以對 對象施加那些操作,開燈,關燈就是行為。 對象的形態:當施加那些方法是對象如何響應,顏色,尺寸,外型。 對象的表示:對象的表示就相當於身份證,具體區分在相同的行為與狀態下有什麼不同。 物件導向模型 物件導向的概念: oop(物件導向的編程)它能是其代碼更加簡潔易於維護並且具有更強的可重性 什麼是類:
Time of Update: 2016-07-21
複製代碼 代碼如下: class Foo { private $name = 'hdj'; public function getName(){ return $this->name; } } class Bar extends Foo { public $name = 'deeka'; } $bar = new Bar; var_dump($bar->name); var_dump($bar->getName()); 存取控制 對屬性或方法的存取控制,是通過在前面添加關鍵字
Time of Update: 2016-07-21
我看過phpcms、discuz的源碼,所以可能就缺乏創新了,不過原理大都相通,只是細節處理可能稍微不同。 說正題,下面開始談談具體實現過程了。 1.首先要想好模板檔案放在哪?轉換後的php檔案放哪?還有怎麼命名?直接上源碼: 複製代碼 代碼如下: function template($tpl = 'index',$dir = 'hello') { if(!file_exists($pd = TPL_PATH.$dir.'/'))@mkdir($pd,0777) or
Time of Update: 2016-07-21
1. 數組執行個體1:1).預覽:2).代碼:以下是一個二維數組, 實際用的比較多. $mess = array('title'=>'留言標題1','content'=>'內容','ctime'=>'2012-1-1 12:34:23'); //關聯陣列//遍曆數組的語句//第一種foreach($mess as $v){ //foreach可以遍曆關聯陣列; 而for迴圈只能遍曆枚舉數組, 不能遍曆關聯陣列. //$v是接收數組元素的值, 迴圈體迴圈次數由數組元素決定 echo $