php事前定義変数,超グローバル変数,マジックメソッド,特殊関数変数使用

34552 ワード

<?php

/*

 *             ,        

 * 

 *   php.ini variables_order=”EGPCS”

 *    $_REQUEST                 ,    bug,      

 * 

 *                       

 * 

 *           ,/usr/local/php  

 * 

 * 

 * 

 */

header("Content-type:text/html;charset=utf-8");



echo $_SERVER['PHP_SELF'];//

echo '<br><br><br>';



echo $_SERVER['GATEWAY_INTERFACE'];//         CGI      

echo '<br><br><br>';



echo $_SERVER['SERVER_ADDR'];//                IP   

echo '<br><br><br>';



echo $_SERVER['SERVER_NAME'];//                  

echo '<br><br><br>';



echo $_SERVER['SERVER_SOFTWARE'];//          

echo '<br><br><br>';



echo $_SERVER['SERVER_PROTOCOL'];//                 

echo '<br><br><br>';



echo $_SERVER['REQUEST_METHOD'];//             

echo '<br><br><br>';



echo $_SERVER['REQUEST_TIME'];//           

echo '<br><br><br>';



//echo $_SERVER['QUERY_STRING'];//       ,               

//echo '<br><br><br>';



echo $_SERVER['HTTP_ACCEPT'];//            

echo '<br><br><br>';



//echo $_SERVER['HTTP_ACCEPT_CHARSET'];//          Accept_Charset     

//echo '<br><br><br>';



echo $_SERVER['HTTP_HOST'];//          Host  

echo '<br><br><br>';



//echo $_SERVER['HTTP_REFERER'];//          URL(   ,             )

//echo '<br><br><br>';



//echo $_SERVER['HTTPS'];//       HTTP       

//echo '<br><br><br>';



echo $_SERVER['REMOTE_ADDR'];//             IP   

echo '<br><br><br>';



//echo $_SERVER['REMOTE_HOST'];//               

//echo '<br><br><br>';



echo $_SERVER['REMOTE_PORT'];//           Web           

echo '<br><br><br>';



echo $_SERVER['SCRIPT_FILENAME'];//             

echo '<br><br><br>';



echo $_SERVER['SERVER_ADMIN'];//      Apache           SERVER_ADMIN   

echo '<br><br><br>';



echo $_SERVER['SERVER_PORT'];//Web         。     “80”

echo '<br><br><br>';



echo $_SERVER['SERVER_SIGNATURE'];//             

echo '<br><br><br>';



//echo $_SERVER['PATH_TRANSLATED'];//          (      )     

//echo '<br><br><br>';



//echo $_SERVER['SCRIPT_NAME'];//         

//echo '<br><br><br>';



//echo $_SERVER['SCRIPT_URI'];//        URI

//echo '<br><br><br>';



echo $_SERVER["DOCUMENT_ROOT"];//

echo '<br><br><br>';



//    $_SERVER            var_dump($_SERVER);     

/*

 * 

 *    PHP        

 * 

 *         ,   php.ini       

 * 

 *                          ,             

 * 

 */



echo PHP_VERSION;//

echo '<br><br><br>';



//if(version_compare(PHP_VERSION,'5.3.0','<'))  die('require PHP > 5.3.0 !');//                   







echo PHP_OS;//      

echo '<br><br><br>';



echo PHP_SAPI;//    php    ,cgi-fcgi,apache2handler,cli,   fcgi   php-fpm+nginx, apache       fcgi     

echo '<br><br><br>';



echo PHP_INT_MAX;//int      

echo '<br><br><br>';



echo PHP_ZTS;//  

echo '<br><br><br>';



echo PHP_DEBUG;//    debug

echo '<br><br><br>';



echo PHP_MAXPATHLEN;//        

echo '<br><br><br>';



echo DEFAULT_INCLUDE_PATH;//

echo '<br><br><br>';



echo PEAR_INSTALL_DIR;//php            

echo '<br><br><br>';



echo Get_Current_User();//          

echo '<br><br><br>';



echo Zend_Version();//zend    

echo '<br><br><br>';



echo PEAR_EXTENSION_DIR;//php            

echo '<br><br><br>';



echo PHP_EXTENSION_DIR ;//php  linux.so windows.dll 

echo '<br><br><br>';



echo PHP_PREFIX;//php    ,linux windows  ,   

echo '<br><br><br>';



echo PHP_BINDIR;//php bin  

echo '<br><br><br>';



echo PHP_LIBDIR;//php lib     

echo '<br><br><br>';





echo PHP_DATADIR;//php       ${prefix}/share

echo '<br><br><br>';



echo PHP_SYSCONFDIR;//php       /usr/local/php/etc                     /etc/php.ini

echo '<br><br><br>';



echo PHP_LOCALSTATEDIR;//php  var  ,       pid     

echo '<br><br><br>';



echo PHP_CONFIG_FILE_PATH;//php           /etc

echo '<br><br><br>';



echo PHP_CONFIG_FILE_SCAN_DIR;//php      

echo '<br><br><br>';





echo PHP_SHLIB_SUFFIX;//php      ,linux so.windows dll

echo '<br><br><br>';



echo PHP_OUTPUT_HANDLER_START;//         , ob_start      

echo '<br><br><br>';



echo PHP_OUTPUT_HANDLER_CONT;//       

echo '<br><br><br>';



echo PHP_OUTPUT_HANDLER_END;//     

echo '<br><br><br>';



echo E_ERROR;//         

echo '<br><br><br>';





echo E_WARNING;//       

echo '<br><br><br>';



echo E_PARSE;//         

echo '<br><br><br>';



echo E_NOTICE;//      

echo '<br><br><br>';



echo E_CORE_ERROR;//      

echo '<br><br><br>';



echo E_CORE_WARNING;//   php  

echo '<br><br><br>';



echo E_COMPILE_ERROR ;//      

echo '<br><br><br>';



echo E_COMPILE_WARNING;//    

echo '<br><br><br>';



echo E_USER_ERROR;//          

echo '<br><br><br>';



echo E_USER_WARNING;//            

echo '<br><br><br>';



echo E_USER_NOTICE;//       

echo '<br><br><br>';





echo E_ALL;//error_reporting()       E_ALL    

echo '<br><br><br>';



echo E_STRICT;//       (           )

echo '<br><br><br>';



//echo __COMPILER_HALT_OFFSET__;//__halt_compiler()  ,             

//                Zend Framework    PHP              。                  

//echo '<br><br><br>';



echo EXTR_OVERWRITE;//extract()  ,

echo '<br><br><br>';

/*

 * extract()                      ,                   。    /               extract_type     。        :



EXTR_OVERWRITE 

     ,       。 

EXTR_SKIP 

     ,        。 

EXTR_PREFIX_SAME 

     ,          prefix 。 

EXTR_PREFIX_ALL 

           prefix 。  PHP 4.0.5               。 

EXTR_PREFIX_INVALID 

    /            prefix 。     PHP 4.0.5    。 

EXTR_IF_EXISTS 

               ,      。       。                ,           $_REQUEST              。     PHP 4.2.0    。 

EXTR_PREFIX_IF_EXISTS 

               ,           ,       。     PHP 4.2.0    。 

EXTR_REFS 

         。                  var_array     。              extract_type    OR            。     PHP 4.3.0    。 

       extract_type ,      EXTR_OVERWRITE。



   prefix    extract_type     EXTR_PREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID   EXTR_PREFIX_IF_EXISTS    。                   ,          。                   。



extract()                 。

 * 

 * 

 */

echo E_RECOVERABLE_ERROR;//      。     e_error               

echo '<br><br><br>';



/*

 * 

 *       PHP  “    ”

 * 

 * 

 * 

 * 

 * 

 * 

 * 

 */







echo __LINE__;//           

echo '<br><br><br>';



echo __FILE__;//

echo '<br><br><br>';



echo __DIR__;//

echo '<br><br><br>';



class trick

{

      function dog()

      {

                echo __FUNCTION__;//        

      }

      function cat()

      {

                echo __METHOD__;//             

      }

}

$obj=new trick();

$obj->dog();

echo '<br>';

$obj->cat();

echo '<br><br><br>';



/*

 * 

 *   php    

 * 

 * 

 */



trait PeanutButter {

    function traitName() {echo __TRAIT__;}

}



trait PeanutButterAndJelly {

    use PeanutButter;

}



class Test {

    use PeanutButterAndJelly;

}



(new Test)->traitName();

echo '<br><br><br>';









echo __NAMESPACE__;//

echo '<br><br><br>';



/*

 * 

 * php    

 * 

 * 

 * 

1、__construct() 

         ,  __construct                ,__construct    ,       。 



2、__destruct() 

                  。 



3、__call() 

        ,      ,     ;    ,     __call  。 



4、__get() 

          ,     ,        ;     ,    __get  。 



5、__set() 

          ,      ,     ; 

    ,    __set  。 



6、__toString() 

           。 echo $obj; print $obj; 



7、__clone() 

        。 :$t=new Test();$t1=clone $t; 



8、__sleep() 

serialize     。      ,           ,        。 



9、__wakeup() 

unserialize    ,          。 



10、__isset() 

                 。 :isset($c->name)。 



11、__unset() 

unset           。 :unset($c->name)。 



12、__set_state() 

  var_export ,   。 __set_state      var_export    。 



13、__autoload() 

        ,         ,       。

 * 

 * 

 */













/*

 * 

 *      

 * 

 * 

1.$GLOBALS 

2.$_SERVER      

3.$_GET      method="get",          

4.$_POST 

5.$_FILES 

6.$_COOKIE  setcookie

7.$_SESSION 

8.$_REQUEST  $_REQUEST     post get      ,     variables_order=”EGPCS”    ,     ,

 *          ,             

9.$_ENV   

 * 

 *            ,      

 */



//$GLOBALS         register_globals        on  $GLOBALS   global   



/*

$a = 1;

$b = 2;



function Sum()

{

    global $a, $b;



    $b = $a + $b;

}



Sum();

echo $b;

 * 

 */



/*

 * 

 * 

$a = 1;

$b = 2;



function Sum()

{

    $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];

}



Sum();

echo $b;

 */





/*

 * 

 * $_GET $_POST 

“Superglobal”           。                    。            global $variable;     。

GET     urldecode()    

       ,    2KB

 * 

 * GET      /       , POST          

 * 

 * POST  :          HTTP     。  Content-type   :application/x-www-form-urlencoded

 * 

 * $_GET    urldecode()    

 * 

 */



/*

 * $_FILES

 * 

 *           

 * enctype="multipart/form-data"

 *

 * 

 * <form action="__URL__"  enctype="multipart/form-data" method="post">

             <input type="file" name="pic1"  /> <br>

             <input type="file" name="pic2"  /> <br>

             <input type="file" name="pic3"  /> <br>

             <input type="submit" value="  " />

        </form>

 * name        

 * 

 * var_dump($_FILES);              

 * 

 * 

 * $_FILES['XX']['name']      

 * $_FILES['XX']['type']      ,               

 * $_FILES['XX']['tmp_name']          

 * $_FILES['XX']['error']   

 * $_FILES['XX']['size']    

 * 

 * 

  UPLOAD_ERR_OK              :0;       ,      。

  UPLOAD_ERR_INI_SIZE       :1;          php.ini   upload_max_filesize       。

  UPLOAD_ERR_FORM_SIZE   :2;            HTML     MAX_FILE_SIZE       。

  UPLOAD_ERR_PARTIAL           :3;          。

  UPLOAD_ERR_NO_FILE           :4;        。     :5;        0.

 * 

 * 

 *         

 * 

 *        

 * 

 * 

 * 

 * if(is_uploaded_file($_FILES['pic']['tmp_name'])){

    //echo 'OK';

    $dir = "./upload/".date("Ymd",time());

            if(!is_dir($dir)){

                mkdir($dir,0777);

                chmod($dir, 0777);

                system('chmod 0777 $dir');

            }

      $file_name = time().rand(100, 1000000);

      $pinfo=pathinfo($_FILES['pic']['name']);  

      $type = $pinfo['extension'];  

    $destination = $dir."/".$file_name.".".$type;

    

    

    if(move_uploaded_file($_FILES['pic']['tmp_name'], $destination)){

        echo "upload - OK";

        echo $destination;

    }  else {

        echo $_FILES["pic"]["error"];

    }

}

 * 

 * 

 * 

 * 

 */



/*

 * $_SESSION

 * 

 *     

 * 

1.session_abort — Discard session array changes and finish session

1.session_abort —   session  ,      

2.session_cache_expire —            

3.session_cache_limiter —   /       

4.session_commit — session_write_close    

5.session_decode —       

6.session_destroy —             

7.session_encode —                

8.session_get_cookie_params —      cookie   

9.session_id —   /       ID

10.session_is_registered —               

11.session_module_name —   /        

12.session_name —   /      

13.session_regenerate_id —          ID        ID

14.session_register_shutdown —     

15.session_register — Register one or more global variables with the current session

15.session_register —    session            

16.session_reset — Re-initialize session array with original values

16.session_reset —              

17.session_save_path —   /           

18.session_set_cookie_params —      cookie   

19.session_set_save_handler —              

20.session_start —              

21.session_status — Returns the current session status

21.session_status —         

22.session_unregister — Unregister a global variable from the current session

22.session_unregister —             

23.session_unset — Free all session variables

23.session_unset —     session  

24.session_write_close — Write session data and end session

24.session_write_close —         session

 * 

 * 

 * 

 *  php.ini    session    

 * 

                 

session.save_path  "" PHP_INI_ALL   

session.name  "PHPSESSID" PHP_INI_ALL   

session.save_handler  "files" PHP_INI_ALL   

session.auto_start  "0" PHP_INI_PERDIR   

session.gc_probability  "1" PHP_INI_ALL   

session.gc_divisor  "100" PHP_INI_ALL   PHP 4.3.2    。 

session.gc_maxlifetime  "1440" PHP_INI_ALL   

session.serialize_handler  "php" PHP_INI_ALL   

session.cookie_lifetime  "0" PHP_INI_ALL   

session.cookie_path  "/" PHP_INI_ALL   

session.cookie_domain  "" PHP_INI_ALL   

session.cookie_secure  "" PHP_INI_ALL   PHP 4.0.4    。 

session.cookie_httponly  "" PHP_INI_ALL   PHP 5.2.0.    

session.use_strict_mode  "0" PHP_INI_ALL   PHP 5.5.2.    

session.use_cookies  "1" PHP_INI_ALL   

session.use_only_cookies  "1" PHP_INI_ALL   PHP 4.3.0    。 

session.referer_check  "" PHP_INI_ALL   

session.entropy_file  "" PHP_INI_ALL   

session.entropy_length  "0" PHP_INI_ALL   

session.cache_limiter  "nocache" PHP_INI_ALL   

session.cache_expire  "180" PHP_INI_ALL   

session.use_trans_sid  "0" PHP_INI_ALL   PHP <= 4.2.3   PHP_INI_ALL,  PHP < 5   PHP_INI_PERDIR。  PHP 4.0.3    。 

session.bug_compat_42  "1" PHP_INI_ALL   PHP 4.3.0    。 

session.bug_compat_warn  "1" PHP_INI_ALL   PHP 4.3.0    。 

session.hash_function  "0" PHP_INI_ALL   PHP 5.0.0    。 

session.hash_bits_per_character  "4" PHP_INI_ALL   PHP 5.0.0    。 

url_rewriter.tags  "a=href,area=href,frame=src,form=,fieldset=" PHP_INI_ALL   PHP 4.0.4    。 

session.upload_progress.enabled  "1" PHP_INI_PERDIR Available since PHP 5.4.0. 

session.upload_progress.cleanup  "1" PHP_INI_PERDIR Available since PHP 5.4.0. 

session.upload_progress.prefix  "upload_progress_" PHP_INI_PERDIR Available since PHP 5.4.0. 

session.upload_progress.name  "PHP_SESSION_UPLOAD_PROGRESS" PHP_INI_PERDIR Available since PHP 5.4.0. 

session.upload_progress.freq  "1%" PHP_INI_PERDIR Available since PHP 5.4.0. 

session.upload_progress.min_freq  "1" PHP_INI_PERDIR Available since PHP 5.4.0. 



 * 

 *           session  ,    ,    session       cookies   

 * session_start()          

 * 

 *    session handler  redis,      memcache,  memcache       ,redis      session  

 *      ,  php.ini

 session.save_handler = redis  

 session.save_path = "tcp://127.0.0.1:6379"  

 * 

ini_set("session.save_handler", "redis");   

ini_set("session.save_path", "tcp://127.0.0.1:6379");    

 * 

 * ini_get()    php.ini     

 * 

 *cookies

 * 

setcookie(name,value,expire,path,domain,secure)

name      。   cookie    。

value      。   cookie   。

expire      。   cookie     。

path      。   cookie       。

domain      。   cookie    。

secure      。          HTTPS       cookie。

 * 

 *      cookie  ,cookie         URL   。       URL   。        ,     setrawcookie()   。

 * 

 * 

 *              ,    (         )  cookies,             

$ss= "hello!";

setcookie("user","$ss", time()+3600);

echo $_COOKIE['user'];

 * 

 * 

 * 

 * 

 */