Time of Update: 2016-11-24
/***產生驗證碼圖片*/public function actionVerfiycode() {Header ( "Content-type: image/gif" );$border = 0; //是否要邊框 1要:0不要$how = 4; //驗證碼位元$w = $how * 15; //圖片寬度$h = 20; //圖片高度$fontsize = 5; //字型大小$alpha = "abcdefghijkmnopqrstuvwxyz";
Time of Update: 2016-11-23
瀏覽器和伺服器之間只一種面向不需連線的HTTP協議進行通訊的,面向不需連線的程式的特點是用戶端請求服務端,服務端根據請求輸出相應的程式,不能保持持久串連。這樣就出現了一個問題,一個用戶端的相應服務端可能執行1秒也有可能執行1分鐘,這樣瀏覽器就會一直處於等待狀態,如果程式執行緩慢,使用者可能就沒耐心關掉了瀏覽器。而有的時候我們不需要關心程式執行的結果,沒有必要這樣浪費時間和耐心等待,那我們就要想出辦法讓程式不收等待在後台靜默執行。比如現在有一個情境,給1000個使用者發送一封推薦郵件,使用者輸入或
Time of Update: 2016-11-24
<?php /** * Mysqli類 * * @author 廢墟 * @version v1.0 2009-08-18 * @link http://anerg.cn/ */ class db_mysqli { protected $mysqli; protected $sql; protected $rs; protected $query_num = 0; protected $fetch_mode = MYSQLI_ASSOC; protected
Time of Update: 2016-11-23
故障現象: 在命令符方式下啟動Apache時提示錯誤資訊“Syntax error on line 122 of D:/Apache/conf/httpd.conf: Cannot load D:/PHP/php5apache2_2.dll into server”,導致Apache無法啟動。 Apache的設定檔D:/Apache/conf/httpd.conf第122行內容為: LoadModule php5_module
Time of Update: 2016-11-24
1. 第一句首字母要大寫:<{$str1|capitalize}>2. 第二句模板變數 + 李曉軍:<{$str2|cat:"李曉軍"}>3. 第三句輸出當前日期:<{$str3|date_format:"%Y年%m月%d日"}>4. 第四句.php程式中不處理,它顯示預設值:<{$str4|default:"沒有值!"}>5.
Time of Update: 2016-11-23
1、$_SERVER["PHP_SELF"] -- 擷取當前正在執行指令碼的檔案名稱2、$_SERVER["SERVER_PROTOCOL"] -- 請求頁面時通訊協定的名稱和版本。例如,“HTTP/1.0”。3、$_SERVER["REQUEST_TIME"] -- 請求開始時的時間戳記。從 PHP 5.1.0 起有效。和time函數效果一樣。4、$_SERVER["argv"] --
Time of Update: 2016-11-24
break(PHP 4, PHP 5)break 結束當前 for,foreach,while,do-while 或者 switch 結構的執行。break 可以接受一個可選的數字參數來決定跳出幾重迴圈。<?php $arr = array('one', 'two', 'three', 'four', 'stop', 'five'); while (list (, $val) =
Time of Update: 2016-11-23
在說明名稱解析規則之前,我們先看一些重要的定義:命名空間名稱定義非限定名稱名稱中不包含命名空間分隔字元的標識符,例如 Foo限定名稱名稱中含有命名空間分隔字元的標識符,例如 Foo\Bar完全限定名稱名稱中包含命名空間分隔字元,並以命名空間分隔字元開始的標識符,例如 \Foo\Bar。 namespace\Foo 也是一個完全限定名稱。名稱解析遵循下列規則:對完全限定名稱的函數,類和常量的調用在編譯時間解析。例如 new \A\B 解析為類
Time of Update: 2016-11-23
安裝php(fastcgi模式)的時候,常常有這樣一句命令:/usr/local/webserver/php/bin/phpize 一、phpize是幹嘛的? phpize是什麼東西呢?php官方的說明: http://php.net/manual/en/install.pecl.phpize.php phpize是用來擴充php擴充模組的,通過phpize可以建立php的外掛模組
Time of Update: 2016-11-23
<?php /** * @title:圖片浮水印 * @autor:zms * @version:2011-7-26 * 因為GD庫的限制,現在只能使用gif,jpg,png三種格式 */ // //////////使用例子 //執行個體化 //參數說明:路徑,是否使用浮水印(default:false) $img = new image_watermark(true);//執行個體化 //設定原始圖 $img->dst_image('卡通.jpg');
Time of Update: 2016-11-22
如果用php的+-*/計算浮點數的時候,可能會遇到一些計算結果錯誤的問題,比如echo intval( 0.58*100 );會列印57,而不是58,這個其實是電腦底層二進位無法精確表示浮點數的一個bug,是跨語言的,我用python也遇到這個問題。所以基本上大部分語言都提供了精準計算的類庫或函數庫,比如php有BC高精確度函數庫,下面介紹一下一些常用的BC高精確度函數使用。 php
Time of Update: 2016-11-23
PHP substr()函數可以 分割文字,但要分割的文字如果包括中文字元往往會遇到問題,這時可以用mb_substr()/mb_strcut這個函數,mb_substr() /mb_strcut的用法與substr()相似,只是在mb_substr()/mb_strcut最後要加入多一個參數,以設定字串的編碼,但是 一般的伺服器都沒開啟php_mbstring.dll,需要在php.ini在把php_mbstring.dll開啟。 舉個例子: <?php echo mb_substr(&
Time of Update: 2016-11-24
聲明:$array = array("id" => 1, "name" => "duanyong"); 得到所有鍵:$key = array_keys($array); 得到所有值:$values = array_values($array); 遍曆值和值:a. foreach ($array as $key => $value) { echo $key . "\t" . $value;}b.
Time of Update: 2016-11-22
通過把Content-Type設定為application/octet-stream, 可以把動態產生的內容當作檔案來下載,相信這個大家都會。 那麼用Content-Disposition設定下載的檔案名稱, 這個也有不少人知道吧。 基本上,下載程式都是這麼寫的:<?php$filename = "document.txt";header('Content-Type:
Time of Update: 2016-11-24
/** * PHP 對象、數組間的轉換 * * @author flyer0126 * @since 2012/05/03 **/// 1. 利用(array)和(object),簡單處理$objTemp = (object)array();$objTemp->a = 1;$objTemp->b = 2;$objTemp->c = 3;$arrTemp =
Time of Update: 2016-11-24
小議PHP中換行的問題 1.echo "\n";只是進行了轉義,相當於空格,卻沒有換行,但在源檔案中換行了。(網友的解釋:\n是ASCII碼,瀏覽器解析的是HTML碼,不是ASCII碼) 2.echo "\r\n";經過調試跟1結果一樣。 3 .echo nl2br("\n"); 能實現換行, nl2br() 函數在字串中的每個新行 (\n) 之前插入 HTML 分行符號 (<br />)。 代碼:echo &
Time of Update: 2016-11-22
/** * 1、define(name,value,case_insensitive) 自訂全域常量, 預設大小寫敏感 * 2、const 定義類常量。 * 3、常量名前不要使用”$” * 4、常量的命名一般全部使用大寫字母。 *///定義全域常量 LANGUAGEdefine('LANGUAGE','中國');echo language;//languageecho LANGUAGE;//中國//定義全域常量 CNdefine('CN','
Time of Update: 2016-11-22
設計資料庫第一步一般都是建立資料庫,除非是使用第三方的資料庫服務。當建立一個資料庫的時候,會指定一個所有者來執行和建立語句。通常,只有所有者(或超級使用者)才有權對資料庫中的對象進行任意操作。如果想讓其他使用者使用,就必須賦予他們許可權。應用程式永遠不要使用資料庫擁有者或超級使用者帳號來串連資料庫,因為這些帳號可以執行任意的操作,比如說修改資料庫結構(例如刪除一個表)或者清空整個資料庫的內容。應該為程式的每個方面建立不同的資料庫帳號,並賦予對資料庫物件的極有限的許可權。僅分配給能完成其功能所需的
Time of Update: 2016-11-22
對於 PHP 的安全性來說錯誤報表是一把雙刃劍。一方面可以提高安全性,另一方面又有害。攻擊系統時經常使用的手法就是輸入不正確的資料,然後查看錯誤提示的類型及上下文。這樣做有利於攻擊者收集伺服器的資訊以便尋找弱點。比如說,如果一個攻擊者知道了一個頁面所基於的表單資訊,那麼他就會嘗試修改變數:Example #1 用自訂的 HTML 頁面攻擊變數<form method="post"
Time of Update: 2016-11-22
統計郵件開啟次數的做法基本上是在郵件中放入一個圖片,然後統計圖片開啟的次數mail.html<img src="mail.jpg" />這樣就可以通過日誌統計到圖片開啟的次數,但是這樣統計到的次數是存在誤差的。比如使用者多次開啟等。 其實在郵件中也可以這樣寫,直接將src指向到一個php檔案,然後在php檔案中輸出這個圖片就可以了。第一次嘗試:mail.html<img src="open.php" />mail.phpdie(