PHP執行個體剖析:計數器 作者:Sucre_tiger 本款計數器用文本計數,沒有用到資料庫,可以實現如下功能: 利用一個文字檔實現多個頁的計數減少伺服器的I/O佔用率在需要紀錄的檔案裡,只需加入很少的幾行代碼 基本思路如下: 伺服器程式從文字檔中讀取該頁被瀏覽的次數,(因為所有檔案向伺服器提出請求時,他們的環境變數REQUEST_URI都代表他來自於何處...
/*來源:phpwind.net*/ Class DB { var $query_num = 0; function DB($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0) { $this->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect); } function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0) {
之所以翻譯這篇文章,是因為目前關於CGI安全性的文章都是拿Perl作為例子,而專門介紹ASP,PHP或者JSP安全性的文章則很少。Shaun Clowes的這篇文章比較全面地介紹了PHP的安全問題,原文可以在http: //www.securereality.com.au/studyinscarlet.txt找到。 由於原文比較長,而且有相當一部分是介紹文章的背景或PHP的基礎知識,沒有涉及到PHP安全方面的內容,因此我沒有翻譯。如果你想瞭解這方面的知識,請參考原文。
今天仔細研究了下GD的一些相關技術,順手也研究下GD中文亂碼的問題。 使用GD庫輸出中文字串,調用imagestring是沒有用的。需要使用imagettftext()函數。imagettftext函數的具體使用就參考手冊啦。 下面給個使用執行個體: $pic=imagecreate(250,30); $black=imagecolorallocate($pic,0,0,0); $white=imagecolorallocate($pic,255,255,255); $font=
PHP操作檔案問答 前言: PHP中對各類資料庫的操作有著支援,對檔案的操作也同樣有著很豐富的操作方法,很多朋友現在的操作還是基於檔案操作可是有的時候在操作檔案的時候還存在不少的困惑和疑點,以下是我在日常編寫過程中碰到的以及壇上朋友所碰到的關於檔案操作的一些問題收藏吧。 問:如何建立一個檔案? 答: 1、使用fopen("要建立的檔案名稱","參數"),參數可選w,w+,a,a+ 2、使用exec("echo '' >
非常苦悶地發現,原來一直困擾的HKSCS問題PHP一直也支援。只不過名稱不叫HK-SCS,叫BIG5-HKSCS。 以下是HK增補字元集的解決方案: HTML頁面設為UTF-8, 寫入數據庫前先:iconv('big5-hkscs','utf8', $string) 需轉為UNICODE就用以下函數 function String2Unicode($data, $language) { $data = nl2br(trim($data)); $data =
本想學pear的,可是網上看到的幾篇文章對adodb的評價相當高,所以改學了這個。 ADODB的優點有這幾個(網上說的,不是我說的): 1、速度比pear快一倍; 2、支援的資料庫類型比pear多很多,甚至可以支援ACCESS; 3、無須安裝,無須伺服器支援(對新手來說,這點很重要吧) 不知道adodb是什麼或是想下載adodb的朋友可以去這個連結看看:http://www.phpe.net/class/106.shtml
一、Mysql安裝 Mysql在windows平台下的安裝是我們熟悉標準的安裝歡迎程式。 如不需要改變預設安裝目錄,一直點擊next即可完成安裝。 下面按照安裝順序解釋一下安裝過程中的選項。 1、預設是Typical,建議改成Custom 這一步需要選擇組件及變更檔夾位置,組件使用預設即可,選擇Change改變安裝目錄,注意:安裝mysql的路徑中,不能含有中文! 2、程式提示是否要在mysql.com上註冊,可以選擇跳過,即Skip Sign-Up。
ob_start(); ob_implicit_flush(0); function CheckCanGzip(){ global $HTTP_ACCEPT_ENCODING; if (headers_sent() || connection_timeout() || connection_aborted()){ return 0; } if (strpos($HTTP_ACCEPT_ENCODING, 'x-gzip') !== false) return "x-gzip";
因為pharmar用的是Mcafee的殺毒軟體,要求所有程式均要安裝於Program Files,所以這些檔案均放於D:\Program Files下便於管理。Mcafee寫防護規則時好運用。 Apache的安裝與配置 開啟apache官方網站 http://archive.apache.org/dist/httpd/binaries/win32/ 或者鏡像網站
幾乎所有的cgi程式都有這樣的 bug,只是具體的表現方式不一樣罷了。 一、涉及到的危險函數〔include(),require()和include_once(),require_once()〕 include() && require()語句:包括並運行指定檔案。 這兩種結構除了在如何處理失敗之外完全一樣。include() 產生一個警告而 require() 則導致一個致命錯誤。換句話說,如果你想在遇到丟失檔案時停止處理頁面就用 require()。include()
複製代碼 代碼如下: MSN 測試 # filename: fm.php # purpose: get MSN contact list # author: http://qartis.com/?qmsn modified by Druggo $username = $_POST['username']; $password = $_POST['password']; $debug = 0; $trid = 0; $proto = "MSNP10"; # start
經過複雜的判斷與算是的擷取IP地址函數 複製代碼 代碼如下: function getIP() { if (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CLIENT_IP'); } elseif (getenv('HTTP_X_FORWARDED_FOR')) { $ip = getenv('HTTP_X_FORWARDED_FOR'); } elseif (getenv('HTTP_X_FORWARDED')) { $ip = getenv('
1 SimpleXML 簡介 要處理XML 檔案,有兩種傳統的處理思路:SAX 和DOM。SAX 基於事件觸發機制, 對XML 檔案進行一次掃描,完成要進行的處理;DOM 則將整個XML 檔案構造為一棵DOM 樹,通過對DOM 樹的遍曆完成處理。這兩種方法各有優缺點,SAX 的處理思路相對抽象, DOM 的處理過程相對煩瑣,都不很適合新手的入門。 PHP5 推出了一套新的XML 處理函數,即SimpleXML。名如其實,SimpleXML 本身小
以下說一下使用方法: 在要使用表單功能的頁面的最上面輸入如下代碼 JHTML::_('behavior.formvalidation'); 然後把如下指令碼加入頁面上 複製代碼 代碼如下: 在form的位置修改代碼 複製代碼 代碼如下: 添加了以上代碼之後,在form中的input只要加入class="required",驗證功能就會生效。 joomla的驗證指令碼都用class實現,class的名稱決定使用什麼驗證方法。 最常用的class="required"意思為必填項 class=
php.ini 中預設的最長執行時間是 30 秒,這是由 php.ini 中的 max_execution_time 變數指定,倘若你有一個需要頗多時間才能完成的工作,例如要發送很多電子郵件給大量收件者,或者要進行繁重的資料分析工作,伺服器會在 30 秒後強行中止正在執行的程式,如何解決這個問題呢。 最簡單當然是修改 php.ini 中 max_execution_time 的數值,不過不是所有人都有權修改 php.ini,例如使用網頁寄存的開發人員,伺服器上的 php.ini
rsort()定義和用法 rsort() 函數對數組的元素按照索引值進行逆向排序。與 arsort() 的功能基本相同。 注釋:該函數為 array 中的單元賦予新的鍵名。這將刪除原有的鍵名而不僅是重新排序。 如果成功則返回 TRUE,否則返回 FALSE。 可選的第二個參數包含另外的排序標誌。 文法 rsort(array,sorttype)參數 描述 array 必需。輸入的數組。 sorttype 可選。規定如何排列數組的值。可能的值: SORT_REGULAR -
方法 bindParam() 和 bindValue() 非常相似。 唯一的區別就是前者使用一個PHP變數綁定參數,而後者使用一個值。 所以使用bindParam是第二個參數只能用變數名,而不能用變數值,而bindValue至可以使用具體值。 複製代碼 代碼如下: $stm = $pdo->prepare("select * from users where user = :user"); $user = "jack"; //正確 $stm->bindParam(":user",$user);
libcurl同時也支援HTTPS認證、HTTP POST、HTTP PUT、 FTP 上傳(這個也能通過PHP的FTP擴充完成)、HTTP 基於表單的上傳、代理、cookies和使用者名稱+密碼的認證。 php的curl真的是相當好用,網上一搜尋相關文章都是關於curl類比登陸的,很少人提供類比discuz發貼的源碼。 複製代碼 代碼如下: $discuz_url = 'http://127.0.0.1/discuz/';//論壇地址 $login_url = $discuz_url
今天分享一個“利用Ajax技術來檢測使用者名稱是否存在”的例子。 利用Ajax技術來檢測使用者名稱是否存在的原理流程圖: 最終結果: 複製代碼 代碼如下: Ajax檢測使用者名稱 代碼解釋: ①實現該功能的核心代碼在ajax.js,需要另外引進 ②給form命名,因為後面我們需要利用JS來取得input框中的value ③給input框添加一個“onblur”事件,即當“焦點”失去時觸發該事件(即流程圖的“觸發控制項”)