Time of Update: 2017-02-27
當然,到這裡並未結束。畢竟,如果可以在一個頁面上建立多個表單,為何不能建立跨多頁面的表單呢? 不幸的是,用 HTTP從一頁面傳送資料到另一頁面並不輕鬆。因為在 HTTP協議中沒有內建機制以定義系列頁面的概念。不過,僅需通過一些靈巧的技巧,以及PHP
Time of Update: 2017-02-27
關注安全問題的重要性看到的遠非全部阻止使用者惡意破壞你的程式最有效卻經常被忽略的方法是在寫代碼時就考慮它的可能性。留意代碼中可能的安全問題是很重要的。考慮下邊的旨在簡化用PHP中寫入大量文字檔的過程的執行個體函數:<?phpfunction write_text($filename, $text="") {static $open_files = array();// 如果檔案名稱空,關閉全部檔案if ($filename == NULL)
Time of Update: 2017-02-27
smarty的一個強大的優點是在模板裡可以直接使用smarty的預保留變數,省去了很多代碼,非常的方便。以下是訪問頁面請求變數諸如get,post,cookies,server,enviroment和session變數的例子. 例如{$smarty.server.SERVER_NAME}取得伺服器變數,{$smarty.env.PATH}取得系統內容變數path,
Time of Update: 2017-02-27
CODE:header("Content-Type: text/html; charset=utf-8");class Google_API_translator{public $opts = array("text" => "", "language_pair" => "en|it");public $out = "";function
Time of Update: 2017-02-27
preg_replace
Time of Update: 2017-02-27
<?php/*功能:PHP偽靜態化頁面的實現具體用法:例如連結為:test.php/year/2006/action/_add.htmlmod_rewrite(); $yearn= $_GET["year"];//結果為'2006' $action= $_GET["action"];//結果為'_add'Power
Time of Update: 2017-02-27
//counter_simple.php: 簡單記數器<html><head><title>文本計數器</title></head><body><?$count_num=0;// 如果存放計數器檔案已經存在,讀取其中的內容if(file_exists("counter.txt")){ /****************************** 以唯讀方式開啟counter.txt檔案
Time of Update: 2017-02-27
前言:在開發MooPHP的過程中,為了尋找更為高效的緩衝方式,對兩種最常用的緩衝方式進行了測試。PHP常用緩衝方式:第一種,把需要緩衝的資料進行處理,形成PHP可以直接執行的檔案。在需要快取資料的時候,通過include方式引入,並使用。第二種,把需要的資料通過serialize函數序列化後直接儲存到檔案。在需要使用快取資料的時候,通過還原序列化讀入檔案內容並複製給需要的變數,然後使用。測試結果:通過測試我們發現,第二種也就是serialize快取資料的方式更加高效。(資料略去,最後提供了文章地
Time of Update: 2017-02-27
實現 MIME 解碼的類該類實現解碼的方法是 decode($head=null,$body=null,$content_num=-1),為了處理上的方便,要求輸入的是兩個字元數組,在我們的上篇中,所用到的POP類所收取得到的就是兩個這樣的數組,一個是郵件標頭內容,一個是郵件的本文內容。限於篇幅,不對其做詳細的說明,其實現思想跟本文上篇中所介紹的POP類類似。請參考其中的注釋。該類中用到了大量的Regex的操作,對此不熟悉的讀者,請參考Regex的有關資料。class
Time of Update: 2017-02-27
MIME 編碼方式簡介Subject: =?gb2312?B?xOO6w6Oh?=這裡是郵件的主題,可是因為編碼了,我們看不出是什麼內容,其原來的文本是:“你好!”我們先看看 MIME 編碼的兩種方法。對郵件進行編碼最初的原因是因為 Internet 上的很多網關不能正確傳輸8 bit 內碼的字元,比如漢字等。編碼的原理就是把 8 bit 的內容轉換成 7 bit 的形式以能正確傳輸,在接收方收到之後,再將其還原成 8 bit 的內容。MIME
Time of Update: 2017-02-27
初步認識郵件的源檔案本文簡要說明了通過POP3協議收取郵件、MIME郵件的解碼的原理;針對收取和MIME解碼,提供了兩個實用的PHP類,並提供了使用的範例。分為郵件收取、MIME解碼兩個部分。我們已經向您介紹過了郵件的收取,現在讓我們來為您介紹本文的解碼部。在上一篇裡,我們已經完成了一個用PHP通過POP3收取郵件的執行個體,可是在使用這個類的時候,相信你已經看到了,很多的郵件收下來是一堆亂碼,自己根本看不懂!是的。現在的郵件大部分都已經經過了編碼,需要一個解碼的過程才能變成我們習慣的文字、圖片
Time of Update: 2017-02-27
互連網的今天,AJAX已經不是什麼陌生的詞彙了。說起AJAX,可能會立即想起因RSS而興起的XML。XML的解析,恐怕已經不是什麼難題了,特別是PHP5,大量的XML解析器的湧現,如最輕量級的SimpleXML。不過對於AJAX來說,XML的解析更傾向於前台Javascrīpt的支援度。我想所有解析過XML的人,都會因樹和節點而頭大。不可否認,XML是很不錯的資料存放區方式,但是其靈活恰恰造成了其解析的困難。當然,這裡所指的困難,是相對於本文的主角--JSON而言。JSON為何物?我就不重複概念
Time of Update: 2017-02-27
我近期做一個東東,大致構架是:訪問者通過web提交c程式,服務端調用編譯器編譯並且在編譯完成後運行編譯後的程式,將運行結果傳回訪問者瀏覽器。且不考慮安全性,因為訪問者可以都認為是可以信賴的,命令列編譯器最終要返回的,但是對於臨時編譯的程式,儘管使用者是可以信賴的,但是不排除因為不完善而出現死結,php調用後啟動的進程無法返回而逾時,此進程一直存在直到伺服器重啟,久而久之,伺服器端資源就要耗盡。考慮到php本身執行的時候沒有提供多線程和進程管理功能(可能是我沒有看到這方面的資料),使用不管是exe
Time of Update: 2017-02-27
在所有的最簡單的程式中,大多數對象都有一個標識,一個重要的商業應用對象,例如一個Customer 或者一個SKU,有一個或者更多的屬性---id,name,email地址,這樣可以把它從同一個類的其他執行個體區分 開來。此外,對象有一個恒定的標識:它是貫穿於整個應用程式的一個唯一的標識,對於程式員來說, ”customer A”在任何地方就是”customer A”,並且只要你的程式在持續運行時 "customer A"仍然是&
Time of Update: 2017-02-27
在物件導向編程中, 最通常的方法是一個new操作符產生一個對象執行個體,new操作符就是用來構造對象 執行個體的。但是在一些情況下, new操作符直接產生對象會帶來一些問題。舉例來說, 許多類型對象的創造 需要一系列的步驟: 你可能需要計算或取得對象的初始設定; 選擇產生哪個子物件執行個體; 或在產生你需 要的對象之前必須先產生一些協助工具功能的對象。 在這些情況, 新對象的建立就是一個 “過程 ”,不僅是一個操作,像一部大機器中的一個齒輪傳動。問題你如何能輕鬆方便地
Time of Update: 2017-02-27
幾乎所有物件導向的程式中,總有一兩個資源被建立出來,在程式應用中持續被共用使用。例如,這 樣的一個資源,在一個電子商務程式的資料庫連接中使用:這個串連在應用程式啟動時初始化,程式於 是可以有效執行;當程式結束時,這個串連最終被斷開並銷毀。如果是你寫的代碼,沒必要在每時每 刻建立一個資料庫連接,這樣非常低效。已經建立好的串連應該能被你的代碼簡單重複的使用。這個問 題就是,基於以上要求你將如何進行這個資料庫連接?(或者串連其它被迴圈使用的唯一資源,比如一
Time of Update: 2017-02-27
在編寫物件導向的代碼的時,有些時候你需要一個能夠自己根據不同的條件來引入不同的操作對象實 例。例如,一個菜單功能能夠根據使用者的“皮膚”喜好設定來決定是否採用水平的還是垂直的 排列形式,或者一個計費系統可以自行根據使用者的收貨地址來決定稅率。一般來講,一個控制菜 單的對象執行個體包括了add(), delete(), 和 replace()等菜單元素;並通過set()進行配置,用render()
Time of Update: 2017-02-27
物件導向的編程之所以豐富多彩,部分是由於對象間的相互聯絡與作用。一個單一的對象就能封裝一 個複雜的子系統,使那些很複雜的操作能夠通過一些方法的調用而簡化。(無所不在的資料庫連接就是 這樣的一個對象執行個體。)然而經常有這樣的情況,對象間的互動性是如此複雜以至於我們不得 不面對類似“先有雞還是先有蛋”這樣傷腦筋的問題:如何建立並測試這樣一個對象,他要
Time of Update: 2017-02-27
我們通常認為避免使用全域變數是一種好的選擇,因此,對象經常被作為參數從一段代碼傳遞到另一 段。但是傳遞執行個體的一個問題就是對象有時候不知道將要傳遞給誰——?經過一個函數後才被 傳遞到真正需要這個對象的函數。為了編寫,閱讀,修改代碼的方便,最好能夠減少不同對象的 數量,並且能夠將大量廣泛使用的對象統一表示為一個單一,常用的對象。問題:你如何 通過單一的全域的對象來擷取對其它對象的引用?解決方案:“註冊模式”
Time of Update: 2017-02-27
介面的改變,是一個需要程式員們必須(雖然很不情願)接受和處理的普遍問題。程式提供者們修改 他們的代碼;系統庫被修正;各種程式語言以及相關庫的發展和進化。我孩子的無數玩具中有一個簡要地 描述了這個兩難局面:你無法合理安排一個不得其所的人。問題你如何避免因外部庫的 API改變而帶來的不便?假如你寫了一個庫,你能否提供一種方法允許你軟體的現有使用者進行完美地升級