{"id":15935,"date":"2026-01-02T11:05:45","date_gmt":"2026-01-02T03:05:45","guid":{"rendered":"https:\/\/www.aiersheng.cc\/?p=15935"},"modified":"2026-01-02T11:06:20","modified_gmt":"2026-01-02T03:06:20","slug":"php-20-%e4%b8%aa%e5%ae%9e%e7%94%a8%e5%bc%80%e5%8f%91%e6%8a%80%e5%b7%a7%ef%bc%88%e5%ae%8c%e6%95%b4%e8%af%a6%e8%a7%a3%ef%bc%89","status":"publish","type":"post","link":"https:\/\/www.aiersheng.cc\/?p=15935","title":{"rendered":"PHP 20 \u4e2a\u5b9e\u7528\u5f00\u53d1\u6280\u5de7\uff08\u5b8c\u6574\u8be6\u89e3\uff09"},"content":{"rendered":"<p>PHP 20 \u4e2a\u5b9e\u7528\u5f00\u53d1\u6280\u5de7\uff08\u5b8c\u6574\u8be6\u89e3\uff09<br \/>\n\u4f60\u60f3\u8981\u7684\u662f\u8fd9 20 \u4e2a PHP \u5b9e\u7528\u6280\u5de7\u7684\u5b8c\u6574\u68b3\u7406\u548c\u53ef\u843d\u5730\u5b9e\u73b0\uff0c\u4e0b\u9762\u6211\u5c06\u6bcf\u4e2a\u6280\u5de7\u8865\u5145\u5b8c\u6574\u4ee3\u7801\u793a\u4f8b\u548c\u7ec6\u8282\u8bf4\u660e\uff0c\u65b9\u4fbf\u4f60\u76f4\u63a5\u5e94\u7528\u5230\u9879\u76ee\u4e2d\uff1a<br \/>\n1. \u4e0d\u8981\u4f7f\u7528\u76f8\u5bf9\u8def\u5f84\uff0c\u4f18\u5148\u4f7f\u7528\u7edd\u5bf9\u8def\u5f84<br \/>\n\u95ee\u9898<br \/>\n\u76f8\u5bf9\u8def\u5f84\u4f1a\u67e5\u627e PHP \u5305\u542b\u8def\u5f84\u548c\u5f53\u524d\u76ee\u5f55\uff0c\u5b58\u5728\u8def\u5f84\u6df7\u4e71\uff08\u88ab\u5176\u4ed6\u811a\u672c\u5305\u542b\u65f6\u3001\u5b9a\u65f6\u4efb\u52a1\u8fd0\u884c\u65f6\uff09\u7684\u95ee\u9898\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/\/ \u4e0d\u63a8\u8350\uff08\u76f8\u5bf9\u8def\u5f84\uff09<br \/>\ninclude &#8220;config.php&#8221;;<br \/>\ninclude &#8220;lib\/func.php&#8221;;<\/p>\n<p>\/\/ \u63a8\u83501\uff1a\u5199\u6b7b\u7edd\u5bf9\u8def\u5f84\uff08\u4e0d\u7075\u6d3b\uff09<br \/>\ninclude &#8220;\/var\/www\/project\/config.php&#8221;;<\/p>\n<p>\/\/ \u63a8\u83502\uff1a\u4f7f\u7528__FILE__\u5e38\u91cf\uff08\u7075\u6d3b\uff0c\u8fc1\u79fb\u65e0\u9700\u4fee\u6539\uff09<br \/>\n\/\/ __FILE__ \u83b7\u53d6\u5f53\u524d\u6587\u4ef6\u7684\u5b8c\u6574\u8def\u5f84\u548c\u6587\u4ef6\u540d<br \/>\n\/\/ dirname() \u83b7\u53d6\u6587\u4ef6\u6240\u5728\u76ee\u5f55<br \/>\ndefine(&#8216;PROJECT_ROOT&#8217;, dirname(__FILE__));<br \/>\ninclude PROJECT_ROOT . &#8220;\/config.php&#8221;;<br \/>\ninclude PROJECT_ROOT . &#8220;\/lib\/func.php&#8221;;<\/p>\n<p>\/\/ PHP 5.3+ \u53ef\u4f7f\u7528 __DIR__\uff08\u76f4\u63a5\u83b7\u53d6\u5f53\u524d\u6587\u4ef6\u76ee\u5f55\uff0c\u7b49\u4ef7\u4e8e dirname(__FILE__)\uff09<br \/>\ndefine(&#8216;PROJECT_ROOT&#8217;, __DIR__);<br \/>\ninclude PROJECT_ROOT . &#8220;\/config.php&#8221;;<br \/>\n2. \u4e0d\u8981\u76f4\u63a5\u4f7f\u7528 require\/include\uff0c\u5c01\u88c5\u52a0\u8f7d\u51fd\u6570<br \/>\n\u95ee\u9898<br \/>\n\u76f4\u63a5\u591a\u6b21\u8c03\u7528 require\/include \u53ef\u8bfb\u6027\u5dee\uff0c\u540e\u7eed\u4fee\u6539\u6587\u4ef6\u8def\u5f84\u9700\u5168\u5c40\u66ff\u6362\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/\/ \u4e0d\u63a8\u8350\uff08\u539f\u59cb\u7528\u6cd5\uff09<br \/>\nrequire &#8220;config.php&#8221;;<br \/>\nrequire &#8220;lib\/db.php&#8221;;<br \/>\nrequire &#8220;lib\/validate.php&#8221;;<\/p>\n<p>\/\/ \u63a8\u8350\uff1a\u5c01\u88c5\u52a9\u624b\u51fd\u6570<br \/>\nfunction load_file($file_path) {<br \/>\n$full_path = PROJECT_ROOT . &#8220;\/&#8221; . $file_path;<br \/>\nif (file_exists($full_path)) {<br \/>\nrequire $full_path;<br \/>\n} else {<br \/>\ndie(&#8220;\u6587\u4ef6 {$full_path} \u4e0d\u5b58\u5728\uff01&#8221;);<br \/>\n}<br \/>\n}<\/p>\n<p>\/\/ \u8c03\u7528\uff08\u53ef\u8bfb\u6027\u66f4\u5f3a\uff09<br \/>\nload_file(&#8220;config.php&#8221;);<br \/>\nload_file(&#8220;lib\/db.php&#8221;);<br \/>\nload_file(&#8220;lib\/validate.php&#8221;);<\/p>\n<p>\/\/ \u6269\u5c55\uff1a\u652f\u6301\u591a\u76ee\u5f55\u67e5\u627e<br \/>\nfunction load_file_ext($file_name, $dirs = []) {<br \/>\n\/\/ \u9ed8\u8ba4\u6dfb\u52a0\u9879\u76ee\u6839\u76ee\u5f55<br \/>\n$dirs[] = PROJECT_ROOT;<br \/>\nforeach ($dirs as $dir) {<br \/>\n$full_path = rtrim($dir, &#8220;\/&#8221;) . &#8220;\/&#8221; . $file_name;<br \/>\nif (file_exists($full_path)) {<br \/>\nrequire $full_path;<br \/>\nreturn true;<br \/>\n}<br \/>\n}<br \/>\ndie(&#8220;\u6587\u4ef6 {$file_name} \u672a\u5728\u6307\u5b9a\u76ee\u5f55\u4e2d\u627e\u5230\uff01&#8221;);<br \/>\n}<\/p>\n<p>\/\/ \u8c03\u7528\uff1a\u67e5\u627e\u591a\u4e2a\u76ee\u5f55<br \/>\nload_file_ext(&#8220;db.php&#8221;, [PROJECT_ROOT . &#8220;\/lib&#8221;, PROJECT_ROOT . &#8220;\/core&#8221;]);<br \/>\n3. \u4e3a\u5e94\u7528\u4fdd\u7559\u8c03\u8bd5\u4ee3\u7801\uff0c\u533a\u5206\u5f00\u53d1 \/ \u751f\u4ea7\u73af\u5883<br \/>\n\u95ee\u9898<br \/>\n\u8c03\u8bd5\u4ee3\u7801\u6ce8\u91ca \/ \u5220\u9664\u540e\uff0c\u540e\u7eed\u95ee\u9898\u6392\u67e5\u9700\u91cd\u65b0\u7f16\u5199\uff0c\u6548\u7387\u4f4e\u4e0b\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/\/ 1. \u5b9a\u4e49\u73af\u5883\u5e38\u91cf\uff08\u5efa\u8bae\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u7edf\u4e00\u914d\u7f6e\uff09<br \/>\n\/\/ \u5f00\u53d1\u73af\u5883<br \/>\ndefine(&#8216;APP_ENV&#8217;, &#8216;development&#8217;);<br \/>\n\/\/ \u751f\u4ea7\u73af\u5883<br \/>\n\/\/ define(&#8216;APP_ENV&#8217;, &#8216;production&#8217;);<\/p>\n<p>\/\/ 2. \u5c01\u88c5\u8c03\u8bd5\u51fd\u6570<br \/>\nfunction debug_log($data) {<br \/>\nif (APP_ENV === &#8216;development&#8217;) {<br \/>\n\/\/ \u6253\u5370\u8c03\u8bd5\u4fe1\u606f\uff08\u53ef\u6839\u636e\u9700\u6c42\u683c\u5f0f\u5316\uff09<br \/>\necho &#8221;<\/p>\n<pre>\";\r\n        var_dump($data);\r\n        echo \"<\/pre>\n<p>&#8220;;<br \/>\n}<br \/>\n\/\/ \u751f\u4ea7\u73af\u5883\u4e0d\u8f93\u51fa\uff0c\u53ef\u9009\u62e9\u5199\u5165\u65e5\u5fd7\u6587\u4ef6<br \/>\nelse {<br \/>\n$log_str = is_array($data) || is_object($data) ? json_encode($data) : $data;<br \/>\nerror_log(date(&#8216;Y-m-d H:i:s&#8217;) . &#8221; &#8211; &#8221; . $log_str . PHP_EOL, 3, PROJECT_ROOT . &#8220;\/logs\/debug.log&#8221;);<br \/>\n}<br \/>\n}<\/p>\n<p>\/\/ \u8c03\u7528\uff1a\u4fdd\u7559\u8c03\u8bd5\u4ee3\u7801\uff0c\u65e0\u9700\u6ce8\u91ca\/\u5220\u9664<br \/>\n$db_sql = &#8220;SELECT * FROM user WHERE id = 1&#8221;;<br \/>\ndebug_log(&#8220;\u6570\u636e\u5e93\u67e5\u8be2\u8bed\u53e5\uff1a&#8221; . $db_sql);<br \/>\n$user_info = $db-&gt;query($db_sql);<br \/>\ndebug_log(&#8220;\u7528\u6237\u4fe1\u606f\uff1a&#8221; . $user_info);<br \/>\n4. \u4f7f\u7528\u53ef\u8de8\u5e73\u53f0\u7684\u51fd\u6570\u6267\u884c\u7cfb\u7edf\u547d\u4ee4<br \/>\n\u95ee\u9898<br \/>\nsystem\/exec\/passthru\/shell_exec \u53ef\u80fd\u88ab\u5171\u4eab\u4e3b\u673a\u7981\u7528\uff0c\u9010\u4e2a\u5224\u65ad\u7e41\u7410\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/**<br \/>\n* \u8de8\u5e73\u53f0\u6267\u884c\u7cfb\u7edf\u547d\u4ee4<br \/>\n* @param string $cmd \u7cfb\u7edf\u547d\u4ee4<br \/>\n* @return string \u547d\u4ee4\u6267\u884c\u7ed3\u679c<br \/>\n*\/<br \/>\nfunction exec_system_cmd($cmd) {<br \/>\n$result = &#8221;;<br \/>\n\/\/ \u4f9d\u6b21\u5224\u65ad\u53ef\u7528\u7684\u6267\u884c\u51fd\u6570<br \/>\nif (function_exists(&#8216;system&#8217;)) {<br \/>\nob_start(); \/\/ \u6355\u83b7\u8f93\u51fa<br \/>\nsystem($cmd, $return_var);<br \/>\n$result = ob_get_clean();<br \/>\n} elseif (function_exists(&#8216;exec&#8217;)) {<br \/>\nexec($cmd, $output, $return_var);<br \/>\n$result = implode(PHP_EOL, $output);<br \/>\n} elseif (function_exists(&#8216;passthru&#8217;)) {<br \/>\nob_start();<br \/>\npassthru($cmd, $return_var);<br \/>\n$result = ob_get_clean();<br \/>\n} elseif (function_exists(&#8216;shell_exec&#8217;)) {<br \/>\n$result = shell_exec($cmd);<br \/>\n} else {<br \/>\ndie(&#8220;\u6ca1\u6709\u53ef\u7528\u7684\u7cfb\u7edf\u547d\u4ee4\u6267\u884c\u51fd\u6570\uff01&#8221;);<br \/>\n}<br \/>\nreturn $result;<br \/>\n}<\/p>\n<p>\/\/ \u8c03\u7528<br \/>\n$dir_list = exec_system_cmd(&#8220;ls -l&#8221;);<br \/>\necho $dir_list;<br \/>\n5. \u7075\u6d3b\u7f16\u5199\u51fd\u6570\uff0c\u652f\u6301\u591a\u7c7b\u578b\u53c2\u6570<br \/>\n\u95ee\u9898<br \/>\n\u4e3a\u5355\u4e2a\u53c2\u6570\u548c\u6570\u7ec4\u53c2\u6570\u5206\u522b\u521b\u5efa\u51fd\u6570\uff0c\u9020\u6210\u4ee3\u7801\u5197\u4f59\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/**<br \/>\n* \u7075\u6d3b\u6dfb\u52a0\u9879\u76ee\uff08\u652f\u6301\u5355\u4e2a\u503c\/\u6570\u7ec4\u503c\uff09<br \/>\n* @param mixed $items \u5355\u4e2a\u9879\u76ee\u6216\u9879\u76ee\u6570\u7ec4<br \/>\n* @param array $target_arr \u76ee\u6807\u6570\u7ec4<br \/>\n* @return array \u5904\u7406\u540e\u7684\u6570\u7ec4<br \/>\n*\/<br \/>\nfunction add_items($items, $target_arr = []) {<br \/>\n\/\/ \u5224\u65ad\u662f\u5426\u4e3a\u6570\u7ec4\uff0c\u975e\u6570\u7ec4\u5219\u8f6c\u4e3a\u6570\u7ec4<br \/>\nif (!is_array($items)) {<br \/>\n$items = [$items];<br \/>\n}<br \/>\n\/\/ \u5faa\u73af\u6dfb\u52a0\uff08\u53bb\u91cd\u53ef\u9009\uff09<br \/>\nforeach ($items as $item) {<br \/>\nif (!in_array($item, $target_arr)) {<br \/>\n$target_arr[] = $item;<br \/>\n}<br \/>\n}<br \/>\nreturn $target_arr;<br \/>\n}<\/p>\n<p>\/\/ \u8c03\u75281\uff1a\u6dfb\u52a0\u5355\u4e2a\u9879\u76ee<br \/>\n$user_list = [&#8220;\u5f20\u4e09&#8221;, &#8220;\u674e\u56db&#8221;];<br \/>\n$user_list = add_items(&#8220;\u738b\u4e94&#8221;, $user_list);<\/p>\n<p>\/\/ \u8c03\u75282\uff1a\u6dfb\u52a0\u591a\u4e2a\u9879\u76ee\uff08\u6570\u7ec4\uff09<br \/>\n$user_list = add_items([&#8220;\u8d75\u516d&#8221;, &#8220;\u5b59\u4e03&#8221;], $user_list);<\/p>\n<p>print_r($user_list); \/\/ \u8f93\u51fa\uff1aArray ( [0] =&gt; \u5f20\u4e09 [1] =&gt; \u674e\u56db [2] =&gt; \u738b\u4e94 [3] =&gt; \u8d75\u516d [4] =&gt; \u5b59\u4e03 )<br \/>\n6. \u6709\u610f\u5ffd\u7565 PHP \u5173\u95ed\u6807\u7b7e<br \/>\n\u95ee\u9898<br \/>\nPHP \u5173\u95ed\u6807\u7b7e\uff08?&gt;\uff09\u540e\u82e5\u5b58\u5728\u7a7a\u683c \/ \u6362\u884c \/ \u7279\u6b8a\u5b57\u7b26\uff0c\u4f1a\u5bfc\u81f4\u300cHeaders already send error\u300d\uff08\u54cd\u5e94\u5934\u5df2\u53d1\u9001\u9519\u8bef\uff09\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/\/ \u4e0d\u63a8\u8350\uff1a\u5b58\u5728\u5173\u95ed\u6807\u7b7e\uff0c\u4e14\u540e\u9762\u6709\u591a\u4f59\u5b57\u7b26<br \/>\n<!--?php class SuperClass { \/\/ \u7c7b\u5185\u5bb9 } ?--><br \/>\n<!-- \u8fd9\u91cc\u7684\u7a7a\u683c\/\u6ce8\u91ca\/\u6362\u884c\u90fd\u4f1a\u5bfc\u81f4\u9519\u8bef --><\/p>\n<p>\/\/ \u63a8\u8350\uff1a\u7701\u7565\u5173\u95ed\u6807\u7b7e<br \/>\n<!--?php class SuperClass { \/\/ \u7c7b\u5185\u5bb9 } \/\/ \u76f4\u63a5\u7ed3\u675f\u6587\u4ef6\uff0c\u4e0d\u5199 ?--><br \/>\n7. \u96c6\u4e2d\u6536\u96c6\u8f93\u51fa\uff0c\u4f7f\u7528\u8f93\u51fa\u7f13\u51b2<br \/>\n\u95ee\u9898<br \/>\n\u5206\u6563\u8f93\u51fa\u5185\u5bb9\uff0c\u65e0\u6cd5\u7edf\u4e00\u4fee\u6539\uff0c\u4e14\u53ef\u80fd\u51fa\u73b0\u300c\u5904\u7406\u4e0e\u8f93\u51fa\u6df7\u5408\u300d\u7684\u9875\u9762\u9519\u8bef\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/\/ \u4e0d\u63a8\u8350\uff1a\u5206\u6563\u8f93\u51fa<br \/>\nfunction show_header() {<br \/>\necho &#8221;<\/p>\n<h1>\u7f51\u7ad9\u6807\u9898<\/h1>\n<p>&#8220;;<br \/>\n}<br \/>\nfunction show_content() {<br \/>\necho &#8221;<\/p>\n<p>\u7f51\u7ad9\u5185\u5bb9<\/p>\n<p>&#8220;;<br \/>\n}<br \/>\nshow_header();<br \/>\nshow_content();<\/p>\n<p>\/\/ \u63a8\u83501\uff1a\u624b\u52a8\u6536\u96c6\u8f93\u51fa\uff08\u5c40\u90e8\u53d8\u91cf\uff09<br \/>\nfunction show_header_new() {<br \/>\n$html = &#8221;<\/p>\n<h1>\u7f51\u7ad9\u6807\u9898<\/h1>\n<p>&#8220;;<br \/>\nreturn $html;<br \/>\n}<br \/>\nfunction show_content_new() {<br \/>\n$html = &#8221;<\/p>\n<p>\u7f51\u7ad9\u5185\u5bb9<\/p>\n<p>&#8220;;<br \/>\nreturn $html;<br \/>\n}<br \/>\n\/\/ \u96c6\u4e2d\u8f93\u51fa<br \/>\n$output = &#8220;&#8221;;<br \/>\n$output .= show_header_new();<br \/>\n$output .= show_content_new();<br \/>\n\/\/ \u7edf\u4e00\u4fee\u6539\u8f93\u51fa\uff08\u793a\u4f8b\uff1a\u66ff\u6362\u5173\u952e\u8bcd\uff09<br \/>\n$output = str_replace(&#8220;\u7f51\u7ad9&#8221;, &#8220;\u6211\u7684\u7f51\u7ad9&#8221;, $output);<br \/>\necho $output;<\/p>\n<p>\/\/ \u63a8\u83502\uff1a\u4f7f\u7528PHP\u5185\u7f6e\u8f93\u51fa\u7f13\u51b2\u51fd\u6570<br \/>\nob_start(); \/\/ \u5f00\u542f\u8f93\u51fa\u7f13\u51b2\uff08\u540e\u7eedecho\u5185\u5bb9\u4e0d\u4f1a\u76f4\u63a5\u53d1\u9001\u5230\u6d4f\u89c8\u5668\uff0c\u800c\u662f\u5b58\u5165\u7f13\u51b2\u533a\uff09<br \/>\nshow_header();<br \/>\nshow_content();<br \/>\n$output = ob_get_clean(); \/\/ \u83b7\u53d6\u7f13\u51b2\u533a\u5185\u5bb9\u5e76\u6e05\u7a7a\u7f13\u51b2\u533a<br \/>\n$output = str_replace(&#8220;\u7f51\u7ad9&#8221;, &#8220;\u6211\u7684\u7f51\u7ad9&#8221;, $output);<br \/>\necho $output;<br \/>\n8. \u53d1\u9001\u6b63\u786e\u7684 MIME \u7c7b\u578b\u5934\u4fe1\u606f<br \/>\n\u95ee\u9898<br \/>\n\u4e0d\u6307\u5b9a MIME \u7c7b\u578b\uff0c\u6d4f\u89c8\u5668\u53ef\u80fd\u65e0\u6cd5\u6b63\u786e\u89e3\u6790\u5185\u5bb9\uff08\u5982 XML\u3001JSON\u3001JS \u7b49\uff09\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/\/ \u793a\u4f8b1\uff1a\u8f93\u51faXML<br \/>\nheader(&#8220;Content-Type: application\/xml; charset=utf-8&#8221;);<br \/>\necho &#8216;<!--?xml version=\"1.0\" encoding=\"utf-8\"?-->&#8216;;<br \/>\necho &#8216;\u5f20\u4e0925&#8217;;<\/p>\n<p>\/\/ \u793a\u4f8b2\uff1a\u8f93\u51faJSON<br \/>\nheader(&#8220;Content-Type: application\/json; charset=utf-8&#8221;);<br \/>\n$user = [&#8220;name&#8221; =&gt; &#8220;\u5f20\u4e09&#8221;, &#8220;age&#8221; =&gt; 25];<br \/>\necho json_encode($user, JSON_UNESCAPED_UNICODE);<\/p>\n<p>\/\/ \u793a\u4f8b3\uff1a\u8f93\u51faJavaScript<br \/>\nheader(&#8220;Content-Type: application\/javascript; charset=utf-8&#8221;);<br \/>\necho &#8216;var user = {name: &#8220;\u5f20\u4e09&#8221;, age: 25};&#8217;;<\/p>\n<p>\/\/ \u793a\u4f8b4\uff1a\u8f93\u51faCSS<br \/>\nheader(&#8220;Content-Type: text\/css; charset=utf-8&#8221;);<br \/>\necho &#8216;body {font-size: 14px; color: #333;}&#8217;;<\/p>\n<p>\/\/ \u793a\u4f8b5\uff1a\u8f93\u51fa\u56fe\u7247\uff08JPG\uff09<br \/>\nheader(&#8220;Content-Type: image\/jpeg&#8221;);<br \/>\n$img = imagecreatefromjpeg(&#8220;test.jpg&#8221;);<br \/>\nimagejpeg($img);<br \/>\nimagedestroy($img);<br \/>\n9. \u4e3a MySQL \u8fde\u63a5\u8bbe\u7f6e\u6b63\u786e\u7684\u5b57\u7b26\u7f16\u7801<br \/>\n\u95ee\u9898<br \/>\n\u6570\u636e\u5e93\u8868\u5df2\u8bbe\u7f6e UTF-8\uff0c\u4f46 PHP \u8fde\u63a5\u672a\u6307\u5b9a\u7f16\u7801\uff0c\u5bfc\u81f4\u4e2d\u6587\u4e71\u7801\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/\/ MySQLi\uff08\u9762\u5411\u8fc7\u7a0b\uff09<br \/>\n$conn = mysqli_connect(&#8220;localhost&#8221;, &#8220;root&#8221;, &#8220;123456&#8221;, &#8220;test_db&#8221;);<br \/>\n\/\/ \u8bbe\u7f6e\u8fde\u63a5\u7f16\u7801\uff08\u5173\u952e\uff09<br \/>\nmysqli_set_charset($conn, &#8220;utf8mb4&#8221;); \/\/ \u63a8\u8350utf8mb4\uff0c\u652f\u6301emoji\u8868\u60c5<\/p>\n<p>\/\/ MySQLi\uff08\u9762\u5411\u5bf9\u8c61\uff09<br \/>\n$conn = new mysqli(&#8220;localhost&#8221;, &#8220;root&#8221;, &#8220;123456&#8221;, &#8220;test_db&#8221;);<br \/>\n$conn-&gt;set_charset(&#8220;utf8mb4&#8221;);<\/p>\n<p>\/\/ PDO<br \/>\n$dsn = &#8220;mysql:host=localhost;dbname=test_db;charset=utf8mb4&#8221;;<br \/>\n$conn = new PDO($dsn, &#8220;root&#8221;, &#8220;123456&#8221;);<br \/>\n10. \u4f7f\u7528 htmlentities \u8bbe\u7f6e\u6b63\u786e\u7684\u7f16\u7801\u9009\u9879<br \/>\n\u95ee\u9898<br \/>\nPHP5.4 \u524d\u9ed8\u8ba4\u7f16\u7801\u4e3a ISO-8859-1\uff0c\u65e0\u6cd5\u6b63\u786e\u8f93\u51fa\u4e2d\u6587\u7b49\u7279\u6b8a\u5b57\u7b26\uff0c\u5bfc\u81f4\u4e71\u7801\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/\/ \u4e0d\u63a8\u8350\uff1a\u4e0d\u6307\u5b9a\u7f16\u7801\uff08PHP5.4\u524d\u9ed8\u8ba4ISO-8859-1\uff09<br \/>\n$str = &#8220;\u00c0 \u00e2 \u5f20\u4e09&#8221;;<br \/>\necho htmlentities($str); \/\/ \u4e71\u7801<\/p>\n<p>\/\/ \u63a8\u8350\uff1a\u6307\u5b9aUTF-8\u7f16\u7801<br \/>\n$str = &#8220;\u00c0 \u00e2 \u5f20\u4e09&#8221;;<br \/>\n\/\/ htmlentities\uff1a\u8f6c\u6362\u6240\u6709HTML\u7279\u6b8a\u5b57\u7b26<br \/>\necho htmlentities($str, ENT_QUOTES, &#8220;UTF-8&#8221;);<\/p>\n<p>\/\/ \u8865\u5145\uff1ahtmlspecialchars\uff08\u4ec5\u8f6c\u6362\u5173\u952eHTML\u7279\u6b8a\u5b57\u7b26\uff0c\u6027\u80fd\u66f4\u9ad8\uff09<br \/>\necho htmlspecialchars($str, ENT_QUOTES, &#8220;UTF-8&#8221;);<br \/>\n11. \u4e0d\u8981\u5728\u5e94\u7528\u4e2d\u4f7f\u7528 gzip \u538b\u7f29\u8f93\u51fa<br \/>\n\u8bf4\u660e<br \/>\nPHP \u7684 ob_gzhandler \u8d1f\u8d23\u5e94\u7528\u903b\u8f91\u5373\u53ef\uff0c\u538b\u7f29\u4f18\u5316\u5e94\u4ea4\u7ed9\u670d\u52a1\u5668\uff08\u66f4\u9ad8\u6548\uff09\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/\/ \u4e0d\u63a8\u8350\uff1a\u4f7f\u7528PHP\u8fdb\u884cgzip\u538b\u7f29<br \/>\n\/\/ ob_start(&#8220;ob_gzhandler&#8221;);<\/p>\n<p>\/\/ \u63a8\u8350\uff1a\u4f7f\u7528Apache\/Nginx\u8fdb\u884c\u538b\u7f29<br \/>\n\/\/ Apache\uff1a\u5f00\u542fmod_gzip\/mod_deflate\u6a21\u5757\uff08\u914d\u7f6ehttpd.conf\uff09<br \/>\n\/\/ Nginx\uff1a\u5f00\u542fgzip\u6a21\u5757\uff08\u914d\u7f6enginx.conf\uff09<br \/>\ngzip on;<br \/>\ngzip_types text\/plain text\/css application\/json application\/javascript text\/xml application\/xml application\/xml+rss text\/javascript;<br \/>\n12. \u4f7f\u7528 json_encode \u8f93\u51fa\u52a8\u6001 JavaScript \u5185\u5bb9<br \/>\n\u95ee\u9898<br \/>\n\u624b\u52a8\u62fc\u63a5 JavaScript \u53d8\u91cf\uff0c\u6613\u51fa\u73b0\u8bed\u6cd5\u9519\u8bef\u548c\u5f15\u53f7\u51b2\u7a81\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/\/ \u4e0d\u63a8\u8350\uff1a\u624b\u52a8\u62fc\u63a5<br \/>\n$user = [&#8220;name&#8221; =&gt; &#8220;\u5f20\u4e09&#8221;, &#8220;age&#8221; =&gt; 25, &#8220;desc&#8221; =&gt; &#8220;\u4ed6\u8bf4\uff1a&#8217;Hello World'&#8221;];<br \/>\necho &#8220;<script>\";\necho \"var user = {name: '{$user['name']}', age: {$user['age']}, desc: '{$user['desc']}'};\"; \/\/ \u6613\u51fa\u9519\necho \"<\/script>&#8220;;<\/p>\n<p>\/\/ \u63a8\u8350\uff1a\u4f7f\u7528json_encode<br \/>\n$user = [&#8220;name&#8221; =&gt; &#8220;\u5f20\u4e09&#8221;, &#8220;age&#8221; =&gt; 25, &#8220;desc&#8221; =&gt; &#8220;\u4ed6\u8bf4\uff1a&#8217;Hello World'&#8221;];<br \/>\necho &#8220;<script>\";\necho \"var user = \" . json_encode($user, JSON_UNESCAPED_UNICODE) . \";\";\necho \"<\/script>&#8220;;<br \/>\n13. \u5199\u6587\u4ef6\u524d\uff0c\u68c0\u67e5\u76ee\u5f55\u5199\u6743\u9650<br \/>\n\u95ee\u9898<br \/>\nfile_put_contents \u5931\u8d25\u65f6\uff0c\u65e0\u6cd5\u5feb\u901f\u5b9a\u4f4d\u539f\u56e0\uff08\u76ee\u5f55\u4e0d\u5b58\u5728 \/ \u65e0\u6743\u9650 \/ \u6587\u4ef6\u88ab\u9501\u5b9a\uff09\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/**<br \/>\n* \u5b89\u5168\u5199\u5165\u6587\u4ef6<br \/>\n* @param string $file_path \u6587\u4ef6\u8def\u5f84<br \/>\n* @param string $content \u6587\u4ef6\u5185\u5bb9<br \/>\n* @return bool<br \/>\n*\/<br \/>\nfunction safe_file_put_contents($file_path, $content) {<br \/>\n\/\/ \u83b7\u53d6\u6587\u4ef6\u6240\u5728\u76ee\u5f55<br \/>\n$dir = dirname($file_path);<\/p>\n<p>\/\/ \u68c0\u67e5\u76ee\u5f55\u662f\u5426\u5b58\u5728<br \/>\nif (!is_dir($dir)) {<br \/>\n\/\/ \u521b\u5efa\u76ee\u5f55\uff08\u9012\u5f52\u521b\u5efa\uff0c\u6743\u96500755\uff09<br \/>\n$mkdir = mkdir($dir, 0755, true);<br \/>\nif (!$mkdir) {<br \/>\ndie(&#8220;\u76ee\u5f55 {$dir} \u521b\u5efa\u5931\u8d25\uff01&#8221;);<br \/>\n}<br \/>\n}<\/p>\n<p>\/\/ \u68c0\u67e5\u76ee\u5f55\u662f\u5426\u53ef\u5199<br \/>\nif (!is_writable($dir)) {<br \/>\ndie(&#8220;\u76ee\u5f55 {$dir} \u65e0\u5199\u5165\u6743\u9650\uff01&#8221;);<br \/>\n}<\/p>\n<p>\/\/ \u5199\u5165\u6587\u4ef6<br \/>\n$result = file_put_contents($file_path, $content);<br \/>\nif ($result === false) {<br \/>\ndie(&#8220;\u6587\u4ef6 {$file_path} \u5199\u5165\u5931\u8d25\uff08\u53ef\u80fd\u88ab\u9501\u5b9a\uff09\uff01&#8221;);<br \/>\n}<\/p>\n<p>return true;<br \/>\n}<\/p>\n<p>\/\/ \u8c03\u7528<br \/>\nsafe_file_put_contents(PROJECT_ROOT . &#8220;\/data\/test.txt&#8221;, &#8220;\u6d4b\u8bd5\u5185\u5bb9&#8221;);<br \/>\n14. \u66f4\u6539\u5e94\u7528\u521b\u5efa\u7684\u6587\u4ef6\u6743\u9650<br \/>\n\u95ee\u9898<br \/>\nPHP \u521b\u5efa\u7684\u6587\u4ef6\u9ed8\u8ba4\u6743\u9650\u7531\u7cfb\u7edf umask \u51b3\u5b9a\uff0c\u53ef\u80fd\u5bfc\u81f4\u5176\u4ed6\u7528\u6237\u65e0\u6cd5\u8bbf\u95ee\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/\/ \u5199\u5165\u6587\u4ef6\u540e\u8bbe\u7f6e\u6743\u9650<br \/>\n$file_path = PROJECT_ROOT . &#8220;\/data\/test.txt&#8221;;<br \/>\nfile_put_contents($file_path, &#8220;\u6d4b\u8bd5\u5185\u5bb9&#8221;);<br \/>\n\/\/ \u8bbe\u7f6e\u6587\u4ef6\u6743\u9650\uff080644\uff1a\u6240\u6709\u8005\u53ef\u8bfb\u53ef\u5199\uff0c\u5176\u4ed6\u7528\u6237\u53ea\u8bfb\uff09<br \/>\nchmod($file_path, 0644);<\/p>\n<p>\/\/ \u76ee\u5f55\u521b\u5efa\u540e\u8bbe\u7f6e\u6743\u9650<br \/>\n$dir_path = PROJECT_ROOT . &#8220;\/data\/upload&#8221;;<br \/>\nmkdir($dir_path, 0755, true);<br \/>\nchmod($dir_path, 0755); \/\/ 0755\uff1a\u6240\u6709\u8005\u53ef\u8bfb\u53ef\u5199\u53ef\u6267\u884c\uff0c\u5176\u4ed6\u7528\u6237\u53ef\u8bfb\u53ef\u6267\u884c<\/p>\n<p>\/\/ \u5c01\u88c5\u5230\u5b89\u5168\u5199\u5165\u51fd\u6570\u4e2d\uff08\u4f18\u5316\uff09<br \/>\nfunction safe_file_put_contents_v2($file_path, $content) {<br \/>\n$dir = dirname($file_path);<br \/>\nif (!is_dir($dir)) {<br \/>\nmkdir($dir, 0755, true);<br \/>\nchmod($dir, 0755);<br \/>\n}<br \/>\nif (!is_writable($dir)) {<br \/>\ndie(&#8220;\u76ee\u5f55 {$dir} \u65e0\u5199\u5165\u6743\u9650\uff01&#8221;);<br \/>\n}<br \/>\n$result = file_put_contents($file_path, $content);<br \/>\nif ($result === false) {<br \/>\ndie(&#8220;\u6587\u4ef6 {$file_path} \u5199\u5165\u5931\u8d25\uff01&#8221;);<br \/>\n}<br \/>\nchmod($file_path, 0644); \/\/ \u8bbe\u7f6e\u6587\u4ef6\u6743\u9650<br \/>\nreturn true;<br \/>\n}<br \/>\n15. \u4e0d\u8981\u4f9d\u8d56 submit \u6309\u94ae\u503c<br \/>\n\u95ee\u9898<br \/>\n\u591a\u8bed\u8a00\u5e94\u7528\u4e2d\uff0csubmit \u6309\u94ae\u503c\uff08\u5982 \u201cSave\u201d\/\u201c\u4fdd\u5b58\u201d\/\u201cSauvegarder\u201d\uff09\u4f1a\u53d8\u5316\uff0c\u5bfc\u81f4\u5224\u65ad\u5931\u6548\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/\/ \u4e0d\u63a8\u8350\uff1a\u4f9d\u8d56\u6309\u94ae\u503c\u5224\u65ad<br \/>\nif ($_POST[&#8216;submit&#8217;] == &#8216;\u4fdd\u5b58&#8217; || $_POST[&#8216;submit&#8217;] == &#8216;Save&#8217;) {<br \/>\n\/\/ \u5904\u7406\u8868\u5355<br \/>\n}<\/p>\n<p>\/\/ \u63a8\u8350\uff1a\u4f7f\u7528\u9690\u85cf\u57df\u6216\u6309\u94aename\u5c5e\u6027\u5224\u65ad<br \/>\n\/\/ HTML\u4ee3\u7801<br \/>\n\/*<\/p>\n<form method=\"post\"><input name=\"action\" type=\"hidden\" value=\"save_user\" \/><br \/>\n<input name=\"submit_btn\" type=\"submit\" value=\"\u4fdd\u5b58\" \/><\/form>\n<p>*\/<\/p>\n<p>\/\/ PHP\u4ee3\u7801<br \/>\nif (isset($_POST[&#8216;action&#8217;]) &amp;&amp; $_POST[&#8216;action&#8217;] == &#8216;save_user&#8217;) {<br \/>\n\/\/ \u5904\u7406\u8868\u5355\uff08\u4e0d\u53d7\u6309\u94ae\u663e\u793a\u503c\u5f71\u54cd\uff09<br \/>\n$user_name = $_POST[&#8216;user_name&#8217;];<br \/>\n\/\/ &#8230;<br \/>\n}<\/p>\n<p>\/\/ \u53e6\u4e00\u79cd\u65b9\u5f0f\uff1a\u4f7f\u7528\u6309\u94aename\u5c5e\u6027\uff08\u591a\u4e2a\u6309\u94ae\uff09<br \/>\n\/*<\/p>\n<form method=\"post\"><input name=\"action_save\" type=\"submit\" value=\"\u4fdd\u5b58\" \/><br \/>\n<input name=\"action_delete\" type=\"submit\" value=\"\u5220\u9664\" \/><\/form>\n<p>*\/<br \/>\nif (isset($_POST[&#8216;action_save&#8217;])) {<br \/>\n\/\/ \u4fdd\u5b58\u903b\u8f91<br \/>\n} elseif (isset($_POST[&#8216;action_delete&#8217;])) {<br \/>\n\/\/ \u5220\u9664\u903b\u8f91<br \/>\n}<br \/>\n16. \u76f8\u540c\u503c\u7684\u53d8\u91cf\u5b9a\u4e49\u6210\u9759\u6001\u53d8\u91cf<br \/>\n\u95ee\u9898<br \/>\n\u51fd\u6570\u6bcf\u6b21\u8c03\u7528\u90fd\u4f1a\u91cd\u65b0\u521d\u59cb\u5316\u53d8\u91cf\uff0c\u82e5\u53d8\u91cf\u503c\u56fa\u5b9a\uff0c\u9020\u6210\u8d44\u6e90\u6d6a\u8d39\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/\/ \u4e0d\u63a8\u8350\uff1a\u6bcf\u6b21\u8c03\u7528\u90fd\u91cd\u65b0\u521b\u5efa\u6570\u7ec4<br \/>\nfunction get_default_config() {<br \/>\n$config = [&#8220;timeout&#8221; =&gt; 30, &#8220;charset&#8221; =&gt; &#8220;utf8mb4&#8221;, &#8220;debug&#8221; =&gt; false];<br \/>\nreturn $config;<br \/>\n}<\/p>\n<p>\/\/ \u63a8\u8350\uff1a\u4f7f\u7528\u9759\u6001\u53d8\u91cf\uff0c\u4ec5\u521d\u59cb\u5316\u4e00\u6b21<br \/>\nfunction get_default_config_v2() {<br \/>\nstatic $config = null; \/\/ \u9759\u6001\u53d8\u91cf\uff0c\u51fd\u6570\u8c03\u7528\u7ed3\u675f\u540e\u4e0d\u9500\u6bc1<br \/>\nif ($config === null) {<br \/>\n$config = [&#8220;timeout&#8221; =&gt; 30, &#8220;charset&#8221; =&gt; &#8220;utf8mb4&#8221;, &#8220;debug&#8221; =&gt; false];<br \/>\n}<br \/>\nreturn $config;<br \/>\n}<br \/>\n17. \u4e0d\u8981\u76f4\u63a5\u4f7f\u7528 $_SESSION \u53d8\u91cf<br \/>\n\u95ee\u9898<br \/>\n\u540c\u57df\u540d\u4e0b\u591a\u4e2a\u5e94\u7528\u5171\u4eab SESSION\uff0c\u53ef\u80fd\u5bfc\u81f4 KEY \u51b2\u7a81\uff08\u5982\u4e24\u4e2a\u5e94\u7528\u90fd\u4f7f\u7528 $_SESSION [&#8216;user&#8217;]\uff09\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/\/ \u4e0d\u63a8\u8350\uff1a\u76f4\u63a5\u4f7f\u7528$_SESSION<br \/>\n$_SESSION[&#8216;user&#8217;] = $user_info;<br \/>\n$_SESSION[&#8216;token&#8217;] = $token;<\/p>\n<p>\/\/ \u63a8\u8350\uff1a\u5b9a\u4e49\u5e94\u7528\u524d\u7f00\uff0c\u5c01\u88c5SESSION\u64cd\u4f5c\u51fd\u6570<br \/>\ndefine(&#8216;APP_SESSION_PREFIX&#8217;, &#8216;blog_&#8217;); \/\/ \u4e0d\u540c\u5e94\u7528\u8bbe\u7f6e\u4e0d\u540c\u524d\u7f00\uff08\u5982admin_\/shop_\uff09<\/p>\n<p>\/\/ \u5c01\u88c5SESSION\u8bbe\u7f6e\u51fd\u6570<br \/>\nfunction session_set($key, $value) {<br \/>\n$session_key = APP_SESSION_PREFIX . $key;<br \/>\n$_SESSION[$session_key] = $value;<br \/>\n}<\/p>\n<p>\/\/ \u5c01\u88c5SESSION\u83b7\u53d6\u51fd\u6570<br \/>\nfunction session_get($key, $default = null) {<br \/>\n$session_key = APP_SESSION_PREFIX . $key;<br \/>\nreturn isset($_SESSION[$session_key]) ? $_SESSION[$session_key] : $default;<br \/>\n}<\/p>\n<p>\/\/ \u5c01\u88c5SESSION\u5220\u9664\u51fd\u6570<br \/>\nfunction session_del($key) {<br \/>\n$session_key = APP_SESSION_PREFIX . $key;<br \/>\nunset($_SESSION[$session_key]);<br \/>\n}<\/p>\n<p>\/\/ \u8c03\u7528<br \/>\nsession_set(&#8216;user&#8217;, $user_info);<br \/>\nsession_set(&#8216;token&#8217;, $token);<br \/>\n$user = session_get(&#8216;user&#8217;);<br \/>\n$token = session_get(&#8216;token&#8217;);<br \/>\nsession_del(&#8216;token&#8217;);<br \/>\n18. \u5c06\u5de5\u5177\u51fd\u6570\u5c01\u88c5\u5230\u7c7b\u4e2d<br \/>\n\u95ee\u9898<br \/>\n\u5168\u5c40\u5de5\u5177\u51fd\u6570\u6613\u4e0e PHP \u5185\u7f6e\u51fd\u6570\u6216\u5176\u4ed6\u5e93\u51fd\u6570\u91cd\u540d\uff0c\u9020\u6210\u51b2\u7a81\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/\/ \u4e0d\u63a8\u8350\uff1a\u5168\u5c40\u5de5\u5177\u51fd\u6570<br \/>\nfunction format_date($timestamp) {<br \/>\nreturn date(&#8216;Y-m-d H:i:s&#8217;, $timestamp);<br \/>\n}<\/p>\n<p>function get_ip() {<br \/>\nreturn $_SERVER[&#8216;REMOTE_ADDR&#8217;] ?? &#8216;\u672a\u77e5IP&#8217;;<br \/>\n}<\/p>\n<p>\/\/ \u63a8\u8350\uff1a\u5c01\u88c5\u5230\u5de5\u5177\u7c7b\u4e2d\uff08\u9759\u6001\u7c7b\uff0c\u65e0\u9700\u5b9e\u4f8b\u5316\uff09<br \/>\nclass Tool {<br \/>\n\/**<br \/>\n* \u683c\u5f0f\u5316\u65f6\u95f4\u6233<br \/>\n* @param int $timestamp \u65f6\u95f4\u6233<br \/>\n* @return string<br \/>\n*\/<br \/>\npublic static function format_date($timestamp) {<br \/>\nreturn date(&#8216;Y-m-d H:i:s&#8217;, $timestamp);<br \/>\n}<\/p>\n<p>\/**<br \/>\n* \u83b7\u53d6\u7528\u6237IP<br \/>\n* @return string<br \/>\n*\/<br \/>\npublic static function get_ip() {<br \/>\nreturn $_SERVER[&#8216;REMOTE_ADDR&#8217;] ?? &#8216;\u672a\u77e5IP&#8217;;<br \/>\n}<br \/>\n}<\/p>\n<p>\/\/ \u8c03\u7528\uff08\u901a\u8fc7\u7c7b\u540d::\u65b9\u6cd5\u540d\uff0c\u907f\u514d\u51b2\u7a81\uff09<br \/>\n$format_date = Tool::format_date(time());<br \/>\n$user_ip = Tool::get_ip();<\/p>\n<p>\/\/ \u6269\u5c55\uff1a\u652f\u6301\u591a\u7248\u672c\u7c7b\uff08\u547d\u540d\u7a7a\u95f4\u533a\u5206\uff09<br \/>\n\/*<br \/>\nnamespace App\\V1;<br \/>\nclass Tool { &#8230; }<\/p>\n<p>namespace App\\V2;<br \/>\nclass Tool { &#8230; }<\/p>\n<p>\/\/ \u8c03\u7528<br \/>\nApp\\V1\\Tool::format_date(time());<br \/>\nApp\\V2\\Tool::format_date(time());<br \/>\n*\/<br \/>\n19. \u4e00\u7cfb\u5217\u5b9e\u7528\u5c0f\u6280\u5de7<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/\/ 1. \u4f7f\u7528echo\u53d6\u4ee3print\uff08echo\u6027\u80fd\u66f4\u9ad8\uff0c\u652f\u6301\u591a\u53c2\u6570\uff09<br \/>\necho &#8220;Hello&#8221;, &#8221; &#8220;, &#8220;World&#8221;; \/\/ \u652f\u6301\u591a\u53c2\u6570<br \/>\n\/\/ print &#8220;Hello World&#8221;; \/\/ \u4ec5\u652f\u6301\u5355\u53c2\u6570\uff0c\u8fd4\u56de\u503c\u59cb\u7ec8\u4e3a1<\/p>\n<p>\/\/ 2. \u4f7f\u7528str_replace\u53d6\u4ee3preg_replace\uff08\u7b80\u5355\u66ff\u6362\u6027\u80fd\u66f4\u9ad8\uff09<br \/>\n$str = &#8220;Hello PHP&#8221;;<br \/>\n$str = str_replace(&#8220;PHP&#8221;, &#8220;Java&#8221;, $str); \/\/ \u7b80\u5355\u66ff\u6362<br \/>\n\/\/ $str = preg_replace(&#8220;\/PHP\/&#8221;, &#8220;Java&#8221;, $str); \/\/ \u6b63\u5219\u66ff\u6362\uff08\u4ec5\u5728\u9700\u8981\u590d\u6742\u5339\u914d\u65f6\u4f7f\u7528\uff09<\/p>\n<p>\/\/ 3. \u4e0d\u8981\u4f7f\u7528short tag\uff08&lt;? ?&gt;\uff09\uff0c\u4f7f\u7528\u5b8c\u6574\u6807\u7b7e\uff08<!--?php?-->\uff09<br \/>\n\/\/ \u4e0d\u63a8\u8350\uff1a&lt;? echo &#8220;Hello&#8221;; ?&gt;<br \/>\n\/\/ \u63a8\u8350\uff1a<!--?php echo \"Hello\"; ?--><\/p>\n<p>\/\/ 4. \u7b80\u5355\u5b57\u7b26\u4e32\u7528\u5355\u5f15\u53f7\u53d6\u4ee3\u53cc\u5f15\u53f7\uff08\u53cc\u5f15\u53f7\u4f1a\u89e3\u6790\u53d8\u91cf\uff0c\u6027\u80fd\u7565\u4f4e\uff09<br \/>\n$name = &#8220;\u5f20\u4e09&#8221;;<br \/>\n$str1 = &#8216;\u6211\u7684\u540d\u5b57\u662f&#8217; . $name; \/\/ \u63a8\u8350<br \/>\n\/\/ $str2 = &#8220;\u6211\u7684\u540d\u5b57\u662f{$name}&#8221;; \/\/ \u53cc\u5f15\u53f7\uff08\u4ec5\u5728\u9700\u8981\u53d8\u91cf\u89e3\u6790\u65f6\u4f7f\u7528\uff09<\/p>\n<p>\/\/ 5. header\u91cd\u5b9a\u5411\u540e\u8bb0\u5f97\u4f7f\u7528exit\/die\uff08\u9632\u6b62\u540e\u7eed\u4ee3\u7801\u6267\u884c\uff09<br \/>\nheader(&#8220;Location: \/login.php&#8221;);<br \/>\nexit; \/\/ \u5fc5\u987b\u6dfb\u52a0<\/p>\n<p>\/\/ 6. \u4e0d\u8981\u5728\u5faa\u73af\u4e2d\u8c03\u7528\u51fd\u6570\uff08\u907f\u514d\u91cd\u590d\u8c03\u7528\u5f00\u9500\uff09<br \/>\n\/\/ \u4e0d\u63a8\u8350<br \/>\nfor ($i = 0; $i &lt; count($arr); $i++) { \/\/ \u6bcf\u6b21\u5faa\u73af\u90fd\u8c03\u7528count()<br \/>\n\/\/ &#8230;<br \/>\n}<br \/>\n\/\/ \u63a8\u8350<br \/>\n$arr_count = count($arr);<br \/>\nfor ($i = 0; $i &lt; $arr_count; $i++) { \/\/ \u4ec5\u8c03\u7528\u4e00\u6b21count() \/\/ &#8230; } \/\/ 7. isset\u6bd4strlen\u5feb\uff08\u5224\u65ad\u5b57\u7b26\u4e32\u662f\u5426\u975e\u7a7a\uff09 $str = &#8220;&#8221;; \/\/ \u4e0d\u63a8\u8350 if (strlen($str) &gt; 0) { &#8230; }<br \/>\n\/\/ \u63a8\u8350<br \/>\nif (isset($str) &amp;&amp; $str !== &#8220;&#8221;) { &#8230; }<\/p>\n<p>\/\/ 8. \u59cb\u7ec8\u5982\u4e00\u7684\u683c\u5f0f\u5316\u4ee3\u7801\uff08\u4f7f\u7528PSR\u89c4\u8303\uff09<\/p>\n<p>\/\/ 9. \u4e0d\u8981\u5220\u9664\u5faa\u73af\/if-else\u7684\u62ec\u53f7\uff08\u63d0\u9ad8\u53ef\u8bfb\u6027\uff0c\u907f\u514dbug\uff09<br \/>\n\/\/ \u4e0d\u63a8\u8350<br \/>\nif ($a &gt; 0)<br \/>\necho &#8220;a\u5927\u4e8e0&#8221;;<br \/>\n\/\/ \u63a8\u8350<br \/>\nif ($a &gt; 0) {<br \/>\necho &#8220;a\u5927\u4e8e0&#8243;;<br \/>\n}<\/p>\n<p>\/\/ 10. \u4f7f\u7528\u6709\u8bed\u6cd5\u9ad8\u4eae\u7684\u6587\u672c\u7f16\u8f91\u5668\uff08VS Code\/PhpStorm\u7b49\uff09<br \/>\n20. \u4f7f\u7528 array_map \u5feb\u901f\u5904\u7406\u6570\u7ec4<br \/>\n\u95ee\u9898<br \/>\n\u5faa\u73af\u904d\u5386\u6570\u7ec4\u5904\u7406\u6bcf\u4e2a\u5143\u7d20\uff08\u5982 trim\u3001\u683c\u5f0f\u5316\uff09\uff0c\u4ee3\u7801\u5197\u4f59\u3002<br \/>\n\u89e3\u51b3\u65b9\u6848<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/\/ \u4e0d\u63a8\u8350\uff1a\u5faa\u73af\u5904\u7406\u6570\u7ec4\u5143\u7d20<br \/>\n$arr = [&#8221; \u5f20\u4e09 &#8220;, &#8221; \u674e\u56db &#8220;, &#8221; \u738b\u4e94 &#8220;];<br \/>\nfor ($i = 0; $i &lt; count($arr); $i++) { $arr[$i] = trim($arr[$i]); } \/\/ \u63a8\u83501\uff1a\u4f7f\u7528array_map\uff08\u6620\u5c04\u5904\u7406\u6570\u7ec4\u6bcf\u4e2a\u5143\u7d20\uff09 $arr = [&#8221; \u5f20\u4e09 &#8220;, &#8221; \u674e\u56db &#8220;, &#8221; \u738b\u4e94 &#8220;]; $arr = array_map(&#8216;trim&#8217;, $arr); \/\/ \u5bf9\u6bcf\u4e2a\u5143\u7d20\u8c03\u7528trim\u51fd\u6570 print_r($arr); \/\/ \u8f93\u51fa\uff1aArray ( [0] =&gt; \u5f20\u4e09 [1] =&gt; \u674e\u56db [2] =&gt; \u738b\u4e94 )<\/p>\n<p>\/\/ \u63a8\u83502\uff1aarray_map\u4f7f\u7528\u81ea\u5b9a\u4e49\u51fd\u6570<br \/>\n$arr = [1, 2, 3, 4, 5];<br \/>\n$arr = array_map(function($item) {<br \/>\nreturn $item * 2; \/\/ \u6bcf\u4e2a\u5143\u7d20\u4e58\u4ee52<br \/>\n}, $arr);<br \/>\nprint_r($arr); \/\/ \u8f93\u51fa\uff1aArray ( [0] =&gt; 2 [1] =&gt; 4 [2] =&gt; 6 [3] =&gt; 8 [4] =&gt; 10 )<\/p>\n<p>\/\/ \u8865\u5145\uff1aarray_walk\uff08\u66f4\u9002\u5408\u4fee\u6539\u539f\u6570\u7ec4\uff0c\u652f\u6301\u4f20\u5f15\u7528\uff09<br \/>\n$arr = [&#8221; \u5f20\u4e09 &#8220;, &#8221; \u674e\u56db &#8220;, &#8221; \u738b\u4e94 &#8220;];<br \/>\narray_walk($arr, function(&amp;$item) { \/\/ &amp;$item \u4f20\u5f15\u7528\uff0c\u76f4\u63a5\u4fee\u6539\u539f\u6570\u7ec4<br \/>\n$item = trim($item);<br \/>\n});<br \/>\n\u603b\u7ed3<br \/>\n\u8def\u5f84\u4e0e\u52a0\u8f7d\uff1a\u4f18\u5148\u7edd\u5bf9\u8def\u5f84\uff08DIR\/FILE\uff09\uff0c\u5c01\u88c5\u52a0\u8f7d\u51fd\u6570\u63d0\u9ad8\u7075\u6d3b\u6027\uff1b<br \/>\n\u73af\u5883\u4e0e\u8c03\u8bd5\uff1a\u4fdd\u7559\u8c03\u8bd5\u4ee3\u7801\uff0c\u901a\u8fc7\u73af\u5883\u5e38\u91cf\u533a\u5206\u5f00\u53d1 \/ \u751f\u4ea7\u73af\u5883\uff1b<br \/>\n\u8f93\u51fa\u4e0e\u7f16\u7801\uff1a\u4f7f\u7528\u8f93\u51fa\u7f13\u51b2\u3001\u6307\u5b9a\u6b63\u786e MIME \u7c7b\u578b\u548c\u5b57\u7b26\u7f16\u7801\uff0c\u907f\u514d\u4e71\u7801\uff1b<br \/>\n\u5b89\u5168\u4e0e\u517c\u5bb9\uff1a\u5c01\u88c5 SESSION \/ \u6587\u4ef6\u64cd\u4f5c \/ \u7cfb\u7edf\u547d\u4ee4\u6267\u884c\uff0c\u907f\u514d\u51b2\u7a81\u548c\u9519\u8bef\uff1b<br \/>\n\u6027\u80fd\u4e0e\u89c4\u8303\uff1a\u4f7f\u7528\u9759\u6001\u53d8\u91cf\u3001array_map\u3001\u907f\u514d\u5faa\u73af\u5185\u51fd\u6570\u8c03\u7528\uff0c\u9075\u5faa\u4ee3\u7801\u89c4\u8303\u3002<br \/>\n\u8fd9\u4e9b\u6280\u5de7\u53ef\u76f4\u63a5\u5e94\u7528\u5230 PHP \u9879\u76ee\u4e2d\uff0c\u6709\u6548\u6539\u5584\u4ee3\u7801\u8d28\u91cf\u3001\u63d0\u9ad8\u5f00\u53d1\u6548\u7387\u548c\u9879\u76ee\u53ef\u7ef4\u62a4\u6027\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PHP 20 \u4e2a\u5b9e\u7528\u5f00\u53d1\u6280\u5de7\uff08\u5b8c\u6574\u8be6\u89e3\uff09 \u4f60\u60f3\u8981\u7684\u662f\u8fd9 20 \u4e2a PHP \u5b9e\u7528\u6280\u5de7\u7684\u5b8c\u6574\u68b3\u7406\u548c\u53ef\u843d\u5730\u5b9e\u73b0\uff0c\u4e0b\u9762 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[68],"tags":[],"content_type":[],"class_list":["post-15935","post","type-post","status-publish","format-standard","hentry","category-zzjy"],"_links":{"self":[{"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=\/wp\/v2\/posts\/15935","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15935"}],"version-history":[{"count":0,"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=\/wp\/v2\/posts\/15935\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15935"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15935"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15935"},{"taxonomy":"content_type","embeddable":true,"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fcontent_type&post=15935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}