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'];
*
*
*
*
*/