<?
function GetIP() { //»ñÈ¡IP
if ($_SERVER["HTTP_X_FORWARDED_FOR"])
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else if ($_SERVER["HTTP_CLIENT_IP"])
$ip = $_SERVER["HTTP_CLIENT_IP"];
else if ($_SERVER["REMOTE_ADDR"])
$ip = $_SERVER["REMOTE_ADDR"];
else if (getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("HTTP_CLIENT_IP"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("REMOTE_ADDR"))
$ip = getenv("REMOTE_ADDR");
else
$ip = "Unknown";
return $ip;
}
?>
<?php
function DateAdd($date, $int, $unit = "d") { //ʱ¼äµÄÔö¼Ó£¨»¹¿ÉÒԸĽø³Éʱ·ÖÃë¶¼¿ÉÒÔÔö¼Ó£¬ÓÐʱ¼äÔÙ²¹ÉÏ£©
$dateArr = explode("-", $date);
$value[$unit] = $int; //¿ªÔ´´úÂëOSPhP.COm.CN
return date("Y-m-d", mktime(0,0,0, $dateArr[1] + $value['m'], $dateArr[2] + $value['d'], $dateArr[0] + $value['y']));
}
function GetWeekDay($date) { //¼ÆËã³ö¸ø³öµ ......
<?php
/*
Singleton && Registry Design Pattern Implementation
*/
class Registry {
private $_store = array();
public function getInstance() {
static $instance = array();
if (!$instance) {
$instance[0] = new Registry;
}
return $instance[0];
}
public function &get($key){
if($this->isValid($key)){
return $this->_store[$key];
}
}
public function set($key, $object){
$this->_store[$key] = &$object;
}
public function isValid($key){
return array_key_exists($key,$this->_store);
}
}
?>
Test Case:
<?php
require_once 'simpletest/unit_tester.php';
require_once 'simpletest/reporter.php';
require_once 'Registry.php';
class RegistryTestCase extends UnitTestCase{
function testRegistryIsSing ......
±àÕß°´£ºÑ§Ï°phpÊÇÒ»ÖÖ¿ÝÔïÎÞ棬ÕûÌìºÍ´úÂë´ò½»µÀµÄ¹ý³Ì£¬²»¹ýÏàÐÅÕâÆªÎÄÕÂ»á¸øÄãÒ»µãÆôʾ°ïÖú¡£
ÈçºÎѧϰPHP/ѧϰphpµÄ·½·¨,ѧ¶«Î÷£¬ÓÀÔ¶²»ÒªÍýÏëÓÐËÙ³ÉÕâһ˵£¬¸æËßÄãÁËÒ»¸ö·½Ê½£¬µ«ÊÇȱÉÙŬÁ¦ÕâÒ»»·½Ú£¬ÄÇÒ²Êǰ״ ÕÆÎպõÄѧϰ·½·¨·Ç³£±ØÒª,¿´¿´ÕâÆªÈçºÎѧϰPHP/ѧϰphpµÄ·½·¨[×ªÔØ]
ÏàÐÅ´ó¼ÒÑ¡ÔñÒ»ÖÖÓïÑÔ£¬²¢²»ÊÇ¿´ËüµÄ±³¾°ºÍÓÆ¾ÃÀúÊ·£¬¸üÖØÒªµÄÊÇ¿´ËüµÄʵÓÃÐÔ£¬»ª¶ø²»ÊµµÄÓïÑÔÄÄÅÂÊÇÔٻԻ͵ÄÀúÊ·£¬Ò²±Ï½«²½ÏòûÂ䣬¿ÉϲµÄÊÇPHP¾ÊÜסÁË¿¼Ñ飬ҲÒò´Ë£¬ËüȷʵÊÇÒ»ÖÖÖµµÃѧϰµÄÓïÑÔ¡£
¡¡¡¡ÎÒ×ܽáµÄѧϰphpµÄ½ø³Ì¿ÉÄÜÐèÒª¾ÀúÏÂÃæÕ⼸¸ö½×¶Î£º
¡¡¡¡(1)ÊìϤHTML/CSS/JSµÈÍøÒ³»ù±¾ÔªËØ£¬Íê³É½×¶Î¿É×ÔÐÐÖÆ×÷ÍêÕûµÄÍøÒ³£»
¡¡¡¡(2)Àí½â¶¯Ì¬ÓïÑԵĸÅÄÔË×ö»úÖÆ£¬ÊìϤPHPÓï·¨£»
¡¡¡¡(3)ѧϰÈçºÎ½«PHPÓëHTML½áºÏÆðÀ´Íê³É¼òµ¥¶¯Ì¬Ò³Ã棻
¡¡¡¡(4)½Ó´¥MYSQL£¬¿ªÊ¼Éè¼ÆÊý¾Ý¿â³ÌÐò£»
¡¡¡¡(5)²»¶Ï¹®¹Ì£¬Ãþ͸´ó²¿·ÖPHP³£Óú¯Êý£¬²¢¿ÉÀí½âOOP£¬MYSQLÓÅ»¯£¬ÒÔ¼°Ä£°å£»
¡¡¡¡(6)Íê³ÉÒ»¸ö¹¦ÄÜÆëÈ«µÄ¶¯Ì¬Õ¾µã¡£
¡¡¡¡ÎÒµÄÕâÌ×Ïß·¿ÉÄܸúÐí¶àѧϰPHPµÄ°®ºÃÕß²»Ä±¶øºÏ£¬ÕâÒ²ËãÊÇÒ»¸öÑÐò½¥½øµÄѧϰ¹ý³Ì£¬²»¹ýÐÂÊÖ²»Òª¿´µ½ÉÏÃæµÄ¸ÅÀ¨¾ÍÒÔΪѧϰÂù¼òµ¥µÄ£¬Ä¬Ä¬Ôڴ˲»µÃ²»¶ÔÄúÉÔ ......
Èç¹ûÀà³£Á¿ÄÜÍêÈ«ÌýÃüÓÚÎÒÃÇ(do our bidding)»¹ÊÇÏ൱²»´íµÄ£¬µ«ÊÇÆä²»Ñ±Ö®´¦»¹ÊÇÔçÔçµØ±©Â¶³öÀ´ÁË¡£Àà³£Á¿µÄÖµÖ»ÄÜÔÚ¶¨ÒåʱÉèÖ㬲¢ÇÒ²»ÄÜÔÚÀàµÄ·½·¨Öж¨Òå¡£³£Á¿Ö»Äܱ»³õÉè³ÉÆÕֵͨ(plain value)²»Äܱ»ÉèÖóɶÔÏó¡£ÉõÖÁÔÚ¶¨ÒåÀà³£Á¿Ê±£¬²»ÄÜʹÓÃ×Ö·ûÁ¬½Ó¡£
ÕýÈçÇ°ÃæÌáµ½µÄ£¬²»Äܸı䳣Á¿µÄÖµ£¬¼´Ê¹ÄãÔÚ²âÊÔµÄʱºòÏ£ÍûÈç´ËÒ²²»ÐС£ÄÇôÎÒÃǸÃÔõô°ìÄØ£¿
ʹÓÃÀà±äÁ¿À´Ìæ´úÀà³£Á¿
×î¼òµ¥ÇÒÏÔ¶øÒ×¼ûµÄ·½·¨ÊÇÓÃÀà±äÁ¿À´´úÌæÀà³£Á¿£¬±È½ÏµäÐ͵ÄÊÇpublicÀàÐ͵ġ£ÒòΪ±äÁ¿¿ÉÒÔÔÚ¶¨ÒåÖ®ºó±»¸Ä±ä£¬ÎÒÃÇ¿ÉÒÔÔÚmethodÖиøËü¸³Öµ£¬¾Í¿ÉÒ԰ѶÔÏ󸳸ø±äÁ¿£¬Ò²ÄÜÔÚ¸³ÖµÇ°ÏÈÍê³ÉÈô¸ÉÎÒÃÇÐèÒªµÄ´¦Àí¡£²»¹ýʵÏÖÆðÀ´ÐèҪһЩС¼¼ÇÉ¡£Èç¹ûÔÚ¹¹Ô캯ÊýÖÐÀ´ÊµÏÖ£¬ÄÇôÔÚÓжÔÏó֮ǰ£¬Õâ¸ö±äÁ¿ÊDz»Äܱ»Ê¹Óõģ¨ÒòΪËü»¹Ã»ÓÐÖµ£©£¬µ±È»ÎÒÃÇ¿ÉÒÔÔÚÀàÉùÃ÷Ö®ºó£¬ÂíÉÏŪ³öÒ»¸ö¶ÔÏóÀ´²¹¾È¡£»¹ÓÐÒ»¸ö°ì·¨£¬¾ÍÊǶ¨ÒåÒ»¸öÀà·½·¨À´³õʼ»¯Àà±äÁ¿¡£¼ÙÉèÎÒÃÇÓõ½¶þ¸ömysqlÊý¾Ý¿ârbacºÍcms£¬
class Connections {
public static $RBAC;
public static $CMS;
public s ......
PHP£¬Ò»¸öǶÌ×µÄËõдÃû³Æ£¬ÊÇÓ¢Îij¬¼¶Îı¾Ô¤´¦ÀíÓïÑÔ£¨PHP:Hypertext Preprocessor£©µÄËõд¡£PHP ÊÇÒ»ÖÖ HTML ÄÚǶʽµÄÓïÑÔ£¬PHPÓë΢ÈíµÄASPÆÄÓм¸·ÖÏàËÆ£¬¶¼ÊÇÒ»ÖÖÔÚ·þÎñÆ÷¶ËÖ´ÐеÄǶÈëHTMLÎĵµµÄ½Å±¾ÓïÑÔ£¬ÓïÑԵķç¸ñÓÐÀàËÆÓÚCÓïÑÔ£¬ÏÖÔÚ±»ºÜ¶àµÄÍøÕ¾±à³ÌÈËÔ±¹ã·ºµÄÔËÓá£PHP ¶ÀÌØµÄÓï·¨»ìºÏÁË C¡¢Java¡¢Perl ÒÔ¼° PHP ×Ô´´ÐµÄÓï·¨¡£Ëü¿ÉÒÔ±È CGI »òÕß Perl ¸ü¿ìËÙµÄÖ´Ðж¯Ì¬ÍøÒ³¡£ÓÃPHP×ö³öµÄ¶¯Ì¬Ò³ÃæÓëÆäËûµÄ±à³ÌÓïÑÔÏà±È£¬PHPÊǽ«³ÌÐòǶÈëµ½HTMLÎĵµÖÐÈ¥Ö´ÐУ¬Ö´ÐÐЧÂʱÈÍêÈ«Éú³ÉHTML±ê¼ÇµÄCGIÒª¸ßÐí¶à£»ÓëͬÑùÊÇǶÈëHTMLÎĵµµÄ½Å±¾ÓïÑÔJavaScriptÏà±È£¬PHPÔÚ·þÎñÆ÷¶ËÖ´ÐУ¬³ä·ÖÀûÓÃÁË·þÎñÆ÷µÄÐÔÄÜ£»PHPÖ´ÐÐÒýÇæ»¹»á½«Óû§¾³£·ÃÎʵÄPHP³ÌÐòפÁôÔÚÄÚ´æÖУ¬ÆäËûÓû§ÔÙÒ»´Î·ÃÎÊÕâ¸ö³ÌÐòʱ¾Í²»ÐèÒªÖØÐ±àÒë³ÌÐòÁË£¬Ö»ÒªÖ±½ÓÖ´ÐÐÄÚ´æÖеĴúÂë¾Í¿ÉÒÔÁË£¬ÕâÒ²ÊÇPHP¸ßЧÂʵÄÌåÏÖÖ®Ò»¡£PHP¾ßÓзdz£Ç¿´óµÄ¹¦ÄÜ£¬ËùÓеÄCGI»òÕßJavaScriptµÄ¹¦ÄÜPHP¶¼ÄÜʵÏÖ£¬¶øÇÒÖ§³Ö¼¸ºõËùÓÐÁ÷ÐеÄÊý¾Ý¿âÒÔ¼°²Ù×÷ϵͳ¡£
¡¡¡¡PHP ×î³õÊÇ1994ÄêRasmus Lerdorf´´½¨µÄ£¬¸Õ¸Õ¿ªÊ¼Ö»ÊÇÒ»¸ö¼òµ¥µÄÓÃPerlÓïÑÔ±àдµÄ³ÌÐò£¬ÓÃÀ´Í³¼ÆËû×Ô¼ºÍøÕ¾µÄ·ÃÎÊÕß¡£ºóÀ´ÓÖÓÃCÓïÑÔÖØÐ±àд£¬°üÀ¨¿ÉÒÔ·ÃÎÊÊý¾Ý¿â¡£ÔÚ1995 ......
ǰ¼¸ÌìÔÚFirebugÀ©Õ¹¿ª·¢Ò»ÎÄÖоÍÌáµ½¹ýFirephpÕâ¸ö»ùÓÚFirebugµÄ²å¼þ£¬Í¨¹ýʹÓÃFirephpÄã¿ÉÒÔÔÚFirebugµÄConsoleÀ¸Öп´µ½Òªµ÷ÊÔµÄÊý¾Ý£¬¶ø²»Ó°Ïìphp³ÌÐòµÄÕý³£Ö´ÐУ¬ËùÒÔ˵£¬Õâ¶«Î÷¶ÔÓÚAjax¿ª·¢ÊǺÜÓаïÖúµÄ£¡ÏÂÃæÒ»ÆðÀ´¿´ÏÂFirephpµÄʹÓ÷½·¨¡£
µÚÒ»²½£º°²×°
1.Èç¹ûÄãµÄFireFoxûÓÐFirebugÕâ¸ö²å¼þµÄ»°£¬Ê×ÏÈÒª°²×°FirebugÕâ¸ö²å¼þ£¬¿ÉÒÔµ½Æä¹Ù·½µØÖ·È¥ÏÂÔØ£ºhttp://www.getfirebug.com/
2.°²×°Firephp£¬¹Ù·½µØÖ·£ºhttp://www.firephp.org/
3.ÏÂÔØFirephpµÄphpÎļþ¡£²¢·ÅÔÚºÏÊʵÄĿ¼¡£
µÚ¶þ²½£º
°üº¬fb.php£¬¸ù¾ÝÄã·ÅÖõÄFirephpÎļþµÄµØÖ·À´°üº¬fb.php£¬±ÈÈ磺
require('FirePHPCore/fb.php')
µÚÈý²½£º
´ò¿ªÊä³ö»º³å£¨ÒòΪFirephpÖ÷ÒªÓõ½µÄÊÇheaderº¯Êý£©£¬ÓÐÈçÏÂÈýÖÖ·½·¨£º
ÔÚ³ÌÐòµÄÇ°Ãæ¼ÓÉÏob_start()
ÐÞ¸Äphp.ini ½«output_bufferingÉèΪ1»òÕßon
ÐÞ¸ÄapacheµÄÉèÖã¬ÔÚÅäÖÃÎļþÖмÓÉÏphp_flag output_buffering on
µÚËIJ½£º¿ªÊ¼µ÷ÊÔ£º
¿ÉÒÔµ÷ÊÔÊä³öÒÔÏÂÊý¾ÝÀàÐÍ£º
×Ö·û´®£¬¿ÉÒÔ·ÖΪLOG,INFO,WARN,ERRORËÄÖÖ
Object»òÕßArray
ͨ¹ýsql²éѯ·µ»ØµÄÊý¾Ý
Å׳öµÄÒì³£ÐÅÏ¢
·þÎñÆ÷·µ»ØµÄÐÅÏ¢£¨²»Êä³öÔÚconsoleÖУ¬¶øÊÇNETÖÐ
Èç¹ûÄã¸Ð¾õ»¹²»´íµÄ»°£¬¿É ......
ǰ¼¸ÌìÔÚFirebugÀ©Õ¹¿ª·¢Ò»ÎÄÖоÍÌáµ½¹ýFirephpÕâ¸ö»ùÓÚFirebugµÄ²å¼þ£¬Í¨¹ýʹÓÃFirephpÄã¿ÉÒÔÔÚFirebugµÄConsoleÀ¸Öп´µ½Òªµ÷ÊÔµÄÊý¾Ý£¬¶ø²»Ó°Ïìphp³ÌÐòµÄÕý³£Ö´ÐУ¬ËùÒÔ˵£¬Õâ¶«Î÷¶ÔÓÚAjax¿ª·¢ÊǺÜÓаïÖúµÄ£¡ÏÂÃæÒ»ÆðÀ´¿´ÏÂFirephpµÄʹÓ÷½·¨¡£
µÚÒ»²½£º°²×°
1.Èç¹ûÄãµÄFireFoxûÓÐFirebugÕâ¸ö²å¼þµÄ»°£¬Ê×ÏÈÒª°²×°FirebugÕâ¸ö²å¼þ£¬¿ÉÒÔµ½Æä¹Ù·½µØÖ·È¥ÏÂÔØ£ºhttp://www.getfirebug.com/
2.°²×°Firephp£¬¹Ù·½µØÖ·£ºhttp://www.firephp.org/
3.ÏÂÔØFirephpµÄphpÎļþ¡£²¢·ÅÔÚºÏÊʵÄĿ¼¡£
µÚ¶þ²½£º
°üº¬fb.php£¬¸ù¾ÝÄã·ÅÖõÄFirephpÎļþµÄµØÖ·À´°üº¬fb.php£¬±ÈÈ磺
require('FirePHPCore/fb.php')
µÚÈý²½£º
´ò¿ªÊä³ö»º³å£¨ÒòΪFirephpÖ÷ÒªÓõ½µÄÊÇheaderº¯Êý£©£¬ÓÐÈçÏÂÈýÖÖ·½·¨£º
ÔÚ³ÌÐòµÄÇ°Ãæ¼ÓÉÏob_start()
ÐÞ¸Äphp.ini ½«output_bufferingÉèΪ1»òÕßon
ÐÞ¸ÄapacheµÄÉèÖã¬ÔÚÅäÖÃÎļþÖмÓÉÏphp_flag output_buffering on
µÚËIJ½£º¿ªÊ¼µ÷ÊÔ£º
¿ÉÒÔµ÷ÊÔÊä³öÒÔÏÂÊý¾ÝÀàÐÍ£º
×Ö·û´®£¬¿ÉÒÔ·ÖΪLOG,INFO,WARN,ERRORËÄÖÖ
Object»òÕßArray
ͨ¹ýsql²éѯ·µ»ØµÄÊý¾Ý
Å׳öµÄÒì³£ÐÅÏ¢
·þÎñÆ÷·µ»ØµÄÐÅÏ¢£¨²»Êä³öÔÚconsoleÖУ¬¶øÊÇNETÖÐ
Èç¹ûÄã¸Ð¾õ»¹²»´íµÄ»°£¬¿É ......