Time of Update: 2016-11-23
瀏覽器和伺服器之間只一種面向不需連線的HTTP協議進行通訊的,面向不需連線的程式的特點是用戶端請求服務端,服務端根據請求輸出相應的程式,不能保持持久串連。這樣就出現了一個問題,一個用戶端的相應服務端可能執行1秒也有可能執行1分鐘,這樣瀏覽器就會一直處於等待狀態,如果程式執行緩慢,使用者可能就沒耐心關掉了瀏覽器。而有的時候我們不需要關心程式執行的結果,沒有必要這樣浪費時間和耐心等待,那我們就要想出辦法讓程式不收等待在後台靜默執行。比如現在有一個情境,給1000個使用者發送一封推薦郵件,使用者輸入或
Time of Update: 2016-11-23
<?php$db = mysql_connect('localhost', 'root', 'root') or die('Can\'t connect to database');mysql_select_db('test') or die('Can\'t find database : test');$result = mysql_query('select id,
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-23
PHP 5 中的對象比較要比 PHP 4 中複雜,所期望的結果更符合一個物件導向語言。當使用比較子(==)比較兩個物件變數時,比較的原則是:如果兩個對象的屬性和屬性值 都相等,而且兩個對象是同一個類的執行個體,那麼這兩個物件變數相等。而如果使用全等運算子(===),這兩個物件變數一定要指向某個類的同一個執行個體(即同一個對象)。通過下面的樣本可以理解以上原則。Example #1 PHP 5 的對象比較<?phpfunction bool2str($bool){ if ($bool
Time of Update: 2016-11-23
PHP 5 可以使用類型約束。函數的參數可以指定必須為對象(在函數原型裡面指定類的名字),介面,數組(PHP 5.1 起)或者 callable(PHP 5.4 起)。不過如果使用NULL 作為參數的預設值,那麼在調用函數的時候依然可以使用 NULL 作為實參。如果一個類或介面指定了類型約束,則其所有的子類或實現也都如此。類型約束不能用於標量類型如 int 或 string。Traits 也不允許。Example #1 類型約束樣本<?php //如下面的類 class
Time of Update: 2016-11-23
1. 變數函數名,可以用字串拼接函數名function aa($str) { echo $str;}$function = "aa";$function('Hello');// ORcall_user_func($function, $param);2. 列出所有函數,判斷某個函數是否存在get_defined_functions()function_exist()3. 接受 PUT 請求,PHP REST
Time of Update: 2016-11-23
自 PHP 5.3.0 起,PHP 增加了一個叫做後期靜態繫結的功能,用於在繼承範圍內引用靜態調用的類。準確說,後期靜態繫結工作原理是儲存了在上一個“非轉寄調用”(non-forwarding call)的類名。當進行靜態方法調用時,該類名即為明確指定的那個(通常在 :: 運算子左側部分);當進行非靜態方法調用時,即為該對象所屬的類。所謂的“轉寄調用”(forwarding call)指的是通過以下幾種方式進行的靜態調用:self::,parent::,static::
Time of Update: 2016-11-23
function GetIP(){ if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("HTTP_X_FORWARDED_FOR") &&
Time of Update: 2016-11-23
在php5 的對象編程經常提到的一個關鍵點是“預設情況下對象是通過引用傳遞的”。但其實這不是完全正確的。下面通過一些例子來說明。php的引用是別名,就是兩個不同的變數名字指向相同的內容。在php5,一個物件變數已經不再儲存整個對象的值。只是儲存一個標識符來訪問真正的對象內容。 當對象作為參數傳遞,作為結果返回,或者賦值給另外一個變數,另外一個變數跟原來的不是引用的關係,只是他們都儲存著同一個標識符的拷貝,這個標識符指向同一個對象的真正內容。Example #1 引用和對象<?php
Time of Update: 2016-11-23
一、手動輸出xml/* * 手動輸出xml * @author flyer0126 * @since 2012/4/27 */header("Content-Type:text/xml");print '<?xml version="1.0"?>'."\n";print "<shows>\n";$shows = array( array(
Time of Update: 2016-11-23
所謂的序列化對象就是在會話中存放對象所有php裡面的值都可以使用函數 serialize()來返回一個包含位元組流的字串來表示。 unserialize()函數能夠重新把字串變回php原來的值。 序列化一個對象將會儲存對象的所有變數,但是不會儲存對象的方法,只會儲存類的名字。為了能夠 unserialize()一個對象,這個對象的類必須已經定義過。如果序列化類別A的一個對象,將會返回一個跟類A相關,而且包含了對象所有變數值的字串。
Time of Update: 2016-11-23
/** * 單例模式實作類別-->ArrayAccess(數組式訪問)介面 * * @author flyer0126 * @since 2012/4/27 */class Single{private $name;private static $_Instance = null;private function __construct(){}static function load(){if(null == self::$_Instance){self::$_Instance =
Time of Update: 2016-11-23
PHP 註冊代碼 <?php$Uname=$_POST["Uname"];$Pwd=$_POST["Pwd"];$register=$_POST["register"];$link=mysql_connect("localhost","root","12345");if($link){ $db_selected=Mysql_Query("use
Time of Update: 2016-11-23
$GLOBALS['THRIFT_ROOT'] = '/data/center_a0001/www/libs/classes/Thrift/';require_once $GLOBALS['THRIFT_ROOT'] . 'packages/hive_service/ThriftHive.php';require_once $GLOBALS['THRIFT_ROOT'] .
Time of Update: 2016-11-23
相信大家經常看到對比一些PHP應用中,說用isset() 替換 strlen(),isset比strlen執行速度快等。例子: if ( isset($username[5]) ) { // The username is at least six characters long.}原因是isset是語言結構,而strlen是一個函數。那什麼是語言結構呢?它和函數有什麼不同嗎? 1、 什麼是語言結構和函數
Time of Update: 2016-11-23
Web 的好處是可以分享資訊和服務。壞處也是可以分享資訊和服務,因為有些人做事毫無顧忌。以表單為例。任何人都能夠訪問一個 Web 網站,並使用瀏覽器上的 File > Save As 建立表單的本機複本。然後,他可以修改 action 參數來指向一個完整 URL(不指向 formHandler.php,而是指向 http://www.yoursite.com/formHandler.php,因為表單在這個網站上),做他希望的任何修改,點擊
Time of Update: 2016-11-23
PHP一直是在Web開發領域中十分重要而快捷方便的開發語言,深受廣大開發人員的青睞。現在PHP 5.4的正式版本已經發布,其中增加了大量新的特性,官方聲稱效能提高20%,並且佔用更少的資源。在本文中,我將帶領大家學習PHP 5.4的一些新的特性。 在PHP 5.4中,首先是修複了多達100多處的bug,並且在記憶體及效能最佳化上做的更好了,而且去掉了一些之前版本的方法,比如register_globals,magic_quotes,safe_mode等,而且要注意的是,PHP
Time of Update: 2016-11-23
<?php //$a = strtotime(date("Y-m-d H:i:s")); $a = strtotime(date("2012-5-28 17:50:51"));//自訂時間 $b = $a+24*3600;//24小時後的時間戳記的值 $d = $a-24*3600;//24小時前的時間戳記的值 echo date("Y-m-d H:i:s",$b);//24小時後的時間 echo "</br&
Time of Update: 2016-11-23
php位元運算$a & $b and(按位與)$a | $b or(按位或)$a ^ $b Xor(按位異或)~$a Not(按位非)$a << $b Shift left(左移)$a >> $b Shift right(右移)詳解$a & $b 按位與 把$a和$b中都為1的位設為1;例:10 & 12 = 810 101012 11001000 8$a | $b 按位或 把$a或$b中有一個為1的為設為1;例:10 | 12 = 1410 10
Time of Update: 2016-11-23
<?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