複製代碼 代碼如下: /* * Created on 2010-10-27 * BY QQ542900563 * Copyrights Reserved 2000-2020 * 本例示範圖片浮水印的產生辦法 */ //分別載入兩張圖片 $im=imagecreatefromjpeg("liu.jpg"); $img2=imagecreatefrompng("m.png"); //取得各自的長寬,計算位置 $im_WH=getimagesize("liu.jpg"); $im_W=$im_WH[0
下面先給出兩個版本函數的原始碼以及簡單測試,最後我會給出一個實用性更強的字串截取函數。需要注意的是:這裡討論的字串截取問題都是針對UTF-8編碼的中文字串。 discuz版本 複製代碼 代碼如下: /** * [discuz] 基於PHP沒有安裝 mb_substr 等擴充截取字串,如果截取中文字則按2個字元計算 * @param $string 要截取的字串 * @param $length 要截取的字元數 * @param $dot 替換截掉部分的結尾字串 * @return
下面是使用樣本: 複製代碼 代碼如下: echo memory_get_usage(), ''; // 313864 $tmp = str_repeat('http://www.nowamagic.net/', 4000); echo memory_get_usage(), ''; // 406048 unset($tmp); echo memory_get_usage(); // 313952 ?> 上面的程式後面的注釋代表了它們的輸出(單位為 byte(s)),也就是當時 PHP
官方下載地址:MySQL http://www.mysql.com/downloads/mysql/ 找個MSI檔案下下來.Apache http://httpd.apache.org/download.cgiPhp http://windows.php.net/download/#php-5.4首先是MySQL,(這邊吐槽一下被Oracle收購的MySQL)一步一步往下,無需更多的配置然後安裝Apache,也是一步一步往下安裝PHP,(我偷懶我自豪,
特別是+運算子,他的意思是,將右邊的數組單元(去重複)追加到左邊數組的後面。 複製代碼 代碼如下: echo "\r\n第一種情況\r\n"; $a=array(1,2,3,4,5,6); $b=array(7,8,9); $c=array_merge ($a,$b); print_r($c); $c=$a+$b; print_r($c); $c=$b+$a; print_r($c); echo "\r\n第二種情況\r\n"; $a=array('a','b','c','d','e','f')
普通的mysql串連肯定是會被拋棄的 因為每次都要防止sql注入的問題 而且相對來說比較慢 mysqli是在普通mysql的基礎上做的一次最佳化 說實話 很成功 預先處理方式完全解決了sql注入的問題 但是唯一的不足點 就是只支援mysql資料庫 當然 如果你要是不操作其他的資料庫或者 當然這無疑是最好的選擇 PDO則是最新出來的一種 串連方式 相容大部分資料庫 也解決了sql注入 但是也有缺點 它只支援php5以上的版本 不過聽說在未來的php6中 只支援這種串連
在網上看到一道題:array("a")+array("b")的結果是___A.array("a","b")B.array("b","a")C.array("b")D.array("a")答案:Dphp兩個數組相加,為什麼結果還是不變呢?因為,它們等效於array("0″=>"a")+array("0″=>"b"),它們的鍵名相同,前者不能被後者覆蓋,如果是array("0″=>"a")+array("0″=>"b","1″=>"c"),那麼結果等於array("0″=>"a","1″=>"c")
主要功能是根據貝貝的出生日期來顯示貝貝現在多大了,即時顯示貝貝的成長。 用目前時間減去出生的日期,但是可以顯示出來幾歲,幾個月,和幾天。 天的演算法有點問題,沒有考慮到大小月和2月份。 複製代碼 代碼如下: function getDays() { putenv("TZ=Asia/Chongqing"); $by = 2006; $bm = 7; $bd = 7; $rday=""; $today = getdate(); $by = $today[year] - $by; $bm =
SESSION與COOKIE區別: Session 將資訊儲存在伺服器上.伺服器在接受到唯一的SESSION_ID後,根據這個ID擷取相關資料,然後將資訊傳遞到用戶端(瀏覽器). Cookie 是將所有資訊以文本的形式存在本地檔案,並由用戶端(瀏覽器)進行管理與維護. 因為Session 資料存放區在server端,所以遠程client無法對資料進行修改;而Cookie儲存在client本地,容易被擷取和篡改.所以Session安全性較高. SESSION 介紹: PHP5
1、單引號爆路徑 說明: 直接在URL後面加單引號,要求單引號沒有被過濾(gpc=off)且伺服器預設返回錯誤資訊。 Eg: www.xxx.com/news.php?id=149′ 2、錯誤參數值爆路徑 說明: 將要提交的參數值改成錯誤值,比如-1。單引號被過濾時不妨試試。 Eg: www.xxx.com/researcharchive.php?id=-1 3、Google爆路徑 說明: 結合關鍵字和site文法搜尋出錯頁面的網頁快照,常見關鍵字有warning和fatal error。注意,
基本邏輯思路和.net的一樣,就是將通過實體類來進行配置換成了通過數組進行配置,邏輯比較簡單,根據條件判斷拼接分頁html。 有以下幾個簡單的功能: 1:支援相關按鈕的顯示與否配置 2:支援每頁數目,文本名稱,html標籤類名稱的自由配置 3:支援url重寫過的頁面(需自己在配置數組中添加重寫規則) 簡單吧,還是直接上代碼: 核心代碼:pager.class.php 複製代碼 代碼如下: class pager{ //分頁的參數配置 private $config=array(
複製代碼 代碼如下: $a=3; $b=6; if($a=5||$b=7){ $a++; $b++; } var_dump($a, $b); 陷阱一 把$a=5、$b=7看成了$a==5、$b==7 錯誤結果:3,6 陷阱二 運算子的優先順序,認為$a=5賦值成功$b=7沒執行 錯誤結果:6,7 正確理解 陷阱是運算子的優先,賦值運算子(=)的優先順序是最低的,所以正確理解應該是 $a=(5||$b=7) 正確結果:true,7 升級一下 變形一 複製代碼 代碼如下: $a=3; $b=6;
那麼這個隨機名人名言的功能是如何?的呢? 其實很簡單,只需要一個字串變數,這裡面放所有要隨機展現的名人名言,然後用到explode函數分解成數組,再用rand隨機數產生一個值,輸出這個數組中的某一句。 直接上代碼: says.php 複製代碼 代碼如下: function random_str () { $poems="人生的價值,並不是用時間,而是用深度去衡量的。-- 列夫·托爾斯泰 三人行,必有我師焉。擇其善者而從之,其不善者而改之。——孔子 人生不是一種享樂,而是一樁十分沉重的工作。--
看了這篇PHP中file_exists與is_file,is_dir的區別的說法基本明白,PHP的 file_exists = is_dir + is_file。 寫程式驗證一下: 分別執行1000次,記錄所需時間。 檔案存在(目前的目錄) is_file:0.4570ms file_exists:2.0640ms 檔案存在(絕對路徑3層/www/hx/a/) is_file:0.4909ms file_exists:3.3500ms 檔案存在(絕對路徑5層/www/hx/a/b/c/) is_
一. 單例模式(Singleton) 如果應用程式每次包含且僅包含一個對象,那麼這個對象就是一單例. 用來替代全域變數. 複製代碼 代碼如下: require_once("DB.php"); class DatabaseConnection{ public static function get(){ static $db = null; if ( $db == null ) $db = new DatabaseConnection(); return $db; } private
網域名稱和cookie 偶然想到一個問題:www.g.cn能把cookie設定為.g.cn,那麼www.com.cn能設定把cookie設定為.com.cn嗎? 實驗結果:不能。因為瀏覽器知道www.com.cn的尾碼是.com.cn而不是.cn,所以禁止設定cookie。 因為瀏覽器內建了網域名稱尾碼列表。todo:如果以後出現新的尾碼,而老瀏覽器沒法更新列表,豈不是會允許設定cookie? extension尾碼頂層網域次層網域www.g.cn.cng.cn*.g.cnwww.com.cn.
1> if( "false" ) 等效於 if( true), 因為非Null 字元串是true 2> 檢查資料類型: is_array(); is_object(); is_string(); is_null(); is_integer(); 3> PHP5 引入類的類型提示(type hint),用來約束一個方法的參數類型(不是基礎資料型別 (Elementary Data Type),而是類):將類名放在需要約束的方法參數之前. 例如: function write(
複製代碼 代碼如下: /* UTF-8中文字元截斷程式 */ $str = "123這是測試字串"; $str1 = "()()"; echo subUTF8str($str,0,3).""; echo subUTF8str($str,0,4).""; echo subUTF8str($str1,0,4).""; echo subUTF8str($str1,0,10).""; function subUTF8str($str,$start=0,$length=80){ $cur_len = 0;
在這篇文章中主要解決兩個問題: 1:在php中如何把html中的內容產生到word文檔中 2:php把html中的內容產生到word文檔中時,不置中顯示問題,即會預設按照web視圖進行顯示。 3:php把html中的內容產生到word文檔中時,相關樣式不相容問題 本文: 複製代碼 代碼如下: echo ' Print '; echo ' '; echo "數字化教學系統電子備課稿 學科 語文學校 實驗中學 "; echo ''; ob_start(); //開啟緩衝區
去年做過一個項目,要把使用者上傳的影像檔列出文字清單,當使用者點擊一個檔案名稱後,就可以顯示這個映像. 因為要考慮相容各種不同的映像格式, 我使用了GD庫, 判斷出具體是那種影像檔(MINE),再調用相應的image產生函數imagecreatefromXXX(),產生一個img,再將這個img以jpeg格式輸出至瀏覽器,雖然做出來了,但總覺得不滿意. 今天有機會重新考慮這個功能,在php手冊中發現幾行代碼,簡潔明快,完全能實現我要的功能,還不需要GD庫 複製代碼 代碼如下: $size =