php基礎コード大全(絶えず完備中)

298256 ワード

以下はベースのPHPのコードで、どんどん整備中~
   1 //    (syntax error)       ,        ,        。
   2 
   3 
   4 /* 【    】 */
   5// MIN_WIDTH
   6                          // $var_name
   7                            // varName
   8                          // <<
   9// func_name.php
  10// private $_name _func
  11       I_                    // interface I_Name
  12 
  13 /*      */
  14 array(), echo(), empty(), eval(), exit(), isset(), list(), print(), unset()
  15 echo, print      。
  16 
  17 /*       */
  18 PATH_SEPARATOR  //     (Windows   , Unix   )
  19 DIRECTORY_SEPARATOR //     
  20 PHP_EOL //        
  21 PHP_VERSION //PHP   
  22 PHP_OS  //PHP      
  23 PHP_SAPI    //                  ,   PHP_SAPI=='cli'           
  24 PHP_INT_MAX                    INT   ,32      2147483647
  25 PHP_INT_SIZE                   INT  ,32      4(4  )
  26 M_PI    //    
  27 M_E     //   
  28 
  29 //PHP        
  30 php_sapi_name() //    PHP WEB             
  31          PHP_SAPI  !
  32     :SAPI(the Server API, SAPI)
  33    :aolserver、apache、apache2filter、apache2handler、caudium、cgi、cgi-fcgi、cli、 continuity、embed、isapi、litespeed milter、nsapi、phttpd、pi3web、roxen、thttpd、tux、webjames
  34 
  35 
  36 /*       */
  37 -   、   、   、   :      
  38 -    、   、    :     
  39 
  40 /*       */
  41       $i = 3; $k = 'i'; echo $$k; //  3
  42       function func() {echo 'hello!';} $i = 'func'; $i(); //  hello
  43       $i = '1234'; $k = 3; echo $i[$k];   //  4
  44       class CLS{public $k = 'hello';} $i = 'CLS'; $j = new $i; echo $j->k;
  45       class CLS{public $k = 'hello';} $i = 'k'; $j = new CLS; echo $j->$i;
  46       class CLS{public function k(){echo 'hello';}} $i='k'; $j=new CLS; $j->$i();
  47 
  48 /*      */
  49 *                 
  50     $var_name = "class_name";
  51     $$var_name = "PHP0913";        // $class_name = "PHP0913";$class_name      
  52     var_dump($class_name);        // var_dump($$var_name);
  53 
  54 /*      */
  55 get_defined_vars    //                (      、             )
  56 
  57 
  58 /* unset() */
  59 * unset()           ,       
  60 *      ,          ,          ,      
  61 
  62      echo "
"; 63 $v3 = ' '; 64 $v4 = &$v3; 65 unset($v4); 66 var_dump($v3, $v4); 67 68 /* */ 69 * , , 70 71 72 /* / */ 73 $GLOBALS 74 $_COOKIE 75 $_ENV 76 $_FILES 77 $_GET 78 $_POST 79 $_REQUEST 80 $_SERVER 81 $_SESSION 82 83 84 /* */ 85 define( , , [ ]) //true /false 86 const = // 87 88 constant($name) // 89 // :echo constant('-_-'); 90 91 92 /* */ 93 defined 94 get_defined_constants 95 96 97 /* */ 98 __FILE__ 99 __LINE__ 100 __DIR__ 101 __FUNCTION__ 102 __CLASS__ 103 __METHOD__ 104 __NAMESPACE__ 105 106 107 /* */ 108 4 , 4*8=32 , 2147483647, -2147483648, 1 109 ,1 ,0 110 111 112 /* */ 113 114 , ( “0” “0x”) 115 dec 116 bin 117 oct 118 hex 119 hexdec() hex2dec() 120 dechex() dec2hex() 121 bindec() bin2dec() 122 decbin() dex2bin() 123 octdec() oct2dec() 124 decoct() dec2oct() 125 126 127 /* */ 128 !!! 129 , ! 130 :+/- 1.8E308 131 PHP :14 132 133 /* */ 134 135 136 /* */ 137 !!! 138 eval PHP 139 , 。 :"aaa{$bbb}ccc" 140 ASCII 141 "\x61" -> a // 0, 0x 142 "\x49\x54\x43\x41\x53\x54" -> ITCAST 143 ASCII chr() 144 ASCII ord() 145 # 146
147 \r 148 \t 149 \\ 150 \$ 151 \v 152 \e Escape 153 \f 154 \" " 155 \[0-7]{1,3} 156 \x[0-9A-Fa-f]{1,2} 157 158 159 160 /* */ 161 herodoc - 162 $str = <<<AAA 163 164 AAA; 165 166 nowdoc - 167 168 $str = <<<'AAA' 169 170 AAA; 171 172 173 /* */ 174 , 。 ( 、 、 ), 175 $str = "abcd"; 176 echo $str[3]; // d 177 echo $str{0}; // a 178 179 180 /* 【 】 */ 181 // / 182 gettype($var) // 183 settype($var, $type) // 184 185 // 186 is_int 187 is_float 188 is_null 189 is_string 190 is_resource 191 is_array 192 is_bool 193 is_object 194 is_numeric 195 196 // 197 boolval 198 floatval 199 intval 200 strval 201 202 // 203 (int) 204 (float) 205 (string) 206 (bool) 207 (array) 208 (object) 209 (unset) // NULL 210 (binary) b // 211 212 var_dump 。 213 , 。 214 , 。 215 var_export($var [,bool $return]) // 216 $return: true, 217 print_r 218 empty 219 isset 220 221 /* 【 】 */ 222 //if 223 if ( ) : 224 ; 225 elseif ( ) : 226 ; 227 else : 228 ; 229 endif; 230 231 // 232 HTML 233 { : , } endif; 234 endif 235 endwhile 236 endfor 237 endforeach 238 endswitch 239 240 241 /* 【switch】 */ 242 switch ( ) { 243 case 1: 244 ; 245 [break;] 246 case 2: 247 ; 248 [break;] 249 case 3: 250 case 4: 251 ; 252 [break;] 253 default: 254 ; 255 [break;] 256 } 257 switch , 258 259 break 260 261 262 /* 【for 】 */ 263 for ( ; ; ) { 264 265 } 266 267 N , 268 1 269 N+1 270 N 271 272 273 1. for , 274 2. for 275 3. , 276 a. , null, , 277 。 for 。 278 b. , , 279 c. , 280 4. , 281 , , 282 5. for 283 :count() 284 6. , 285 286 287 /* 【goto】5.3+ */ 288 289 290 PHP goto , , 291 , 。 292 switch 。 293 switch, break。 294 (switch) , 。 , 。 295 goto a; 296 echo 'Foo'; 297 a: 298 echo 'Bar'; 299 300 301 /* 【 】 */ 302 require / include / require_once / include_once 303 304 305 , require , , 306 , require 307 【 】 308 , PHP ; 309 , ; 310 , PHP 。 311 require: , E_COMPILE_ERROR , 。 312 include: , E_WARNING , 。 313 314 # require_once/include_once 315 316 317 /* 【 】 */ 318 , 。 319 ./file file file 320 file ( ): 321 322 , 。 323 __DIR__ 324 __FILE__ 325 326 include_path 327 set_include_path() include_path, , 328 path 329 330 include_path 331 332 get_include_path() include_path , 333 334 , Windows , Linux 335 PATH_SEPARATOR 336 337 338 1. include_path 339 2. 340 3. 341 , ,include_path 342 343 344 /* 【return】 */ 345 return require , ,return 346 return , 347 return 348 349 350 /* 【 】 */ 351 die / exit 352 return 353 die exit 354 die(" "); 355 sleep() ( : ) 356 30 ,PHP max_execution_time 357 :sleep(12); 358 usleep() 359 time_sleep_until 360 361 362 /* 【 】 */ 363 1. , , ! 364 2. , ! 365 3. , , ! 366 4. , 367 ! ! 368 , ! 369 5. 370 6. , 371 7. 【 】 372 373 $func_name = "sayHello"; 374 $func_name(); // sayHello() 375 : , ! 376 8. , ! 377 9. parameter, argument 378 null 379 , 。 380 , & 381 382 a. 383 b. 384 c. 385 10. 386 a. , ! 387 388 b. , 389 , , 390 c. , 、null 391 d. 392 11. 393 a. 394 , NULL 395 b. 396 397 c. 398 1) , 399 2) 【 】 400 func_get_args() , 401 func_get_arg() , ,e.g: func_get_arg(0) 402 func_num_args() 403 12. 【return 404 a. , , return 405 b. return , 406 c. 407 d. ( ) 408 1) 409 2) : 410 - , & 411 - , & 412 , , 413 - 414 - , & 415 function &returns_reference(){return $someref;} 416 $newref =& returns_reference(); 417 3) 418 419 420 /* 【 】 */ 421 a. 422 1) , , 423 2) - 424 3) - 425 426 b. , , , 。 427 $GLOBALS $_COOKIE $_ENV $_FILES $_GET 428 $_POST $_REQUEST $_SERVER $_SESSION 429 c. $GLOBALS 430 1) , ! 431 2) , $GLOBALS 432 3) $GLOBALS 433 - $GLOBALS ! 434 , $GLOBALS ! 435 , , , 436 - , , 437 , $GLOBALS 438 - , $GLOBALS 439 4) PHP , , 440 4) global ( ) 441 ' ' 442 global $var; // $var = &$GLOBALS['var']; 443 $GLOBALS!!! 444 global , 。 445 $GLOBALS , 。 446 global , , , include require 。 447 d. 448 1) , 449 2) 。 450 , ! 451 452 453 /* 【 】 */ 454 1. , 455 2. , 456 3. 457 static 458 , , 。 459 , 。 460 static 。 461 462 463 /* 【 】 */ 464 465 ( ), ! 466 ( ), , 467 468 。 ! 469 : , 470 471 472 /* 【 / 】 */ 473 , (closures), 。 474 475 1. , 。 476 2. PHP , 。 477 3. 。 478 4. Closure 479 5. 480 6. use($param) , 481 7. 482 $func = function ($e) { 483 echo $e; 484 }; // , , 485 var_dump($func); // 486 $func('ITCAST'); // 487 , 。Closure 488 //use 489 , 。 490 use 。 ! 491 use : 492 use 493 function out() { 494 $v = "in out"; 495 $func = function () use (& $v) { 496 var_dump($v); 497 } 498 } 499 use , 。 500 // 501 ' ' ( ) 502 503 PHP array_map() , , 504 (array) = array_map( , ); 505 $result_arr = array_map(function ($v) {return $v3}, $arr); 506 507 // 508 function closureCreater() { 509 $x = 1; 510 return function($fun = null) use(&$x) {// 511 echo "
" . $x++; 512 $fun and $fun(); 513 }; 514 } 515 516 $x = "hello world"; 517 $test = closureCreater(); 518 $test(); 519 $test(function(){ echo "closure test one"; }); 520 $test(function(){ echo "closure test two"; }); 521 $test(function() use($x){ echo "
".$x;}); 522 523 // 524 $x = 'outer param.'; 525 $arr = array(); 526 $arr[] = function($str)use($x){ return $str.$x; }; 527 echo $arr[0]('test fun in arr,'); 528 529 530 /* 【 】 */ 531 : , 。 532 : , 。 0 , 533 count($var [,$mode]) // 534 $mode , 1 true 535 $var , 1;$var null , 0 536 537 // 538 ($arr[1]) 539 ($arr = array('1'=>'abc'); $arr[1]) 540 , ($arr = array('a'=>'aaa'); $arr['a']) 541 , , ($arr = array('a'=>'aaa'); "$arr[a]") 542 543 /* 【 】 */ 544 current/pos , 。 545 key , 546 next , 。 , 。 547 prev , , 。 548 end , 549 reset , 550 551 each / 552 4 , 0 key , 1 value 553 each() , 554 555 each , reset()。 556 557 1. , key(), , false。 key() null。 558 2. , next/prev , reset/end 559 3. current/next/prev (0 "") false。 each ! 560 561 list 。list() , 562 0 563 /* */ list($a, $b) = array($b, $a); 564 :list($drink, , $power) = array('coffee', 'brown', 'caffeine'); 565 566 1. , 。 567 : , , 。 568 【 】 569 , 。 ( ) 。 570 current() , 。 571 foreach , , 。 572 ,foreach , 。 573 , 。 574 2. , reset() 。 575 576 577 /* 【 】 */ 578 * 579 580 foreach 581 foreach (array_expression as [$key =>] & $value) 582 foreach , 。 583 , , 584 1. foreach ,break continue foreach 585 2. foreach 。 586 3. $value , 587 4. $value , $value & 588 5. $key 589 6. foreach , 590 , , 。 591 592 593 while...list...each 594 while (list($key, $val) = mysql_fetch_row($result)) = each($arr) { 595 echo "$key => $val
"; 596 } 597 598 599 600 /* 【 】 */ 601 // 602 count 603 array_count_values 604 array_product 605 array_sum 606 range 607 608 // 609 array_chunk 610 array array_chunk(array $input, int $size[, bool $preserve_keys]) 611 array_filter 612 array_slice 613 array array_slice($arr, $offset [,$len [,$preserve_keys]]) 614 array_keys 615 array array_keys(array $input[, mixed $search_value[, bool $strict]] ) 616 search_value, 。 input 。 617 array_values , 618 619 array_merge 620 621 , 。 622 , , 。 623 , 。 624 array_merge_recursive 625 626 // 627 in_array 628 bool in_array(mixed $needle, array $haystack[, bool $strict]) 629 array_key_exists 630 isset() NULL TRUE, array_key_exists() 631 array_search , 632 633 array_combine , , 634 FALSE。 635 array_rand , , 636 array_fill 637 array_fill($start, $num, $value) 638 array_flip 639 array_pad 640 array_reverse 641 array_unique 642 array_splice 643 644 implode 645 explode($delimiter, $str [,$limit]) // 646 $delimiter "" 647 648 array_map , , 649 callback null, 650 array_walk , , , foreach 651 bool array_walk ( array &$array , callback $funcname [, mixed $userdata ] ) 652 653 // 654 655 array_push ( ) 656 array_pop ( ) (reset())array 。 657 658 // 659 660 array_unshift 661 array_shift (reset())array 。 662 663 // 664 sort 665 rsort 666 asort 667 arsort 668 ksort 669 krsort 670 usort 671 uksort 672 uasort 673 natsort “ ” 674 natcasesort “ ” 675 array_multisort 676 shuffle 677 , bool 。 678 679 680 // 681 array_udiff_assoc , 682 array_udiff_uassoc , 683 array_udiff 684 array_diff_assoc 685 array_diff_key 686 array_diff_uassoc 687 array_diff_ukey 688 array_diff 689 // 690 array_intersect_assoc 691 array_intersect_key 692 array_intersect_uassoc , 693 array_intersect_ukey 694 array_intersect 695 array_key_exists 696 array_uintersect_assoc , 697 array_uintersect , 698 699 extract($arr [,$type [,$prefix]]) ( $arr , ) 700 compact($var [,...]) , ( ) 701 702 703 704 705 /* 【 】 */ 706 mixed ( ) 。 707 number integer float 708 callback 709 void void 。 710 void 。 711 712 713 /* 【 】 */ 714 # 715 mysql_connect 716 # SQL , 717 mysql_query SQL 718 select, show, explain, describe , true。 false。 719 # 720 mysql_fetch_assoc 721 , each 722 723 mysql_fetch_row 724 mysql_fetch_array , , 725 array mysql_fetch_array ( resource $result [, int $ result_type ] ) 726 result_type :MYSQL_ASSOC,MYSQL_NUM MYSQL_BOTH( ) 727 mysql_free_result 728 # 729 mysql_close 730 731 732 /* 【 】 */ 733 # : 734 : 、 、 735 : 、 736 # , !!! 737 738 # 、 、 739 # $this ,self ,parent 740 # ( ) 741 # PHP , PHP 742 743 // 744 - 745 void __construct([ mixed $args [, $... ]] ) 746 - new , 。 747 - 748 - 5.3.3 , 。 749 - ,__construct 750 751 // 752 - 753 void __destruct( void ) 754 # : 755 # 756 - 757 - 758 - ( , null) 759 - exit() 760 761 // (static ) 762 - static, 。 763 - ( ) , $this -> 764 - , 。 765 - , 。 766 # 767 - -> 768 - , 。 , , 。 769 # 770 - , $this 。 771 - :: E_STRICT 。 772 773 // (::) 774 - 、 , 。 775 - 、 , 。 776 - self parent 。 777 778 // 779 - , $this , , -> , $。 780 -> -> () $this-> $this-> () 781 - , self parent , , :: , $。 782 ::$ :: () self::$ self:: () 783 - : 。( ) 784 ::$ $this::$ ::$ () $this:: () 785 # ->, :: 786 787 - , 。 788 - , 。 789 - ,$this ! 790 - $this 791 - , $this 792 - , 。 793 794 // 795 - 796 - $ 。 797 - , , ( ) 。 798 # :const = ; 799 - public 800 - , , :: self:: 801 802 // 803 - __autoload 804 - ( , ) 805 - __autoload 806 - __autoload , require 807 - __autoload 808 function __autoload($class_name) { 809 require_once $_SERVER["DOCUMENT_ROOT"] . "/class/$class_name.php"; 810 } 811 // $_SERVER["DOCUMENT_ROOT"] 812 - , ! 813 - , , spl_autoload_register 。 814 # spl_autoload_register 815 - __autoload() 816 bool spl_autoload_register ([ callback $autoload_function ] ) 817 - 818 - ,__autoload 。 819 - , ( ); , 820 # , : 821 spl_autoload_register(array(__CLASS__, '__autoload')); 822 __CLASS__ , $this 823 824 // ( ) 825 # 826 # , 827 # , , 8281. ;2. 829 # 830 serialize 831 string serialize ( mixed $value ) 832 - , value , 。 833 - PHP , 。 834 # 835 unserialize PHP 836 mixed unserialize ( string $str [, string $callback ] ) 837 - , PHP 。 838 839 840 # 841 - file_put_contents 842 int file_put_contents($file, $data [,$flags]) 843 $flags:FILE_USE_INCLUDE_PATH( ),FILE_APPEND( ) 844 - file_get_contents 845 string file_get_contents($file [, bool $use_include_path [,int $offset [,int $maxlen]]]) 846 847 # 848 - , 。 849 # , 。 850 851 __sleep 。 852 - , , 。 853 - 854 __wakeup , 855 - 856 public function __sleep() { 857 return array('server', 'username', 'password', 'db'); 858 } 859 public function __wakeup() { 860 $this->connect(); 861 } 862 863 // 864 class extends {} 865 , 。 866 : , 。 。 867 868 instanceof 869 instanceof 870 871 // 872 public ( 、 、 ) 873 protected ( 、 ) 874 private ( ) 875 、 。 876 # 877 - ,var public 878 - , , public 879 880 // override 881 $this , , 。 882 - , , 。 883 - 884 - , 。 885 - 886 887 , 。 , 。 888 889 , 。 parent::__construct() 890 891 # 892 893 894 895 , 。 896 897 # $this 898 $this , 。 899 - 900 - 。 , $this ( ), 。 901 $this , 。 902 903 # final 904 final, ( ) 。 905 final, 。 906 final ! 907 # 908abstract 909 , , 。 910 。 。 911 , 。 。 912 , 。 913 , 。 914 , ( )。 915 , protected, protected public, private。 916 - 917 - 918 1. , , 。 919 2. ( )。 。 920 921 // 922interface 923 - 924 - , 。 925 - interface , , 。 926 - public, public 。 927 - (const)。 。 928 :: 。 :: , :: 。 929 , , 。 930 - 931 # 932 interface { 933 ( ) 934 } 935 # 936 - , implements 。 937 - , fatal 。 938 - , 。 939 - , 。 940 - , extends 。 941 class implements { 942 943 } 944 # 945 1. , 。 946 2. , 。 947 3. , 。 948 4. 。 extends 。 949 interface I_C extends I_A, I_B {} 950 951 // 952 self::, ( ) 953 , 。 954 , ,self 。 955 static::, ( ) 956 957 , 。 958 static:: , 。 959 960 // ( ) 961 - , 。 962 - foreach , 。 963 foreach ($obj as $p_name => $p_value) {} 964 # ( Iterator) 965 Iterator - 966 Iterator::current — 967 Iterator::key — 968 Iterator::next — 969 Iterator::rewind — 970 Iterator::valid — 971 972 # 973 // [ ] 。 974 : = clone 975 - 976 __clone() 。 977 : (new), (clone)。 978 979 // 980 # 981 (Singleton) 。 。 , 。 982 # 983 class MySQLDB { 984 private static $instance = null; // 985 // private, 986 private function __construct() {} 987 public static function getInstance() { 988 if(! self::$instance instanceof static) { 989 self::$instance = new static; 990 } 991 return self::$instance; 992 } 993 private function __clone() {} // 994 } 995 996 // 997 __construct 998 __destruct 999 __clone 1000 __sleep 1001 __wakeup 1002 __autoload , 1003 1004 __toString 1005 __invoke 1006 1007 # overload 1008 " " 1009 , 。 1010 public。 1011 , 。 1012 1013 # 1014 - 1015 1016 # 1017 , 。 static。 1018 __set 1019 public void __set(string $name, mixed $value) 1020 : , 1021 __get 1022 public mixed __get(string $name) 1023 __isset isset() empty() 1024 public bool __isset(string $name) 1025 __unset unset() 1026 public void __unset(string $name) 1027 # 1028 - 1029 __call ( , ) 1030 public mixed __call(string $name, array $arguments) 1031 __callStatic ( , ) 1032 public static mixed __callStatic(string $name, array $arguments) 1033 # $name 。$arguments , 。 1034 1035 // 1036 1037 , array 1038 NULL 1039 , 。 1040 1041 // 1042 : , 。 1043 : 。 。 1044 : 。 1045 1046 // · 1047 this 1048 public ( 、 、 ) 1049 protected ( 、 ) 1050 private ( ) 1051 parent:: 1052 self:: ( ) 1053 static:: ( ) 1054 static ( 、 ), , , 1055 final final , final ( 、 ) 1056 const ( ) 1057 abstract 1058 interface 1059 extends ( 、 ) 1060 implements ( 、 )( ) 1061 Iterator ( ) 1062 clone 1063 instance 1064 instanceof 1065 1066 /* 【 】 */ 1067 class_alias([$original [,$alias]]) 1068 class_exists($class [,$autoload]) 1069 interface_exists($interface [,$autoload]) 1070 method_exists($obj, $method) 1071 property_exists($class, $property) 1072 get_declared_classes(void) 1073 get_declared_interfaces(void) 1074 get_class([$obj]) 1075 get_parent_class([$obj]) 1076 get_class_methods($class) 1077 get_object_vars($obj) 1078 get_class_vars($class) 1079 is_a($obj, $class) TRUE 1080 is_subclass_of($obj, $class) , TRUE 1081 get_object_vars($obj) 1082 1083 1084 // 1085 # PHP -> 1086 Closure , final 1087 stdClass , 1088 __PHP_Incomplete_Class , , 1089 Exception 1090 PDO 1091 1092 // 1093 __DIR__ 1094 __LINE__ 1095 __FILE__ ( ) 1096 1097 __CLASS__ 1098 __METHOD__ , 1099 __FUNCTION__ , 1100 1101 // Reflection 11021. 2. 1103 ReflectionClass 1104 ReflectionMethod 1105 ReflectionClass::export 1106 # 1107 ReflectionFunction 1108 $f = new ReflectionFunction('func'); // func func($p) 1109 $f->invoke('param'); 1110 1111 1112 /* */ 1113 // PHP 1114 header('Loacation: url') 1115 header() , , die 1116 1117 // JS 1118 location.href = url 1119 // HTML 1120 "
Refresh" content=" ; url= URI"> 1121 1122 /* 【Cookie】 */ 1123 cookie 。 1124 cookie HTTP , setcookie() , header() 。 , cookie HTTP 。 1125 1126 // 1127 setcookie cookie 1128 setcookie($name [,$value [,$expire [,$path [,$domain [,$secure [,$httponly]]]]]]) 1129 # :setcookie() ! ob ! 1130 # 1131 $name - cookie 1132 $_COOKIE['name'] name cookie 1133 $value - cookie , , , 1134 $name 'name', $_COOKIE['name'] $value 1135 $expire - cookie (Unix , ) 1136 $expire time()+60*60*24*7 cookie 。 , 。 1137 $path - cookie 。 , cookie。 1138 '/', cookie domain 。 1139 '/foo/', cookie domain /foo/1140 cookie 。 1141 $domain - cookie , cookie 。 1142 cookie abc.com , '.abc.com'1143 $secure - cookie HTTPS cookie , 。 1144 true ,cookie 。 false。 1145 1146 // 1147 - cookie 。 1148 - cookie $_COOKIE 。 1149 - cookie , cookie [] 。 。 1150 // $_COOKIE['user']['name'], user[name] name 1151 setcookie('user[name]', 'shocker'); 1152 - $_COOKIE 1153 1154 // 1155 1: 1156 setcookie('user[name]', ''); 1157 2: cookie “ ” 。 1158 // cookie , , 。 1159 setcookie('usr[name]', '', time()-1); 1160 1161 # : 1162 1. cookie 1163 2. $_COOKIE cookie , cookie 。 1164 $_COOKIE cookie 。 1165 $_COOKIE cookie 。 1166 3. cookie : 1167 cookie: 1168 cookie:$expire , 。 1169 4. 1170 cookie 。 。 1171 cookie 。 1172 5. cookie 1173 1174 6. js document.cookie , 1175 7. COOKIE , COOKIE COOKIE , 。 1176 1177 /* 【session】 */ 1178 1. session 1179 session_start() 1180 :session_start() ! ob 。 1181 2. 1182 $_SESSION 1183 3. SessionID, 。 cookie path '/' 1184 4. session 1185 : session , :sess_ SessionID 1186 5. session 。 1187 1188 6. $_SESSION ! 1189 1190 1191 7. 1192 1193 cookie SessionID 1194 session ( session ) 1195 cookie PHPSESSID 。( ) 1196 php.ini session.gc_maxlifetime 1197 8. 1198 $_SESSION 。 session $_SESSION 。 1199 $_SESSION session 。 1200 unset($_SESSION['key']) , session 。 1201 , $_SESSION 。 1202 session_destroy() session , 。 1203 $_SESSION ,unset 。 1204 session? 3 1205 unset($_SESSION); 1206 $_SESSION , 。 unset, $_SESSION = array() 1207 session_destroy(); 1208 setcookie('PHPSESSID', '', time()-1); // 1209 , 、 。 1210 1211 // session 1212 # session 1213 session.save_handler = user|files|memcache 1214 # , 1215 PHP session.save_path , 。 1216 。 , ID 。 。 1217 session.save_path = "2; F:/PHPJob/Temp" 1218 # 1219 # : 1220 $open、 $close、 $read、 $write、 $destroy( session_destroy )、 $gc 1221 # ID 。 ID。 1222 session.hash_function ID 。 1223 '0' MD5(128 ),'1' SHA-1160 )。 1224 session.hash_bits_per_character 。 1225 '4'0-9,a-f),'5'0-9,a-v), '6'0-9,a-z,A-Z,"-"",")。 1226 hash 128bit, ID 128/ ,4->32, 5->26, 6->22 1227 # 1228 # : PHP 、 、 , 1229 session_set_save_handler 1230 bool session_set_save_handler(callable $open, callable $close, callable $read, callable $write, callable $destroy, callable $gc) 1231 :open, close, read, write, destroy, gc 1232 # , 1233 1234 # 1235 session_start 1236 session_id ID 1237 session_destroy ( ) 1238 session_name (cookie , PHPSESSID) 1239 session_save_path 1240 session_set_save_handler 1241 session_unset ( $_SESSION ) 1242 session_encode 1243 session_decode 1244 session_write_close 1245 session_register_shutdown 1246 session_set_cookie_params cookie , session_start() 。 1247 session_set_cookie_params(0,"/webapp/"); // session 1248 session_get_cookie_params cookie 。 cookie 1249 1250 # php.ini 1251 ini_set($varname, $newvalue); 1252 // 1253 // php.ini 1254 ini_get($varname) // 1255 ini_get_all([str $extension]) // 1256 1257 # session 1258 session.name cookie 。 , PHPSESSID。 1259 session.save_path 。 1260 files , 。 /tmp。 1261 N 。 1262 N , 。 ext/session shell mod_files.sh 。 1263 N N 0, 。 1264 session.save_handler 。 files。 1265 , user。 1266 ini_set('session.save_handler', 'user');// 1267 session.auto_start 。 0( )。 1268 session.gc_probability session.gc_divisor gc(garbage collection ) 。 gc_probability/gc_divisor 。 1/100 1% gc 。session.gc_divisor 100。session.gc_probability 1。 1269 1270 1271 /* 【 】 */GD 1272 // 1273 # 1274 imagecreate 1275 resource imagecreate(int $x_size, int $y_size) 1276 imagecreatetruecolor 1277 # URL 1278 imagecreatefromgd2 GD2 URL 1279 imagecreatefromgd2part GD2 URL 1280 imagecreatefromgd GD URL 1281 imagecreatefromgif URL 1282 imagecreatefromjpeg URL 1283 imagecreatefrompng URL 1284 imagecreatefromstring 1285 imagecreatefromwbmp URL 1286 imagecreatefromxbm URL 1287 imagecreatefromxpm URL 1288 // 1289 imagecolorallocate 1290 int imagecolorallocate(resource $image, int $red, int $green, int $blue) 1291 imagecolorallocatealpha + alpha 1292 imagecolordeallocate 1293 imagecolortransparent 1294 imagecolorat 1295 imagecolorclosest 1296 imagecolorclosestalpha 1297 imagecolorclosesthwb 1298 imagecolorexact 1299 imagecolorexactalpha 1300 imagecolormatch 1301 imagecolorresolve 1302 imagecolorresolvealpha + alpha 1303 imagecolorset 1304 imagecolorsforindex 1305 imagecolorstotal 1306 // 1307 imagefill 1308 bool imagefill(resource $image, int $x, int $y, int $color) 1309 imagefilledarc 1310 imagefilledellipse 1311 imagefilledpolygon 1312 imagefilledrectangle 1313 imagefilltoborder 1314 imagesettile 1315 // 1316 imagearc 1317 imagechar 1318 imagecharup 1319 imagedashedline 1320 imageellipse 1321 imageline 1322 imagepolygon 1323 imagerectangle 1324 imagesetpixel 1325 imagesx 1326 imagesy 1327 // 1328 imagesetbrush 1329 imagesetstyle 1330 imagesetthickness 1331 // 1332 imagecopy 1333 imagecopymerge 1334 imagecopymergegray 1335 imagecopyresampled 1336 imagecopyresized 1337 // 1338 imagestring 1339 imagestringup 1340 imagepsslantfont 1341 imagefontheight 1342 imagefontwidth 1343 imagettfbbox TrueType 1344 imageloadfont 1345 imagepsencodefont 1346 imagepsextendfont 1347 // 1348 imagegif GIF 1349 imagepng PNG 1350 imagejpeg JPEG 1351 imagewbmp WBMP 1352 header() "Content-type: image/ " PHP 。 1353 header("Content-type: image/gif"); imagegif($im); 1354 imagegd GD 1355 imagegd2 GD2 1356 // 1357 imagedestroy 1358 // 1359 image_type_to_extension 1360 getimagesize 1361 imagesx 1362 imagesy 1363 imageistruecolor 1364 imagetypes PHP 1365 // 1366 imagerotate 1367 imagealphablending 1368 imageantialias (antialias) 1369 imagefilter 1370 imagegammacorrect GD gamma 1371 imageinterlace 1372 1373 /* 【 】【 】 */ 1374 imagecopyresampled 1375 bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h ) 1376 imagecopymerge 1377 bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct ) 1378 getimagesize 1379 array getimagesize ( string $filename [, array &$imageinfo ] ) 1380 1381 /* 【URL 】 */ 1382 get_headers — HTTP 1383 get_meta_tags — meta content , 1384 http_build_query — URL-encode 1385 urldecode — URL 1386 urlencode — URL 1387 parse_url — URL, 1388 'http://username:password@hostname/path?arg=value#anchor' 1389 scheme( http), host, port, user, pass, path, query( ? ), fragment( # ) 1390 1391 1392 // 1393 $a = ' '; 1394 $b = ' '; 1395 $a = urlencode($a); 1396 $b = urlencode($b); 1397 $a = $a.'&'.$b; 1398 $b = explode('&', $a); 1399 $a = urldecode($b[1]); 1400 $b = urldecode($b[0]); 1401 echo $a, $b; 1402 //list() 1403 list($a, $b) = array($b, $a); 1404 1405 1406 /* 【 、 】 */ 1407 dirname($path) 1408 basename($path [,$suffix]) 1409 pathinfo($path [,$options]) ( :dirname,basename,extension) 1410 realpath($path) 1411 1412 copy($source, $dest) 1413 unlink($file) 1414 rename($old, $new) 1415 mkdir($path [,$mode [,$recursive]]) 1416 $mode , 0777 1417 $recursive , false 1418 rmdir($dir) ( , ) 1419 1420 file_exists($file) 1421 is_file($file) 1422 is_dir($file) 1423 is_readable($file) 1424 is_writable($file) 1425 is_executable($file) 1426 is_link($file) 1427 1428 tmpfile(void) 1429 tempnam($dir, $prefix) 1430 1431 file($file) 1432 fopen($filename, $mode [,$use_include_path]) 1433 $mode :( 'b' ) 1434 'r' , 。 1435 'r+' , 。 1436 'w' , 。 。 1437 'w+' , 。 。 1438 'a' , 。 。 1439 'a+' , 。 。 1440 'x' , 。 1441 'x+' , 。 1442 fclose($handle) 1443 fread($handle, $length) ( ) 1444 fwrite($handle, $string [,$length]) ( ) 1445 rewind($handle) 1446 ftell($handle) / 1447 fseek($handle, $offset [,$whence]) 1448 feof($handle) 1449 fgets 1450 fgetss HTML 1451 flock($handle, $opt) 1452 $opt:LOCK_SH ( );LOCK_EX ( );LOCK_UN ( ) 1453 1454 1455 readfile($file) 1456 fflush($handle) 1457 1458 touch($file [,$time [,$atime]]) 1459 fileatime 1460 filectime inode 1461 filegroup 1462 fileinode inode 1463 filemtime 1464 fileowner 1465 fileperms 1466 filesize 1467 filetype 1468 1469 1470 /* fileinfo */ / 1471 # Fileinfo, php.ini 1472 #extension=php_fileinfo.dll 1473 finfo_open([$opt]) // 1474 finfo_file($finfo, $file [,$opt]) // 1475 finfo_set_flags($finfo, $opt) // 1476 finfo_close($finfo) // 1477 1478 mime_content_type($file) // MIME 1479 1480 $opt : 1481 FILEINFO_MIME_ENCODING 1482 FILEINFO_MIME_TYPE MIME 1483 1484 1485 // 1486 chdir($dir) 1487 chroot($dir) 1488 closedir($handle) 1489 dir($dir) 1490 getcwd() 1491 opendir($path) 1492 readdir($handle) 1493 rewinddir($handle) 1494 scandir($dir [,$order]) 1495 glob($pattern [,$flags]) 1496 $flags: 1497 GLOB_MARK - 1498 GLOB_NOSORT - ( ) 1499 GLOB_NOCHECK - 1500 GLOB_NOESCAPE - 1501 GLOB_BRACE - {a,b,c} 'a''b' 'c' 1502 GLOB_ONLYDIR - 1503 :glob('*.{php,txt}', GLOB_BRACE); 1504 1505 1506 /* */ 1507 // ZipArchive 1508 $zip = new ZipArchive; 1509 // ZIP 1510 $zip->open($file [,$flags]); 1511 $flags: 1512 ZIPARCHIVE::OVERWRITE ( ) 1513 ZIPARCHIVE::CREATE ( ) 1514 ZIPARCHIVE::EXCL 1515 ZIPARCHIVE::CHECKCONS 1516 // ZIP 1517 // ZIP 1518 $zip->extractTo($dest, [$entries]); 1519 $dest: ,$entries: 1520 // ZIP 1521 $zip->addFile($file, [$newname]); 1522 $newname "dir/file", 。 。 1523 // ZIP , 1524 $zip->addFromString($file, $str); 1525 // ZIP 1526 $zip->addEmptyDir($dir); 1527 // ZIP 1528 $zip->deleteIndex($index); 1529 // ZIP 1530 $zip->deleteName($name); 1531 // ZIP 1532 $zip->setArchiveComment($str); 1533 // ZIP 1534 $zip->getArchiveComment(); 1535 // 1536 $zip->getFromIndex($index); 1537 // 1538 $zip->getFromName($name); 1539 // 1540 $zip->getNameIndex($index); 1541 // 1542 $zip->renameIndex($index, $newname); 1543 // 1544 $zip->renameName($name, $newname); 1545 1546 // ZIP , 1547 function addFileToZip($path, $zip) { 1548 // $path 1549 $handle = opendir($path); 1550 // 1551 // false ( "0"), !== 1552 while ($file = readdir($handle) !== false) { 1553 // 1554 if ($file != '.' && $file != '..') { 1555 // 1556 if (is_dir($path . '/' . $file)) { 1557 addFileToZip($path.'/'.$file, $zip); 1558 } else { 1559 // ZIP 1560 $zip->addFile($path . '/' . $file); 1561 } 1562 } 1563 } 1564 // $path 1565 closedir($path); 1566 } 1567 // ----- END ----- // 1568 1569 1570 /* 【 】 */ 1571 enctype="multipart/form-data" //FORM 1572 $_FILES 1573 error 1574 1575 php.ini 1576 1) upload_max_filesize 1577 2) post_max_size POST 1578 3) memory_limit ( 128MB) 1579 1580 MAX_FILE_SIZE , 。( 2M) 1581 "hidden" name="MAX_FILE_SIZE" value="102400"> 1582 1583 1584 6,7 1585 1586 1587 name 1588 type 1589 tmp_name 1590 size 1591 move_uploaded_file($path, $newpath); // 1592 is_uploaded_file($file) // POST 1593 // 1594 "file" name="updfile[]" /> //HTML 1595 $_FILES['updfile']['tmp_name'][0] //1596 1597 1598 //php.ini 1599 file_uploads = On HTTP 1600 upload_max_filesize , 2M 1601 post_max_size post , 8M 1602 upload_tmp_dir , 1603 1604 GET 2K 1605 1606 1607 /* 【 】 */ 1608 FORM name , $_POST , 。 1609 file, checkbox 。 1610 "checkbox" name="id[]" value=" 1" /> 1611 "checkbox" name="id[]" value=" 2" /> 1612 $id = $_POST['id']; // 1613 name : 1614 "checkbox" name="id[one]" value=" 1" /> 1615 "checkbox" name="id[two]" value=" 2" /> 1616 $id = $_POST['id']; // name id[...] , 1617 1618 1619 /* iconv */ 1620 //php.ini iconv 1621 [iconv] 1622 ;iconv.input_encoding = ISO-8859-1 1623 ;iconv.output_encoding = ISO-8859-1 1624 ;iconv.internal_encoding = ISO-8859-1 1625 iconv_set_encoding($type, $charset); 1626 $type:input_encoding,output_encoding,internal_encoding 1627 iconv_get_encoding([$type = "all"]) 1628 $type:all,input_encoding,output_encoding,internal_encoding 1629 1630 1631 1632 iconv($in_charset, $out_charset, $str) // 1633 1634 , 、 、 ! 1635 iconv_strlen($str [,$charset]) // 1636 iconv_strpos($str, $needle, $offset [,$charset]) // 1637 iconv_strrpos($str, $needle [,$charset]) // 1638 iconv_substr($str, $offset [,$len [,$charset]]) // 1639 1640 1641 /* 【 】*/ 1642 addslashes($str) // 1643 stripcslashes($str) // addcslashes 1644 stripslashes($str) // 1645 chr($ascii) // ASCII 1646 ord($char) // ASCII 1647 substr_count($haystack, $needle) // 1648 count_chars($str [,$mode]) 1649 //0 - , 。 1650 //1 - 0 , 。 1651 //2 - 0 , 。 1652 //3 - 。 1653 //4 - 。 1654 crypt($str, [$salt]) // 1655 str_split($str [,$len]) // 1656 explode($separ, $str) // 1657 implode([$glue,] $arr) // $glue 1658 chunk_split($str [,$len [,$end]]) // 1659 $len: ,$end: ( "\r
") 1660 html_entity_decode($str [,$flags [,$encoding]]) // HTML 1661 htmlentities($str [,$flags [,$encoding]]) // HTML 1662 htmlspecialchars_decode($str) // HTML 1663 htmlspecialchars($str [,$flags [,$encoding]]) // HTML 1664 lcfirst($str) // 1665 ucfirst($str) // 1666 ucwords($str) // 1667 strtolower($str) // 1668 strtoupper($str) // 1669 trim($str [,$charlist]) // ( ) 1670 ltrim($str [,$charlist]) // ( ) 1671 rtrim($str [,$charlist]) // ( ) 1672 md5_file($file) // MD5 1673 md5($str) // MD5 1674 money_format($format, $num) // 1675 number_format($num) // 1676 nl2br($str) // HTML
1677 parse_str($str, [$arr]) // 1678 print($str) // 1679 printf // 1680 sprintf($format [,$args...]) // 1681 sha1_file // sha1 1682 sha1 // sha1 1683 similar_text($first, $second [,$percent]) // 1684 ,$percent 1685 str_replace($search, $replace, $str [,$count [,$type]]) // 1686 str_ireplace // ( ) 1687 str_pad($str, $len [,$pad [,$type]]) // 1688 $type: 。STR_PAD_RIGHT,STR_PAD_LEFT STR_PAD_BOTH 1689 str_repeat($str, $num) // 1690 str_shuffle($str) // 1691 str_word_count($str [,$format [,$charlist]]) // 1692 strcasecmp($str1, $str2) // ( ) 1693 str1 str2, ; str1 str2, ; 0。 1694 strcmp($str1, $str2) // 1695 strcoll($str1, $str1) // ( , ) 1696 strcspn($str1, $str1 [,$start [,$len]]) // 1697 strip_tags($str) // HTML PHP 1698 strpos($haystack, $needle [,$offset]) // 1699 stripos($haystack, $needle [,$offset]) // ( ) 1700 strripos($haystack, $needle [,$offset]) // ( ) 1701 strrpos($haystack, $needle [,$offset]) // 1702 strlen($str) // 1703 strpbrk($haystack, $str) // 1704 strrev($str) // 1705 join('', array_reverse(preg_split("//u", $str))); // UTF-8 1706 strspn$subject, $mask) // 1707 strstr($haystack, $needle) // 1708 stristr($haystack, $needle) // ( ) 1709 strrchr($haystack, $needle) // 1710 strtok($str, $token) // 1711 substr_compare($main_str, $str, $offset [,$len) // ( ) 1712 substr_replace$str, $replace, $start [,$len] // 1713 strtr($str, $from, $to) // 1714 substr($str, $start [,$len]) // 1715 vfprintf$handle, $format, $args) // 1716 vprintf($format, $args) // 1717 vsprintf($format, $args) // 1718 wordwrap($str [,$width=75 [,$break='
']]) // 1719 1720 crc32($str) // crc32 1721 crc32 [ ] 1722 str 32 。 。 1723 1724 /* mbstring( ) */ 1725 // mbstring 1726 mb_strimwidth($str, $start, $width [,$trim [,$encoding]]) // ( ) 1727 mb_stripos($str, $needle [,$offset [,$encoding]]) // ( ) 1728 mb_strpos($str, $needle [,$offset [,$encoding]]) // 1729 mb_strripos($str, $needle [,$offset [,$encoding]]) // ( ) 1730 mb_strrpos($str, $needle [,$offset [,$encoding]]) // 1731 mb_strstr($str, $needle [,$before [,$encoding]]) // ( ) 1732 mb_stristr($str, $needle [,$before [,$encoding]]) // ( ) ( ) 1733 mb_strrchr($str, $needle [,$before [,$encoding]]) // ( ) 1734 mb_strrichr($str, $needle [,$before [,$encoding]]) // ( ) ( ) 1735 1736 mb_strtoupper($str [,$encoding]) // 1737 mb_strtolower($str [,$encoding]) // 1738 1739 mb_strlen($str [,$encoding]) // 1740 mb_split($pattern, $str [,$limit]) // 1741 mb_substr($str, $start [,$len [,$encoding]]) // 1742 mb_strcut($str, $start [,$len [,$encoding]]) // 1743 mb_strwidth($str [,$encoding]) // 1744 mb_substr_count($str, $needle [,$encoding]) // 1745 1746 1747 /* PCRE */ 1748 preg_filter($pattern, $replace, $subject [,$limit [,&$count]]) 1749 preg_replace($pattern, $replace, $subject [,$limit [,&$count]]) 1750 preg_replace_callback($pattern, $callback, $subject [,$limit [,&$count]]) 1751 preg_grep($pattern, $input [,$flags]) 1752 preg_match($pattern, $subject [,&$matches [,$flags [,$offset]]]) 1753 preg_match_all($pattern, $subject [,&$matches [,$flags [,$offset]]]) 1754 $matches 1755 $matches[0][n] (n>=0) n+1 1756 $matches[m][n] (m>=1, n>=0) n+1 m 1757 preg_split($pattern, $subject [,$limit [,$flags]]) 1758 $limit limit ,-1 1759 $flags : 1760 PREG_SPLIT_NO_EMPTY: 1761 PREG_SPLIT_DELIM_CAPTURE: 1762 PREG_SPLIT_OFFSET_CAPTURE: 1763 preg_quote($str [,$delimiter]) 1764 preg_last_error() PCRE 1765 1766 1767 /* Math */ 1768 base_convert($number, $frombase, $tobase) // 1769 ceil($float) // 1770 floor($float) // 1771 exp($float) // e 1772 hypot($x, $y) // 1773 is_nan($val) // 1774 log($arg [,$base=e]) // 1775 max($num1, $num2, ...) // 1776 max($arr) // 1777 min($num1, $num2, ...) // 1778 rand([$min], $max) // 1779 srand([$seed]) // 1780 mt_rand([$min], $max) // 1781 mt_srand($seed) // 1782 pi() // 1783 pow($base, $exp) // 1784 sqrt($float) // 1785 deg2rad($float) // 1786 rad2deg($float) // 1787 round($val [,$pre=0]) // 1788 fmod($x, $y) // 1789 1790 1791 1792 /* 【MySQL 】 */ 1793 mysql_client_encoding([$link]) // 1794 mysql_set_charset($charset [,$link]) // 1795 mysql_connect($host, $user, $pass) // MySQL 1796 mysql_create_db($db [,$link]) // MySQL 1797 mysql_pconnect($host, $user, $pass) // MySQL 1798 mysql_ping([$link]) //Ping , 1799 mysql_close([$link]) // MySQL 1800 1801 mysql_data_seek($result, $row) // 1802 mysql_errno([$link]) // MySQL 1803 mysql_error([$link]) // MySQL 1804 mysql_affected_rows([$link]) // MySQL 1805 mysql_info([$link]) // 1806 mysql_insert_id([$link]) // INSERT ID 1807 1808 mysql_query($sql [,$link]) // MySQL 1809 mysql_unbuffered_query($sql [,$link]) // MySQL SQL , 1810 mysql_db_query($db, $sql [,$link]) // MySQL 1811 1812 mysql_escape_string($str) // mysql_query 1813 mysql_real_escape_string($str) // SQL , 1814 1815 mysql_fetch_array($result [,$type]) // , , 1816 mysql_fetch_assoc($result) // 1817 mysql_fetch_object($result) // 1818 mysql_fetch_row($result) // 1819 mysql_fetch_field($result) // 1820 mysql_num_fields($result) // 1821 mysql_num_rows($result) // 1822 1823 mysql_fetch_lengths($result) // 1824 mysql_field_flags($result, $field_offset) // 1825 mysql_field_len($result, $field_offset) // 1826 mysql_field_name($result, $field_offset) // 1827 mysql_field_seek($result, $field_offset) // 1828 mysql_field_table($result, $field_offset) // 1829 mysql_field_type($result, $field_offset) // 1830 mysql_free_result($result) // 1831 1832 mysql_list_dbs([$link]) // MySQL 1833 mysql_list_fields($db, $table [,$link]) // MySQL 1834 mysql_list_processes([$link]) // MySQL 1835 mysql_list_tables($db [,$link]) // MySQL 1836 1837 mysql_result($result, $row [$field]) // 1838 mysql_select_db($db [,$link]) // MySQL 1839 mysql_tablename($result, $i) // 1840 mysql_db_name($result, $row [,$field]) // mysql_list_dbs() 1841 1842 mysql_stat([$link]) // 1843 mysql_thread_id([$link]) // ID 1844 mysql_get_client_info() // MySQL 1845 mysql_get_host_info() // MySQL 1846 mysql_get_proto_info() // MySQL 1847 mysql_get_server_info() // MySQL 1848 1849 1850 /* 【SQL 】 */ 1851 1852 1. :mysql_real_escape_string() 1853 (GPC: GET, POST, COOKIE) 1854 2. , 1855 1856 // 1857 1858 , , , NULL 。 addslashes() 。 1859 php.ini : 1860 magic_quotes_gpc = Off 1861 get_magic_quotes_gpc() 1862 1863 /* 【 】 */ 1864 1865 // 1866 、 、 、 1867 trigger_error error/warning/notice 1868 1869 //php.ini ,ini_set() 1870 error_reporting 1871 # : 1872 display_errors = On 1873 # : 1874 log_errors = on 1875 error_log 1876 -1877 1878 1879 set_error_handler — 1880 - 4 , 、 、 、 1881 - , 。 1882 - false, 。 1883 - (E_USER_ERROR), 。 , 。 1884 restore_error_handler — 1885 error_get_last — 1886 1887 // 1888 debug_backtrace 1889 , :function, line, file, class, object, type, args 1890 debug_print_backtrace 1891 1892 // 1893 > 1894 1895 # 1896 , 。 1897 # 1898 , 。 1899 1900 // 1901 1902 1903 Exception 。 1904 # 1905 1906 throw new UserException(); 1907 , 。 1908 # 1909 try { } 1910 # 1911 catch (UserException $obj) { } 1912 1913 # 1914 1915 catch , 。 1916 set_exception_handler — 1917 restore_exception_handler — 1918 1919 1920 # 1921 Exception 。 1922 1923 // 1924 protected string $message 1925 protected int $code 1926 protected string $file 1927 protected int $line 1928 // 1929 Exception::__construct — 1930 Exception::getMessage — 1931 Exception::getPrevious — 1932 Exception::getCode — 1933 Exception::getFile — 1934 Exception::getLine — 1935 Exception::getTrace — 1936 Exception::getTraceAsString — 1937 Exception::__toString — 1938 Exception::__clone — 1939 1940 /* 【 】 */ 1941 PDO:PHP Data Objects 1942 PHO , 。 1943 PDO OOP , : 1944 PDO:PDO 1945 PDOStatement:PDO , 1946 PDOException:PDO , 1947 1948 // 1949 PDO::__construct(str $dsn [,str $username [,str $password [,arr $driver_options]]]) 1950 DSN:Data Source Name, 1951 $dsn = 'mysql:dbname=testdb;host=127.0.0.1;port=3306'; 1952 // SQL 1953 int PDO::exec(str $statement) // 1954 // SQL 1955 PDOStatement PDO::query (string $statement) // PDOStatement 1956 // (PDOStatement ) 1957 array PDOStatement::fetchAll([int $fetch_style [,mixed $fetch_argument [,array $ctor_args = array()]]]) // + 1958 mixed PDOStatement::fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] ) // 1959 string PDOStatement::fetchColumn ([ int $column_number = 0 ] ) // 1960 // 1961 unset($pdo) $pdo = null 1962 1963 // 1964 :silent mode, , ( ) 1965 array PDO::errorInfo(void) 1966 :warning mode, , 1967 :exception mode, , 1968 bool PDO::setAttribute(int $attribute, mixed $value) // PDO 1969 PDO::setAttribute('PDO::ATTR_ERRMODE', 'PDO::ERRMODE_SILENT | PDO::ERRMODE_WARNING | PDO::ERRMODE_EXCEPTION') 1970 1971 // SQL 1972 , SQL 。 1973 PDOStatement PDO::prepare(string $statement [,array $driver_options=array()]) 1974 bool PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] ) 1975 bool PDOStatement::execute ([ array $input_parameters ] ) 1976 1977 1978 /* 【AR 】 */ 1979 -> 1980 -> 1981 -> 1982 1983 1984 /* Date/Time */ 1985 date($format [,$timestamp]) // / ,$timestamp time() 1986 Y:4 1987 m: , 1988 d: , 2 1989 j: , 1990 H: ,24 , 1991 h: ,12 , 1992 i: 1993 s: , 1994 L: , 1, 0 1995 M: ,Jan Dec 1996 W: , 1997 z: 1998 N: 1999 w: , 2000 e: 2001 T: 2002 U: Unix ( ) 2003 time() // Unix ( ) 2004 microtime([$get_as_float]) // Unix 2005 $get_as_float TRUE, 2006 strtotime($time [,$now]) // Unix 2007 date("Y-m-d H:i:s", strtotime("-1 day")); // 2008 "now" 2009 "10 September 2000" 2010 "+1 week" 2011 "+1 week -2 days 4 hours 2 seconds" 2012 "last Monday" 2013 "next Thursday" 2014 gmdate($format [,$timestamp]) // GMT/UTC / 2015 mktime([$hour = date("H") [,$minute = date("i") [,$second = date("s") [,$month = date("n") [,$day = date("j") [,$year = date("Y") [,$is_dst = -1]]]]]]]) // Unix 2016 strftime($format [,$timestamp]) // 2017 date_default_timezone_get($timezone) // 2018 date_default_timezone_set($timezone) // 2019 2020 2021 /* DateTime */ 2022 //date() 1901 12 13 20:45:54 2038 1 19 03:14:07( 32 ) 2023 DateTime::__construct([$time="now"]) // 2024 $time , @ , '@2345678' 2025 DateTime::setTimezone($timezone) // 2026 eg: $date->setTimezone(new DateTimeZone('PRC')); 2027 DateTime::format($format) // , date() 2028 2029 2030 /* $_SERVER */ 2031 // URL:http://desktop/dir/demo.php?a=aaa&b=bbb 2032 PHP_SELF // /dir/demo.php 2033 GATEWAY_INTERFACE CGI // CGI/1.1 2034 SERVER_ADDR IP // 127.0.0.1 2035 SERVER_NAME // desktop 2036 SERVER_SOFTWARE // Apache/2.2.22 (Win32) PHP/5.3.13 2037 SERVER_PROTOCOL // HTTP/1.1 2038 REQUEST_METHOD // GET 2039 REQUEST_TIME // 1386032633 2040 QUERY_STRING ( ) // a=aaa&b=bbb 2041 DOCUMENT_ROOT // C:/Users/Administrator/Desktop 2042 HTTP_ACCEPT Accept: // text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 2043 HTTP_ACCEPT_CHARSET Accept-Charset: // UTF-8,* 2044 HTTP_ACCEPT_ENCODING Accept-Encoding: // gzip, deflate 2045 HTTP_ACCEPT_LANGUAGE Accept-Language: // zh-cn,zh;q=0.5 2046 HTTP_CONNECTION Connection: // keep-alive 2047 HTTP_HOST Host: // desktop 2048 HTTP_REFERER 2049 HTTP_USER_AGENT User-Agent: // Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 2050 HTTPS HTTPS , 2051 REMOTE_ADDR IP // 127.0.0.1 2052 REMOTE_HOST 2053 REMOTE_PORT Web // 49197 2054 REMOTE_USER 2055 REDIRECT_REMOTE_USER , 2056 SCRIPT_FILENAME // C:/Users/Administrator/Desktop/dir/demo.php 2057 SERVER_ADMIN Apache SERVER_ADMIN //[email protected] 2058 SERVER_PORT Web // 80 2059 SERVER_SIGNATURE 2060 PATH_TRANSLATED ( ) 2061 SCRIPT_NAME // /dir/demo.php 2062 REQUEST_URI URI // /dir/demo.php?a=aaa&b=bbb 2063 PHP_AUTH_DIGEST “Authorization” HTTP 2064 PHP_AUTH_PW 2065 AUTH_TYPE 2066 PATH_INFO 、 (query string2067 ORIG_PATH_INFO PHP ,“PATH_INFO” 2068 2069 2070 2071 2072 /* */ 2073 1. ob ( )( ) 2074 php.ini :output_buffering = 4096 2075 ob_start() 2076 , (header ), 。 2077 header() 。 2078 , , Apache http 。 2079 : ! 2080 2. ( , , ) 2081 3. 2082 2083 /* ob ( ) */ Output Buffering 2084 ob_start() // , , 。 2085 ob_start('ob_gzhandler'); // gz 2086 2087 ob_clean(); // , ( )。 2088 ob_end_clean(); // , ( )。 2089 ob_get_clean(); // , 。 ob_get_contents() ob_end_clean() 2090 ob_flush(); // , , 。 2091 ob_end_flush(); // , , 。 2092 ob_get_flush(); // , , 。 ob_end_flush() 。 2093 flush(); // 2094 2095 ob_get_contents(); // , 。 2096 ob_get_length(); // , , FALSE。 2097 ob_get_level(); //Return the nesting level of the output buffering mechanism. 2098 ob_get_status(); // ob 2099 2100 ob_implicit_flush(); // , , ob_implicit_flush(true), , (e.g: echo) , , flush() 。 2101 2102 ob_gzhandler //ob_start , gzip 。 2103 ob_list_handlers //List all output handlers in use 2104 output_add_rewrite_var //Add URL rewriter values 2105 output_reset_rewrite_vars //Reset URL rewriter values 2106 2107 php_ini : 2108 output_buffering // ON , ; , , 。 2109 output_handler // , 。 , output_handler mb_output_handler() , 。 , 。 2110 implicit_flush // ob_implicit_flush, Off。 2111 2112 //ob 2113 1) setcookie()、header() session_start() 。 , 。 2114 2) , phpinfo() HTML, $info=phpinfo(); , ob 。 2115 3) , gzip , , 。 2116 4) , , 。 HTML, 。 2117 2118 2119 /* */ 2120 :apache/bin/ab.exe 2121 :cmd{%apache-bin%}>ab.exe -n -c URL 2122 MPM( ):perfork( ), worker( ), winnt(Win ) 2123 MPM :httpd-mpm.conf 2124 MPM :httpd –l mpm_xxx.c xxx 2125 httpd.conf ( MPM):#Include conf/extra/httpd-mpm.conf 2126 # 2127 # :extra/httpd-mpm.conf 2128 #mpm_winnt.c 2129 2130 ThreadsPerChild 1000 # 1500-5500 2131 MaxRequestsPerChild 0 2132 2133 #mpm_prefork.c 2134 2135 StartServers 5 # 2136 MinSpareServers 5 2137 MaxSpareServers 10 # 2138 ServerLimit 1500 # apache 2139 MaxClients 1000 # 2140 MaxRequestsPerChild 0 # , worker 2141 2142 # pv 2143 ServerLimit 2500 # apache 2144 MaxClients 2000 # 2145 2146 2147 /* */ 2148 1. URL 255 2149 2. meta ,keywords5 2150 3. 2151 4. alt 2152 5. 2153 2154 "</span><span style="color: #800000;">text/javascript</span><span style="color: #800000;">"</span> language=<span style="color: #800000;">"</span><span style="color: #800000;">javascript</span><span style="color: #800000;">"</span> src=<span style="color: #800000;">"</span><span style="color: #800000;">url</span><span style="color: #800000;">"</span>> 2155 url js/php/ , <span style="color: #000000;"> ! Ajax </span><span style="color: #008080;">2156</span> <span style="color: #008080;">2157</span> <span style="color: #008080;">2158</span> <span style="color: #008000;">/*</span><span style="color: #008000;"> Apache </span><span style="color: #008000;">*/</span> <span style="color: #008080;">2159</span> gzip/<span style="color: #000000;">deflate </span><span style="color: #008080;">2160</span> <span style="color: #008080;">2161</span> <span style="color: #008080;">2162</span> <span style="color: #008000;">/*</span><span style="color: #008000;"> XSS </span><span style="color: #008000;">*/</span> <span style="color: #008080;">2163</span> <span style="color: #000000;"># JS </span><span style="color: #008080;">2164</span> <span style="color: #000000;"># HTML </span><span style="color: #008080;">2165</span> <span style="color: #008080;">2166</span> <span style="color: #000000;"> :htmlpurifier </span><span style="color: #008080;">2167</span> <span style="color: #008080;">2168</span> <span style="color: #008000;">//</span><span style="color: #008000;"> COOKIE</span> <span style="color: #008080;">2169</span> <script> <span style="color: #008080;">2170</span> <span style="color: #0000ff;">var</span> c = document.cookie; <span style="color: #008000;">//</span><span style="color: #008000;"> COOKIE</span> <span style="color: #008080;">2171</span> <span style="color: #0000ff;">var</span> script = document.createElement(<span style="color: #800000;">'</span><span style="color: #800000;">script</span><span style="color: #800000;">'</span>); <span style="color: #008000;">//</span><span style="color: #008000;"> script </span> <span style="color: #008080;">2172</span> script.src = <span style="color: #800000;">'</span><span style="color: #800000;">demo.php?c=</span><span style="color: #800000;">'</span> + c; <span style="color: #008000;">//</span><span style="color: #008000;"> </span> <span style="color: #008080;">2173</span> document.body.appendChild(script); <span style="color: #008000;">//</span><span style="color: #008000;"> DOM </span> <span style="color: #008080;">2174</span> 2175 2176 2177 /* CLI */ 2178 // 2179 php -h 2180 // -f 2181 php [-f] [--] [args...] 2182 // PHP 2183 php [options] -r [--] [args...] 2184 PHP , 2185 // phpinfo() 2186 php -i/--info 2187 // PHP 2188 php -l/--syntax-check 2189 // PHP Zend 2190 php -m/--modules 2191 // PHP,PHP SAPI Zend 2192 php -v/--version 2193 2194 // 2195 $argv 2196 , $argv[0] 2197 $argc 2198 , $argc 1 2199 2200 register_argc_argv 2201 2202 2203 /* */ 2204 : 。 , 。 2205 : 。 2206 MVC : -> -> -> -> -> -> 2207 2208 2209 /* */ 2210 set_time_limit($seconds) // ( 30 ),0 2211 ini_get($varname) // 2212 ini_set($varname, $newvalue) // 2213 extension_loaded($ext_name) // 2214 get_extension_funcs($ext_name) // 2215 2216 2217 /* 【 】 */ 2218 version_compare(str $ver1, str $ver2 [,str $operator]) // 2219 $operator , :, gt, >=, ge, ==, =, eq, !=, <>, ne 2220 $operator, 。 2221 @ 2222 memory_get_usage // 2223 memory_get_peak_usage // 2224 getrusage // CPU (Windows ) 2225 uniqid([$prefix]) // 、 ID 2226 highlight_string($str [,$return]) // 2227 $return: TRUE, , 。 TRUE, FALSE。 2228 highlight_file($file [,$return]) // 2229 __halt_compiler // 2230 get_browser // 2231 get_browser ([ string $user_agent [, bool $return_array = false ]] ) 2232 TRUE, array, object 2233 eval($code) // PHP 2234 gzcompress($str [,$level=-1]) // 2235 gzuncompress($str) // 2236 gzencode($str [,$level=-1]) // 2237 gzdecode($str) // 2238 ignore_user_abort($bool) //