{"status":1,"info":"","data":{"articles":[{"aid":77,"title":"2021-05-29 登顶鹏城第一峰","author":"pengxb","content":"<p style=\"text-align: left;\">&nbsp;&nbsp;&nbsp;&nbsp;来了，就是深圳人！作为深圳人，怎能不去爬一下鹏程第一峰呢？于是，我们去了！上图：</p><p style=\"text-align: center;\"><img src=\"https://image.pengxb.com/ueditor/20210601/16225479143.jpg\" title=\"技苑\" alt=\"技苑\"/><img src=\"https://image.pengxb.com/ueditor/20210601/16225479324.jpg\" title=\"技苑\" alt=\"技苑\"/><img src=\"https://image.pengxb.com/ueditor/20210601/16225479410.jpg\" title=\"技苑\" alt=\"技苑\"/><img src=\"https://image.pengxb.com/ueditor/20210601/16225479205.jpg\" title=\"技苑\" alt=\"技苑\"/><img src=\"https://image.pengxb.com/ueditor/20210601/16225479263.jpg\" title=\"技苑\" alt=\"技苑\"/><img src=\"https://image.pengxb.com/ueditor/20210601/16225479623.jpg\" title=\"技苑\" alt=\"技苑\"/><img src=\"https://image.pengxb.com/ueditor/20210601/16225479816.jpg\" title=\"技苑\" alt=\"技苑\"/><img src=\"https://image.pengxb.com/ueditor/20210601/162254797410.jpg\" title=\"技苑\" alt=\"技苑\"/><img src=\"https://image.pengxb.com/ueditor/20210601/16225479525.jpg\" title=\"技苑\" alt=\"技苑\"/><img src=\"https://image.pengxb.com/ueditor/20210601/16225479479.jpg\" title=\"技苑\" alt=\"技苑\"/><img src=\"https://image.pengxb.com/ueditor/20210601/16225479695.jpg\" title=\"技苑\" alt=\"技苑\"/><img src=\"https://image.pengxb.com/ueditor/20210601/16225479589.jpg\" title=\"技苑\" alt=\"技苑\"/><img src=\"https://image.pengxb.com/ueditor/20210601/16225479890.jpg\" title=\"技苑\" alt=\"技苑\"/><br/><br/></p><p style=\"text-align: center;\">再来几段vlog，哈哈</p><p>\r\n<p style=\"text-align:center\"><video class=\"edui-upload-video  vjs-default-skin video-js\" controls=\"\" preload=\"meta\" width=\"100%\" src=\"https://image.pengxb.com/%E6%A2%A7%E6%A1%90%E5%B1%B1/2021-05-29%20%E6%A2%A7%E6%A1%90%E5%B1%B1.mp4\r\n\" data-setup=\"{}\"></video>\r\n<p style=\"text-align:center\">梧桐山</p>\r\n<p style=\"text-align:center\"><video class=\"edui-upload-video  vjs-default-skin video-js\" controls=\"\" preload=\"meta\" width=\"100%\" src=\"https://image.pengxb.com/%E6%A2%A7%E6%A1%90%E5%B1%B1/2021-05-30%20%E5%A4%A7%E6%A2%85%E6%B2%99.mp4\r\n\" data-setup=\"{}\"></video>\r\n<p style=\"text-align:center\">大梅沙</p>","keywords":"","description":"    来了，就是深圳人！作为深圳人，怎能不去爬一下鹏程第一峰呢？于是，我们去了！上图：","is_show":1,"is_delete":0,"is_top":1,"is_original":1,"click":3890,"addtime":"2021-06-01 18:01:04","cid":6,"created_at":"2026-05-10 09:19:08","updated_at":"2026-06-04 15:23:32","deleted_at":null,"category":{"cid":6,"cname":"忆往昔","keywords":"忆往昔","description":"","sort":12,"pid":0,"nav":"Once","created_at":"2026-05-10 09:22:40","updated_at":null,"deleted_at":null},"tags":[{"tid":9,"tname":"忆往昔","sort":9,"created_at":"2026-05-10 09:24:23","updated_at":null,"deleted_at":null,"pivot":{"aid":77,"tid":9}}],"pics":[{"ap_id":1332,"path":"https://image.pengxb.com/ueditor/20210601/16225479143.jpg","aid":77,"created_at":"2026-05-10 09:20:23","updated_at":null,"deleted_at":null},{"ap_id":1333,"path":"https://image.pengxb.com/ueditor/20210601/16225479324.jpg","aid":77,"created_at":"2026-05-10 09:20:23","updated_at":null,"deleted_at":null},{"ap_id":1334,"path":"https://image.pengxb.com/ueditor/20210601/16225479410.jpg","aid":77,"created_at":"2026-05-10 09:20:23","updated_at":null,"deleted_at":null},{"ap_id":1335,"path":"https://image.pengxb.com/ueditor/20210601/16225479205.jpg","aid":77,"created_at":"2026-05-10 09:20:23","updated_at":null,"deleted_at":null},{"ap_id":1336,"path":"https://image.pengxb.com/ueditor/20210601/16225479263.jpg","aid":77,"created_at":"2026-05-10 09:20:23","updated_at":null,"deleted_at":null},{"ap_id":1337,"path":"https://image.pengxb.com/ueditor/20210601/16225479623.jpg","aid":77,"created_at":"2026-05-10 09:20:23","updated_at":null,"deleted_at":null},{"ap_id":1338,"path":"https://image.pengxb.com/ueditor/20210601/16225479816.jpg","aid":77,"created_at":"2026-05-10 09:20:23","updated_at":null,"deleted_at":null},{"ap_id":1339,"path":"https://image.pengxb.com/ueditor/20210601/162254797410.jpg","aid":77,"created_at":"2026-05-10 09:20:23","updated_at":null,"deleted_at":null},{"ap_id":1340,"path":"https://image.pengxb.com/ueditor/20210601/16225479525.jpg","aid":77,"created_at":"2026-05-10 09:20:23","updated_at":null,"deleted_at":null},{"ap_id":1341,"path":"https://image.pengxb.com/ueditor/20210601/16225479479.jpg","aid":77,"created_at":"2026-05-10 09:20:23","updated_at":null,"deleted_at":null},{"ap_id":1342,"path":"https://image.pengxb.com/ueditor/20210601/16225479695.jpg","aid":77,"created_at":"2026-05-10 09:20:23","updated_at":null,"deleted_at":null},{"ap_id":1343,"path":"https://image.pengxb.com/ueditor/20210601/16225479589.jpg","aid":77,"created_at":"2026-05-10 09:20:23","updated_at":null,"deleted_at":null},{"ap_id":1344,"path":"https://image.pengxb.com/ueditor/20210601/16225479890.jpg","aid":77,"created_at":"2026-05-10 09:20:23","updated_at":null,"deleted_at":null}],"pic_path":"https://image.pengxb.com/ueditor/20210601/16225479143.jpg"},{"aid":64,"title":"php实现阳历阴历互转的方法","author":"pengxb","content":"<p>&nbsp;&nbsp;&nbsp;&nbsp;最近对阳历转阴历从而得到相应节日的算法这方面比较感兴趣，于是就在网上搜了一圈。不错，还算是找到一个比较不错的php类，实现了将阳历转换为阴历（农历），阴历转换为阳历的算法，同时还能获取干支纪年，生肖，以及相应的阴历的中文叫法等等，功能还是挺齐全的，在这里分享给大家。</p><p>具体类代码如下：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">class&nbsp;Lunar&nbsp;{\r\n\tvar&nbsp;$MIN_YEAR&nbsp;=&nbsp;1891;\r\n\tvar&nbsp;$MAX_YEAR&nbsp;=&nbsp;2100;\r\n\tvar&nbsp;$lunarInfo&nbsp;=&nbsp;array(\r\n\t\tarray(0,&nbsp;2,&nbsp;9,&nbsp;21936),&nbsp;array(6,&nbsp;1,&nbsp;30,&nbsp;9656),&nbsp;array(0,&nbsp;2,&nbsp;17,&nbsp;9584),&nbsp;array(0,&nbsp;2,&nbsp;6,&nbsp;21168),&nbsp;array(5,&nbsp;1,&nbsp;26,&nbsp;43344),&nbsp;array(0,&nbsp;2,&nbsp;13,&nbsp;59728),\r\n\t\tarray(0,&nbsp;2,&nbsp;2,&nbsp;27296),&nbsp;array(3,&nbsp;1,&nbsp;22,&nbsp;44368),&nbsp;array(0,&nbsp;2,&nbsp;10,&nbsp;43856),&nbsp;array(8,&nbsp;1,&nbsp;30,&nbsp;19304),&nbsp;array(0,&nbsp;2,&nbsp;19,&nbsp;19168),&nbsp;array(0,&nbsp;2,&nbsp;8,&nbsp;42352),\r\n\t\tarray(5,&nbsp;1,&nbsp;29,&nbsp;21096),&nbsp;array(0,&nbsp;2,&nbsp;16,&nbsp;53856),&nbsp;array(0,&nbsp;2,&nbsp;4,&nbsp;55632),&nbsp;array(4,&nbsp;1,&nbsp;25,&nbsp;27304),&nbsp;array(0,&nbsp;2,&nbsp;13,&nbsp;22176),&nbsp;array(0,&nbsp;2,&nbsp;2,&nbsp;39632),\r\n\t\tarray(2,&nbsp;1,&nbsp;22,&nbsp;19176),&nbsp;array(0,&nbsp;2,&nbsp;10,&nbsp;19168),&nbsp;array(6,&nbsp;1,&nbsp;30,&nbsp;42200),&nbsp;array(0,&nbsp;2,&nbsp;18,&nbsp;42192),&nbsp;array(0,&nbsp;2,&nbsp;6,&nbsp;53840),&nbsp;array(5,&nbsp;1,&nbsp;26,&nbsp;54568),\r\n\t\tarray(0,&nbsp;2,&nbsp;14,&nbsp;46400),&nbsp;array(0,&nbsp;2,&nbsp;3,&nbsp;54944),&nbsp;array(2,&nbsp;1,&nbsp;23,&nbsp;38608),&nbsp;array(0,&nbsp;2,&nbsp;11,&nbsp;38320),&nbsp;array(7,&nbsp;2,&nbsp;1,&nbsp;18872),&nbsp;array(0,&nbsp;2,&nbsp;20,&nbsp;18800),\r\n\t\tarray(0,&nbsp;2,&nbsp;8,&nbsp;42160),&nbsp;array(5,&nbsp;1,&nbsp;28,&nbsp;45656),&nbsp;array(0,&nbsp;2,&nbsp;16,&nbsp;27216),&nbsp;array(0,&nbsp;2,&nbsp;5,&nbsp;27968),&nbsp;array(4,&nbsp;1,&nbsp;24,&nbsp;44456),&nbsp;array(0,&nbsp;2,&nbsp;13,&nbsp;11104),\r\n\t\tarray(0,&nbsp;2,&nbsp;2,&nbsp;38256),&nbsp;array(2,&nbsp;1,&nbsp;23,&nbsp;18808),&nbsp;array(0,&nbsp;2,&nbsp;10,&nbsp;18800),&nbsp;array(6,&nbsp;1,&nbsp;30,&nbsp;25776),&nbsp;array(0,&nbsp;2,&nbsp;17,&nbsp;54432),&nbsp;array(0,&nbsp;2,&nbsp;6,&nbsp;59984),\r\n\t\tarray(5,&nbsp;1,&nbsp;26,&nbsp;27976),&nbsp;array(0,&nbsp;2,&nbsp;14,&nbsp;23248),&nbsp;array(0,&nbsp;2,&nbsp;4,&nbsp;11104),&nbsp;array(3,&nbsp;1,&nbsp;24,&nbsp;37744),&nbsp;array(0,&nbsp;2,&nbsp;11,&nbsp;37600),&nbsp;array(7,&nbsp;1,&nbsp;31,&nbsp;51560),\r\n\t\tarray(0,&nbsp;2,&nbsp;19,&nbsp;51536),&nbsp;array(0,&nbsp;2,&nbsp;8,&nbsp;54432),&nbsp;array(6,&nbsp;1,&nbsp;27,&nbsp;55888),&nbsp;array(0,&nbsp;2,&nbsp;15,&nbsp;46416),&nbsp;array(0,&nbsp;2,&nbsp;5,&nbsp;22176),&nbsp;array(4,&nbsp;1,&nbsp;25,&nbsp;43736),\r\n\t\tarray(0,&nbsp;2,&nbsp;13,&nbsp;9680),&nbsp;array(0,&nbsp;2,&nbsp;2,&nbsp;37584),&nbsp;array(2,&nbsp;1,&nbsp;22,&nbsp;51544),&nbsp;array(0,&nbsp;2,&nbsp;10,&nbsp;43344),&nbsp;array(7,&nbsp;1,&nbsp;29,&nbsp;46248),&nbsp;array(0,&nbsp;2,&nbsp;17,&nbsp;27808),\r\n\t\tarray(0,&nbsp;2,&nbsp;6,&nbsp;46416),&nbsp;array(5,&nbsp;1,&nbsp;27,&nbsp;21928),&nbsp;array(0,&nbsp;2,&nbsp;14,&nbsp;19872),&nbsp;array(0,&nbsp;2,&nbsp;3,&nbsp;42416),&nbsp;array(3,&nbsp;1,&nbsp;24,&nbsp;21176),&nbsp;array(0,&nbsp;2,&nbsp;12,&nbsp;21168),\r\n\t\tarray(8,&nbsp;1,&nbsp;31,&nbsp;43344),&nbsp;array(0,&nbsp;2,&nbsp;18,&nbsp;59728),&nbsp;array(0,&nbsp;2,&nbsp;8,&nbsp;27296),&nbsp;array(6,&nbsp;1,&nbsp;28,&nbsp;44368),&nbsp;array(0,&nbsp;2,&nbsp;15,&nbsp;43856),&nbsp;array(0,&nbsp;2,&nbsp;5,&nbsp;19296),\r\n\t\tarray(4,&nbsp;1,&nbsp;25,&nbsp;42352),&nbsp;array(0,&nbsp;2,&nbsp;13,&nbsp;42352),&nbsp;array(0,&nbsp;2,&nbsp;2,&nbsp;21088),&nbsp;array(3,&nbsp;1,&nbsp;21,&nbsp;59696),&nbsp;array(0,&nbsp;2,&nbsp;9,&nbsp;55632),&nbsp;array(7,&nbsp;1,&nbsp;30,&nbsp;23208),\r\n\t\tarray(0,&nbsp;2,&nbsp;17,&nbsp;22176),&nbsp;array(0,&nbsp;2,&nbsp;6,&nbsp;38608),&nbsp;array(5,&nbsp;1,&nbsp;27,&nbsp;19176),&nbsp;array(0,&nbsp;2,&nbsp;15,&nbsp;19152),&nbsp;array(0,&nbsp;2,&nbsp;3,&nbsp;42192),&nbsp;array(4,&nbsp;1,&nbsp;23,&nbsp;53864),\r\n\t\tarray(0,&nbsp;2,&nbsp;11,&nbsp;53840),&nbsp;array(8,&nbsp;1,&nbsp;31,&nbsp;54568),&nbsp;array(0,&nbsp;2,&nbsp;18,&nbsp;46400),&nbsp;array(0,&nbsp;2,&nbsp;7,&nbsp;46752),&nbsp;array(6,&nbsp;1,&nbsp;28,&nbsp;38608),&nbsp;array(0,&nbsp;2,&nbsp;16,&nbsp;38320),\r\n\t\tarray(0,&nbsp;2,&nbsp;5,&nbsp;18864),&nbsp;array(4,&nbsp;1,&nbsp;25,&nbsp;42168),&nbsp;array(0,&nbsp;2,&nbsp;13,&nbsp;42160),&nbsp;array(10,&nbsp;2,&nbsp;2,&nbsp;45656),&nbsp;array(0,&nbsp;2,&nbsp;20,&nbsp;27216),&nbsp;array(0,&nbsp;2,&nbsp;9,&nbsp;27968),\r\n\t\tarray(6,&nbsp;1,&nbsp;29,&nbsp;44448),&nbsp;array(0,&nbsp;2,&nbsp;17,&nbsp;43872),&nbsp;array(0,&nbsp;2,&nbsp;6,&nbsp;38256),&nbsp;array(5,&nbsp;1,&nbsp;27,&nbsp;18808),&nbsp;array(0,&nbsp;2,&nbsp;15,&nbsp;18800),&nbsp;array(0,&nbsp;2,&nbsp;4,&nbsp;25776),\r\n\t\tarray(3,&nbsp;1,&nbsp;23,&nbsp;27216),&nbsp;array(0,&nbsp;2,&nbsp;10,&nbsp;59984),&nbsp;array(8,&nbsp;1,&nbsp;31,&nbsp;27432),&nbsp;array(0,&nbsp;2,&nbsp;19,&nbsp;23232),&nbsp;array(0,&nbsp;2,&nbsp;7,&nbsp;43872),&nbsp;array(5,&nbsp;1,&nbsp;28,&nbsp;37736),\r\n\t\tarray(0,&nbsp;2,&nbsp;16,&nbsp;37600),&nbsp;array(0,&nbsp;2,&nbsp;5,&nbsp;51552),&nbsp;array(4,&nbsp;1,&nbsp;24,&nbsp;54440),&nbsp;array(0,&nbsp;2,&nbsp;12,&nbsp;54432),&nbsp;array(0,&nbsp;2,&nbsp;1,&nbsp;55888),&nbsp;array(2,&nbsp;1,&nbsp;22,&nbsp;23208),\r\n\t\tarray(0,&nbsp;2,&nbsp;9,&nbsp;22176),&nbsp;array(7,&nbsp;1,&nbsp;29,&nbsp;43736),&nbsp;array(0,&nbsp;2,&nbsp;18,&nbsp;9680),&nbsp;array(0,&nbsp;2,&nbsp;7,&nbsp;37584),&nbsp;array(5,&nbsp;1,&nbsp;26,&nbsp;51544),&nbsp;array(0,&nbsp;2,&nbsp;14,&nbsp;43344),\r\n\t\tarray(0,&nbsp;2,&nbsp;3,&nbsp;46240),&nbsp;array(4,&nbsp;1,&nbsp;23,&nbsp;46416),&nbsp;array(0,&nbsp;2,&nbsp;10,&nbsp;44368),&nbsp;array(9,&nbsp;1,&nbsp;31,&nbsp;21928),&nbsp;array(0,&nbsp;2,&nbsp;19,&nbsp;19360),&nbsp;array(0,&nbsp;2,&nbsp;8,&nbsp;42416),\r\n\t\tarray(6,&nbsp;1,&nbsp;28,&nbsp;21176),&nbsp;array(0,&nbsp;2,&nbsp;16,&nbsp;21168),&nbsp;array(0,&nbsp;2,&nbsp;5,&nbsp;43312),&nbsp;array(4,&nbsp;1,&nbsp;25,&nbsp;29864),&nbsp;array(0,&nbsp;2,&nbsp;12,&nbsp;27296),&nbsp;array(0,&nbsp;2,&nbsp;1,&nbsp;44368),\r\n\t\tarray(2,&nbsp;1,&nbsp;22,&nbsp;19880),&nbsp;array(0,&nbsp;2,&nbsp;10,&nbsp;19296),&nbsp;array(6,&nbsp;1,&nbsp;29,&nbsp;42352),&nbsp;array(0,&nbsp;2,&nbsp;17,&nbsp;42208),&nbsp;array(0,&nbsp;2,&nbsp;6,&nbsp;53856),&nbsp;array(5,&nbsp;1,&nbsp;26,&nbsp;59696),\r\n\t\tarray(0,&nbsp;2,&nbsp;13,&nbsp;54576),&nbsp;array(0,&nbsp;2,&nbsp;3,&nbsp;23200),&nbsp;array(3,&nbsp;1,&nbsp;23,&nbsp;27472),&nbsp;array(0,&nbsp;2,&nbsp;11,&nbsp;38608),&nbsp;array(11,&nbsp;1,&nbsp;31,&nbsp;19176),&nbsp;array(0,&nbsp;2,&nbsp;19,&nbsp;19152),\r\n\t\tarray(0,&nbsp;2,&nbsp;8,&nbsp;42192),&nbsp;array(6,&nbsp;1,&nbsp;28,&nbsp;53848),&nbsp;array(0,&nbsp;2,&nbsp;15,&nbsp;53840),&nbsp;array(0,&nbsp;2,&nbsp;4,&nbsp;54560),&nbsp;array(5,&nbsp;1,&nbsp;24,&nbsp;55968),&nbsp;array(0,&nbsp;2,&nbsp;12,&nbsp;46496),\r\n\t\tarray(0,&nbsp;2,&nbsp;1,&nbsp;22224),&nbsp;array(2,&nbsp;1,&nbsp;22,&nbsp;19160),&nbsp;array(0,&nbsp;2,&nbsp;10,&nbsp;18864),&nbsp;array(7,&nbsp;1,&nbsp;30,&nbsp;42168),&nbsp;array(0,&nbsp;2,&nbsp;17,&nbsp;42160),&nbsp;array(0,&nbsp;2,&nbsp;6,&nbsp;43600),\r\n\t\tarray(5,&nbsp;1,&nbsp;26,&nbsp;46376),&nbsp;array(0,&nbsp;2,&nbsp;14,&nbsp;27936),&nbsp;array(0,&nbsp;2,&nbsp;2,&nbsp;44448),&nbsp;array(3,&nbsp;1,&nbsp;23,&nbsp;21936),&nbsp;array(0,&nbsp;2,&nbsp;11,&nbsp;37744),&nbsp;array(8,&nbsp;2,&nbsp;1,&nbsp;18808),\r\n\t\tarray(0,&nbsp;2,&nbsp;19,&nbsp;18800),&nbsp;array(0,&nbsp;2,&nbsp;8,&nbsp;25776),&nbsp;array(6,&nbsp;1,&nbsp;28,&nbsp;27216),&nbsp;array(0,&nbsp;2,&nbsp;15,&nbsp;59984),&nbsp;array(0,&nbsp;2,&nbsp;4,&nbsp;27424),&nbsp;array(4,&nbsp;1,&nbsp;24,&nbsp;43872),\r\n\t\tarray(0,&nbsp;2,&nbsp;12,&nbsp;43744),&nbsp;array(0,&nbsp;2,&nbsp;2,&nbsp;37600),&nbsp;array(3,&nbsp;1,&nbsp;21,&nbsp;51568),&nbsp;array(0,&nbsp;2,&nbsp;9,&nbsp;51552),&nbsp;array(7,&nbsp;1,&nbsp;29,&nbsp;54440),&nbsp;array(0,&nbsp;2,&nbsp;17,&nbsp;54432),\r\n\t\tarray(0,&nbsp;2,&nbsp;5,&nbsp;55888),&nbsp;array(5,&nbsp;1,&nbsp;26,&nbsp;23208),&nbsp;array(0,&nbsp;2,&nbsp;14,&nbsp;22176),&nbsp;array(0,&nbsp;2,&nbsp;3,&nbsp;42704),&nbsp;array(4,&nbsp;1,&nbsp;23,&nbsp;21224),&nbsp;array(0,&nbsp;2,&nbsp;11,&nbsp;21200),\r\n\t\tarray(8,&nbsp;1,&nbsp;31,&nbsp;43352),&nbsp;array(0,&nbsp;2,&nbsp;19,&nbsp;43344),&nbsp;array(0,&nbsp;2,&nbsp;7,&nbsp;46240),&nbsp;array(6,&nbsp;1,&nbsp;27,&nbsp;46416),&nbsp;array(0,&nbsp;2,&nbsp;15,&nbsp;44368),&nbsp;array(0,&nbsp;2,&nbsp;5,&nbsp;21920),\r\n\t\tarray(4,&nbsp;1,&nbsp;24,&nbsp;42448),&nbsp;array(0,&nbsp;2,&nbsp;12,&nbsp;42416),&nbsp;array(0,&nbsp;2,&nbsp;2,&nbsp;21168),&nbsp;array(3,&nbsp;1,&nbsp;22,&nbsp;43320),&nbsp;array(0,&nbsp;2,&nbsp;9,&nbsp;26928),&nbsp;array(7,&nbsp;1,&nbsp;29,&nbsp;29336),\r\n\t\tarray(0,&nbsp;2,&nbsp;17,&nbsp;27296),&nbsp;array(0,&nbsp;2,&nbsp;6,&nbsp;44368),&nbsp;array(5,&nbsp;1,&nbsp;26,&nbsp;19880),&nbsp;array(0,&nbsp;2,&nbsp;14,&nbsp;19296),&nbsp;array(0,&nbsp;2,&nbsp;3,&nbsp;42352),&nbsp;array(4,&nbsp;1,&nbsp;24,&nbsp;21104),\r\n\t\tarray(0,&nbsp;2,&nbsp;10,&nbsp;53856),&nbsp;array(8,&nbsp;1,&nbsp;30,&nbsp;59696),&nbsp;array(0,&nbsp;2,&nbsp;18,&nbsp;54560),&nbsp;array(0,&nbsp;2,&nbsp;7,&nbsp;55968),&nbsp;array(6,&nbsp;1,&nbsp;27,&nbsp;27472),&nbsp;array(0,&nbsp;2,&nbsp;15,&nbsp;22224),\r\n\t\tarray(0,&nbsp;2,&nbsp;5,&nbsp;19168),&nbsp;array(4,&nbsp;1,&nbsp;25,&nbsp;42216),&nbsp;array(0,&nbsp;2,&nbsp;12,&nbsp;42192),&nbsp;array(0,&nbsp;2,&nbsp;1,&nbsp;53584),&nbsp;array(2,&nbsp;1,&nbsp;21,&nbsp;55592),&nbsp;array(0,&nbsp;2,&nbsp;9,&nbsp;54560),\r\n\t);\r\n\r\n\t/**\r\n\t&nbsp;*&nbsp;将阳历转换为阴历\r\n\t&nbsp;*&nbsp;@param&nbsp;year&nbsp;公历-年\r\n\t&nbsp;*&nbsp;@param&nbsp;month&nbsp;公历-月\r\n\t&nbsp;*&nbsp;@param&nbsp;date&nbsp;公历-日\r\n\t&nbsp;*/\r\n\tfunction&nbsp;convertSolarToLunar($year,&nbsp;$month,&nbsp;$date)&nbsp;{\r\n\t\t//debugger;\r\n\t\t$yearData&nbsp;=&nbsp;$this-&gt;lunarInfo[$year&nbsp;-&nbsp;$this-&gt;MIN_YEAR];\r\n\t\tif&nbsp;($year&nbsp;==&nbsp;$this-&gt;MIN_YEAR&nbsp;&amp;&amp;&nbsp;$month&nbsp;&lt;=&nbsp;2&nbsp;&amp;&amp;&nbsp;$date&nbsp;&lt;=&nbsp;9)&nbsp;{\r\n\t\t\treturn&nbsp;array(1891,&nbsp;&#39;正月&#39;,&nbsp;&#39;初一&#39;,&nbsp;&#39;辛卯&#39;,&nbsp;1,&nbsp;1,&nbsp;&#39;兔&#39;);\r\n\t\t}\r\n\t\treturn&nbsp;$this-&gt;getLunarByBetween($year,&nbsp;$this-&gt;getDaysBetweenSolar($year,&nbsp;$month,&nbsp;$date,&nbsp;$yearData[1],&nbsp;$yearData[2]));\r\n\t}\r\n\r\n\tfunction&nbsp;convertSolarMonthToLunar($year,&nbsp;$month)&nbsp;{\r\n\t\t$yearData&nbsp;=&nbsp;$this-&gt;lunarInfo[$year&nbsp;-&nbsp;$this-&gt;MIN_YEAR];\r\n\t\tif&nbsp;($year&nbsp;==&nbsp;$this-&gt;MIN_YEAR&nbsp;&amp;&amp;&nbsp;$month&nbsp;&lt;=&nbsp;2&nbsp;&amp;&amp;&nbsp;$date&nbsp;&lt;=&nbsp;9)&nbsp;{\r\n\t\t\treturn&nbsp;array(1891,&nbsp;&#39;正月&#39;,&nbsp;&#39;初一&#39;,&nbsp;&#39;辛卯&#39;,&nbsp;1,&nbsp;1,&nbsp;&#39;兔&#39;);\r\n\t\t}\r\n\t\t$month_days_ary&nbsp;=&nbsp;array(31,&nbsp;28,&nbsp;31,&nbsp;30,&nbsp;31,&nbsp;30,&nbsp;31,&nbsp;31,&nbsp;30,&nbsp;31,&nbsp;30,&nbsp;31);\r\n\t\t$dd&nbsp;=&nbsp;$month_days_ary[$month];\r\n\t\tif&nbsp;($this-&gt;isLeapYear($year)&nbsp;&amp;&amp;&nbsp;$month&nbsp;==&nbsp;2)&nbsp;{\r\n\t\t\t$dd++;\r\n\t\t}\r\n\r\n\t\t$lunar_ary&nbsp;=&nbsp;array();\r\n\t\tfor&nbsp;($i&nbsp;=&nbsp;1;&nbsp;$i&nbsp;&lt;&nbsp;$dd;&nbsp;$i++)&nbsp;{\r\n\t\t\t$array&nbsp;=&nbsp;$this-&gt;getLunarByBetween($year,&nbsp;$this-&gt;getDaysBetweenSolar($year,&nbsp;$month,&nbsp;$i,&nbsp;$yearData[1],&nbsp;$yearData[2]));\r\n\t\t\t$array[]&nbsp;=&nbsp;$year&nbsp;.&nbsp;&#39;-&#39;&nbsp;.&nbsp;$month&nbsp;.&nbsp;&#39;-&#39;&nbsp;.&nbsp;$i;\r\n\t\t\t$lunar_ary[$i]&nbsp;=&nbsp;$array;\r\n\t\t}\r\n\t\treturn&nbsp;$lunar_ary;\r\n\t}\r\n\r\n\t/**\r\n\t&nbsp;*&nbsp;将阴历转换为阳历\r\n\t&nbsp;*&nbsp;@param&nbsp;year&nbsp;阴历-年\r\n\t&nbsp;*&nbsp;@param&nbsp;month&nbsp;阴历-月，闰月处理：例如如果当年闰五月，那么第二个五月就传六月，相当于阴历有13个月，只是有的时候第13个月的天数为0\r\n\t&nbsp;*&nbsp;@param&nbsp;date&nbsp;阴历-日\r\n\t&nbsp;*/\r\n\tfunction&nbsp;convertLunarToSolar($year,&nbsp;$month,&nbsp;$date)&nbsp;{\r\n\t\t$yearData&nbsp;=&nbsp;$this-&gt;lunarInfo[$year&nbsp;-&nbsp;$this-&gt;MIN_YEAR];\r\n\t\t$between&nbsp;=&nbsp;$this-&gt;getDaysBetweenLunar($year,&nbsp;$month,&nbsp;$date);\r\n\t\t$res&nbsp;=&nbsp;mktime(0,&nbsp;0,&nbsp;0,&nbsp;$yearData[1],&nbsp;$yearData[2],&nbsp;$year);\r\n\t\t$res&nbsp;=&nbsp;date(&#39;Y-m-d&#39;,&nbsp;$res&nbsp;+&nbsp;$between&nbsp;*&nbsp;24&nbsp;*&nbsp;60&nbsp;*&nbsp;60);\r\n\t\t$day&nbsp;=&nbsp;explode(&#39;-&#39;,&nbsp;$res);\r\n\t\t$year&nbsp;=&nbsp;$day[0];\r\n\t\t$month&nbsp;=&nbsp;$day[1];\r\n\t\t$day&nbsp;=&nbsp;$day[2];\r\n\t\treturn&nbsp;array($year,&nbsp;$month,&nbsp;$day);\r\n\t}\r\n\r\n\t/**\r\n\t&nbsp;*&nbsp;判断是否是闰年\r\n\t&nbsp;*&nbsp;@param&nbsp;year\r\n\t&nbsp;*/\r\n\tfunction&nbsp;isLeapYear($year)&nbsp;{\r\n\t\treturn&nbsp;(($year&nbsp;%&nbsp;4&nbsp;==&nbsp;0&nbsp;&amp;&amp;&nbsp;$year&nbsp;%&nbsp;100&nbsp;!=&nbsp;0)&nbsp;||&nbsp;($year&nbsp;%&nbsp;400&nbsp;==&nbsp;0));\r\n\t}\r\n\r\n\t/**\r\n\t&nbsp;*&nbsp;获取干支纪年\r\n\t&nbsp;*&nbsp;@param&nbsp;year\r\n\t&nbsp;*/\r\n\tfunction&nbsp;getLunarYearName($year)&nbsp;{\r\n\t\t$sky&nbsp;=&nbsp;array(&#39;庚&#39;,&nbsp;&#39;辛&#39;,&nbsp;&#39;壬&#39;,&nbsp;&#39;癸&#39;,&nbsp;&#39;甲&#39;,&nbsp;&#39;乙&#39;,&nbsp;&#39;丙&#39;,&nbsp;&#39;丁&#39;,&nbsp;&#39;戊&#39;,&nbsp;&#39;己&#39;);\r\n\t\t$earth&nbsp;=&nbsp;array(&#39;申&#39;,&nbsp;&#39;酉&#39;,&nbsp;&#39;戌&#39;,&nbsp;&#39;亥&#39;,&nbsp;&#39;子&#39;,&nbsp;&#39;丑&#39;,&nbsp;&#39;寅&#39;,&nbsp;&#39;卯&#39;,&nbsp;&#39;辰&#39;,&nbsp;&#39;巳&#39;,&nbsp;&#39;午&#39;,&nbsp;&#39;未&#39;);\r\n\t\t$year&nbsp;=&nbsp;$year&nbsp;.&nbsp;&#39;&#39;;\r\n\t\treturn&nbsp;$sky[$year{3}]&nbsp;.&nbsp;$earth[$year&nbsp;%&nbsp;12];\r\n\t}\r\n\r\n\t/**\r\n\t&nbsp;*&nbsp;根据阴历年获取生肖\r\n\t&nbsp;*&nbsp;@param&nbsp;year&nbsp;阴历年\r\n\t&nbsp;*/\r\n\tfunction&nbsp;getYearZodiac($year)&nbsp;{\r\n\t\t$zodiac&nbsp;=&nbsp;array(&#39;猴&#39;,&nbsp;&#39;鸡&#39;,&nbsp;&#39;狗&#39;,&nbsp;&#39;猪&#39;,&nbsp;&#39;鼠&#39;,&nbsp;&#39;牛&#39;,&nbsp;&#39;虎&#39;,&nbsp;&#39;兔&#39;,&nbsp;&#39;龙&#39;,&nbsp;&#39;蛇&#39;,&nbsp;&#39;马&#39;,&nbsp;&#39;羊&#39;);\r\n\t\treturn&nbsp;$zodiac[$year&nbsp;%&nbsp;12];\r\n\t}\r\n\r\n\t/**\r\n\t&nbsp;*&nbsp;获取阳历月份的天数\r\n\t&nbsp;*&nbsp;@param&nbsp;year&nbsp;阳历-年\r\n\t&nbsp;*&nbsp;@param&nbsp;month&nbsp;阳历-月\r\n\t&nbsp;*/\r\n\tfunction&nbsp;getSolarMonthDays($year,&nbsp;$month)&nbsp;{\r\n\t\t$monthHash&nbsp;=&nbsp;array(&#39;1&#39;&nbsp;=&gt;&nbsp;31,&nbsp;&#39;2&#39;&nbsp;=&gt;&nbsp;$this-&gt;isLeapYear($year)&nbsp;?&nbsp;29&nbsp;:&nbsp;28,&nbsp;&#39;3&#39;&nbsp;=&gt;&nbsp;31,&nbsp;&#39;4&#39;&nbsp;=&gt;&nbsp;30,&nbsp;&#39;5&#39;&nbsp;=&gt;&nbsp;31,&nbsp;&#39;6&#39;&nbsp;=&gt;&nbsp;30,&nbsp;&#39;7&#39;&nbsp;=&gt;&nbsp;31,&nbsp;&#39;8&#39;&nbsp;=&gt;&nbsp;31,&nbsp;&#39;9&#39;&nbsp;=&gt;&nbsp;30,&nbsp;&#39;10&#39;&nbsp;=&gt;&nbsp;31,&nbsp;&#39;11&#39;&nbsp;=&gt;&nbsp;30,&nbsp;&#39;12&#39;&nbsp;=&gt;&nbsp;31);\r\n\t\treturn&nbsp;$monthHash[&quot;$month&quot;];\r\n\t}\r\n\r\n\t/**\r\n\t&nbsp;*&nbsp;获取阴历月份的天数\r\n\t&nbsp;*&nbsp;@param&nbsp;year&nbsp;阴历-年\r\n\t&nbsp;*&nbsp;@param&nbsp;month&nbsp;阴历-月，从一月开始\r\n\t&nbsp;*/\r\n\tfunction&nbsp;getLunarMonthDays($year,&nbsp;$month)&nbsp;{\r\n\t\t$monthData&nbsp;=&nbsp;$this-&gt;getLunarMonths($year);\r\n\t\treturn&nbsp;$monthData[$month&nbsp;-&nbsp;1];\r\n\t}\r\n\r\n\t/**\r\n\t&nbsp;*&nbsp;获取阴历每月的天数的数组\r\n\t&nbsp;*&nbsp;@param&nbsp;year\r\n\t&nbsp;*/\r\n\tfunction&nbsp;getLunarMonths($year)&nbsp;{\r\n\t\t$yearData&nbsp;=&nbsp;$this-&gt;lunarInfo[$year&nbsp;-&nbsp;$this-&gt;MIN_YEAR];\r\n\t\t$leapMonth&nbsp;=&nbsp;$yearData[0];\r\n\t\t$bit&nbsp;=&nbsp;decbin($yearData[3]);\r\n\t\tfor&nbsp;($i&nbsp;=&nbsp;0;&nbsp;$i&nbsp;&lt;&nbsp;strlen($bit);&nbsp;$i++)&nbsp;{\r\n\t\t\t$bitArray[$i]&nbsp;=&nbsp;substr($bit,&nbsp;$i,&nbsp;1);\r\n\t\t}\r\n\t\tfor&nbsp;($k&nbsp;=&nbsp;0,&nbsp;$klen&nbsp;=&nbsp;16&nbsp;-&nbsp;count($bitArray);&nbsp;$k&nbsp;&lt;&nbsp;$klen;&nbsp;$k++)&nbsp;{\r\n\t\t\tarray_unshift($bitArray,&nbsp;&#39;0&#39;);\r\n\t\t}\r\n\t\t$bitArray&nbsp;=&nbsp;array_slice($bitArray,&nbsp;0,&nbsp;($leapMonth&nbsp;==&nbsp;0&nbsp;?&nbsp;12&nbsp;:&nbsp;13));\r\n\t\tfor&nbsp;($i&nbsp;=&nbsp;0;&nbsp;$i&nbsp;&lt;&nbsp;count($bitArray);&nbsp;$i++)&nbsp;{\r\n\t\t\t$bitArray[$i]&nbsp;=&nbsp;$bitArray[$i]&nbsp;+&nbsp;29;\r\n\t\t}\r\n\t\treturn&nbsp;$bitArray;\r\n\t}\r\n\r\n\t/**\r\n\t&nbsp;*&nbsp;获取农历每年的天数\r\n\t&nbsp;*&nbsp;@param&nbsp;year&nbsp;农历年份\r\n\t&nbsp;*/\r\n\tfunction&nbsp;getLunarYearDays($year)&nbsp;{\r\n\t\t$yearData&nbsp;=&nbsp;$this-&gt;lunarInfo[$year&nbsp;-&nbsp;$this-&gt;MIN_YEAR];\r\n\t\t$monthArray&nbsp;=&nbsp;$this-&gt;getLunarYearMonths($year);\r\n\t\t$len&nbsp;=&nbsp;count($monthArray);\r\n\t\treturn&nbsp;($monthArray[$len&nbsp;-&nbsp;1]&nbsp;==&nbsp;0&nbsp;?&nbsp;$monthArray[$len&nbsp;-&nbsp;2]&nbsp;:&nbsp;$monthArray[$len&nbsp;-&nbsp;1]);\r\n\t}\r\n\r\n\tfunction&nbsp;getLunarYearMonths($year)&nbsp;{\r\n//debugger;\r\n\t\t$monthData&nbsp;=&nbsp;$this-&gt;getLunarMonths($year);\r\n\t\t$res&nbsp;=&nbsp;array();\r\n\t\t$temp&nbsp;=&nbsp;0;\r\n\t\t$yearData&nbsp;=&nbsp;$this-&gt;lunarInfo[$year&nbsp;-&nbsp;$this-&gt;MIN_YEAR];\r\n\t\t$len&nbsp;=&nbsp;($yearData[0]&nbsp;==&nbsp;0&nbsp;?&nbsp;12&nbsp;:&nbsp;13);\r\n\t\tfor&nbsp;($i&nbsp;=&nbsp;0;&nbsp;$i&nbsp;&lt;&nbsp;$len;&nbsp;$i++)&nbsp;{\r\n\t\t\t$temp&nbsp;=&nbsp;0;\r\n\t\t\tfor&nbsp;($j&nbsp;=&nbsp;0;&nbsp;$j&nbsp;&lt;=&nbsp;$i;&nbsp;$j++)&nbsp;{\r\n\t\t\t\t$temp&nbsp;+=&nbsp;$monthData[$j];\r\n\t\t\t}\r\n\t\t\tarray_push($res,&nbsp;$temp);\r\n\t\t}\r\n\t\treturn&nbsp;$res;\r\n\t}\r\n\r\n\t/**\r\n\t&nbsp;*&nbsp;获取闰月\r\n\t&nbsp;*&nbsp;@param&nbsp;year&nbsp;阴历年份\r\n\t&nbsp;*/\r\n\tfunction&nbsp;getLeapMonth($year)&nbsp;{\r\n\t\t$yearData&nbsp;=&nbsp;$this-&gt;lunarInfo[$year&nbsp;-&nbsp;$this-&gt;MIN_YEAR];\r\n\t\treturn&nbsp;$yearData[0];\r\n\t}\r\n\r\n\t/**\r\n\t&nbsp;*&nbsp;计算阴历日期与正月初一相隔的天数\r\n\t&nbsp;*&nbsp;@param&nbsp;year\r\n\t&nbsp;*&nbsp;@param&nbsp;month\r\n\t&nbsp;*&nbsp;@param&nbsp;date\r\n\t&nbsp;*/\r\n\tfunction&nbsp;getDaysBetweenLunar($year,&nbsp;$month,&nbsp;$date)&nbsp;{\r\n\t\t$yearMonth&nbsp;=&nbsp;$this-&gt;getLunarMonths($year);\r\n\t\t$res&nbsp;=&nbsp;0;\r\n\t\tfor&nbsp;($i&nbsp;=&nbsp;1;&nbsp;$i&nbsp;&lt;&nbsp;$month;&nbsp;$i++)&nbsp;{\r\n\t\t\t$res&nbsp;+=&nbsp;$yearMonth[$i&nbsp;-&nbsp;1];\r\n\t\t}\r\n\t\t$res&nbsp;+=&nbsp;$date&nbsp;-&nbsp;1;\r\n\t\treturn&nbsp;$res;\r\n\t}\r\n\r\n\t/**\r\n\t&nbsp;*&nbsp;计算2个阳历日期之间的天数\r\n\t&nbsp;*&nbsp;@param&nbsp;year&nbsp;阳历年\r\n\t&nbsp;*&nbsp;@param&nbsp;cmonth\r\n\t&nbsp;*&nbsp;@param&nbsp;cdate\r\n\t&nbsp;*&nbsp;@param&nbsp;dmonth&nbsp;阴历正月对应的阳历月份\r\n\t&nbsp;*&nbsp;@param&nbsp;ddate&nbsp;阴历初一对应的阳历天数\r\n\t&nbsp;*/\r\n\tfunction&nbsp;getDaysBetweenSolar($year,&nbsp;$cmonth,&nbsp;$cdate,&nbsp;$dmonth,&nbsp;$ddate)&nbsp;{\r\n\t\t$a&nbsp;=&nbsp;mktime(0,&nbsp;0,&nbsp;0,&nbsp;$cmonth,&nbsp;$cdate,&nbsp;$year);\r\n\t\t$b&nbsp;=&nbsp;mktime(0,&nbsp;0,&nbsp;0,&nbsp;$dmonth,&nbsp;$ddate,&nbsp;$year);\r\n\t\treturn&nbsp;ceil(($a&nbsp;-&nbsp;$b)&nbsp;/&nbsp;24&nbsp;/&nbsp;3600);\r\n\t}\r\n\r\n\t/**\r\n\t&nbsp;*&nbsp;根据距离正月初一的天数计算阴历日期\r\n\t&nbsp;*&nbsp;@param&nbsp;year&nbsp;阳历年\r\n\t&nbsp;*&nbsp;@param&nbsp;between&nbsp;天数\r\n\t&nbsp;*/\r\n\tfunction&nbsp;getLunarByBetween($year,&nbsp;$between)&nbsp;{\r\n//debugger;\r\n\t\t$lunarArray&nbsp;=&nbsp;array();\r\n\t\t$yearMonth&nbsp;=&nbsp;array();\r\n\t\t$t&nbsp;=&nbsp;0;\r\n\t\t$e&nbsp;=&nbsp;0;\r\n\t\t$leapMonth&nbsp;=&nbsp;0;\r\n\t\t$m&nbsp;=&nbsp;&#39;&#39;;\r\n\t\tif&nbsp;($between&nbsp;==&nbsp;0)&nbsp;{\r\n\t\t\tarray_push($lunarArray,&nbsp;$year,&nbsp;&#39;正月&#39;,&nbsp;&#39;初一&#39;);\r\n\t\t\t$t&nbsp;=&nbsp;1;\r\n\t\t\t$e&nbsp;=&nbsp;1;\r\n\t\t}&nbsp;else&nbsp;{\r\n\t\t\t$year&nbsp;=&nbsp;$between&nbsp;&gt;&nbsp;0&nbsp;?&nbsp;$year&nbsp;:&nbsp;($year&nbsp;-&nbsp;1);\r\n\t\t\t$yearMonth&nbsp;=&nbsp;$this-&gt;getLunarYearMonths($year);\r\n\t\t\t$leapMonth&nbsp;=&nbsp;$this-&gt;getLeapMonth($year);\r\n\t\t\t$between&nbsp;=&nbsp;$between&nbsp;&gt;&nbsp;0&nbsp;?&nbsp;$between&nbsp;:&nbsp;($this-&gt;getLunarYearDays($year)&nbsp;+&nbsp;$between);\r\n\t\t\tfor&nbsp;($i&nbsp;=&nbsp;0;&nbsp;$i&nbsp;&lt;&nbsp;13;&nbsp;$i++)&nbsp;{\r\n\t\t\t\tif&nbsp;($between&nbsp;==&nbsp;$yearMonth[$i])&nbsp;{\r\n\t\t\t\t\t$t&nbsp;=&nbsp;$i&nbsp;+&nbsp;2;\r\n\t\t\t\t\t$e&nbsp;=&nbsp;1;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}&nbsp;else&nbsp;if&nbsp;($between&nbsp;&lt;&nbsp;$yearMonth[$i])&nbsp;{\r\n\t\t\t\t\t$t&nbsp;=&nbsp;$i&nbsp;+&nbsp;1;\r\n\t\t\t\t\t$e&nbsp;=&nbsp;$between&nbsp;-&nbsp;(empty($yearMonth[$i&nbsp;-&nbsp;1])&nbsp;?&nbsp;0&nbsp;:&nbsp;$yearMonth[$i&nbsp;-&nbsp;1])&nbsp;+&nbsp;1;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t$m&nbsp;=&nbsp;($leapMonth&nbsp;!=&nbsp;0&nbsp;&amp;&amp;&nbsp;$t&nbsp;==&nbsp;$leapMonth&nbsp;+&nbsp;1)&nbsp;?&nbsp;(&#39;闰&#39;&nbsp;.&nbsp;$this-&gt;getCapitalNum($t&nbsp;-&nbsp;1,&nbsp;true))&nbsp;:&nbsp;$this-&gt;getCapitalNum(($leapMonth&nbsp;!=&nbsp;0&nbsp;&amp;&amp;&nbsp;$leapMonth&nbsp;+&nbsp;1&nbsp;&lt;&nbsp;$t&nbsp;?&nbsp;($t&nbsp;-&nbsp;1)&nbsp;:&nbsp;$t),&nbsp;true);\r\n\t\t\tarray_push($lunarArray,&nbsp;$year,&nbsp;$m,&nbsp;$this-&gt;getCapitalNum($e,&nbsp;false));\r\n\t\t}\r\n\t\tarray_push($lunarArray,&nbsp;$this-&gt;getLunarYearName($year));&nbsp;//&nbsp;天干地支\r\n\t\tarray_push($lunarArray,&nbsp;$t,&nbsp;$e);\r\n\t\tarray_push($lunarArray,&nbsp;$this-&gt;getYearZodiac($year));&nbsp;//&nbsp;12生肖\r\n\t\tarray_push($lunarArray,&nbsp;$leapMonth);&nbsp;//&nbsp;闰几月\r\n\t\treturn&nbsp;$lunarArray;\r\n\t}\r\n\r\n\t/**\r\n\t&nbsp;*&nbsp;获取数字的阴历叫法\r\n\t&nbsp;*&nbsp;@param&nbsp;num&nbsp;数字\r\n\t&nbsp;*&nbsp;@param&nbsp;isMonth&nbsp;是否是月份的数字\r\n\t&nbsp;*/\r\n\tfunction&nbsp;getCapitalNum($num,&nbsp;$isMonth)&nbsp;{\r\n\t\t$isMonth&nbsp;=&nbsp;$isMonth&nbsp;||&nbsp;false;\r\n\t\t$dateHash&nbsp;=&nbsp;array(&#39;0&#39;&nbsp;=&gt;&nbsp;&#39;&#39;,&nbsp;&#39;1&#39;&nbsp;=&gt;&nbsp;&#39;一&#39;,&nbsp;&#39;2&#39;&nbsp;=&gt;&nbsp;&#39;二&#39;,&nbsp;&#39;3&#39;&nbsp;=&gt;&nbsp;&#39;三&#39;,&nbsp;&#39;4&#39;&nbsp;=&gt;&nbsp;&#39;四&#39;,&nbsp;&#39;5&#39;&nbsp;=&gt;&nbsp;&#39;五&#39;,&nbsp;&#39;6&#39;&nbsp;=&gt;&nbsp;&#39;六&#39;,&nbsp;&#39;7&#39;&nbsp;=&gt;&nbsp;&#39;七&#39;,&nbsp;&#39;8&#39;&nbsp;=&gt;&nbsp;&#39;八&#39;,&nbsp;&#39;9&#39;&nbsp;=&gt;&nbsp;&#39;九&#39;,&nbsp;&#39;10&#39;&nbsp;=&gt;&nbsp;&#39;十&nbsp;&#39;);\r\n\t\t$monthHash&nbsp;=&nbsp;array(&#39;0&#39;&nbsp;=&gt;&nbsp;&#39;&#39;,&nbsp;&#39;1&#39;&nbsp;=&gt;&nbsp;&#39;正月&#39;,&nbsp;&#39;2&#39;&nbsp;=&gt;&nbsp;&#39;二月&#39;,&nbsp;&#39;3&#39;&nbsp;=&gt;&nbsp;&#39;三月&#39;,&nbsp;&#39;4&#39;&nbsp;=&gt;&nbsp;&#39;四月&#39;,&nbsp;&#39;5&#39;&nbsp;=&gt;&nbsp;&#39;五月&#39;,&nbsp;&#39;6&#39;&nbsp;=&gt;&nbsp;&#39;六月&#39;,&nbsp;&#39;7&#39;&nbsp;=&gt;&nbsp;&#39;七月&#39;,&nbsp;&#39;8&#39;&nbsp;=&gt;&nbsp;&#39;八月&#39;,&nbsp;&#39;9&#39;&nbsp;=&gt;&nbsp;&#39;九月&#39;,&nbsp;&#39;10&#39;&nbsp;=&gt;&nbsp;&#39;十月&#39;,&nbsp;&#39;11&#39;&nbsp;=&gt;&nbsp;&#39;冬月&#39;,&nbsp;&#39;12&#39;&nbsp;=&gt;&nbsp;&#39;腊月&#39;);\r\n\t\t$res&nbsp;=&nbsp;&#39;&#39;;\r\n\t\tif&nbsp;($isMonth)&nbsp;{\r\n\t\t\t$res&nbsp;=&nbsp;$monthHash[$num];\r\n\t\t}&nbsp;else&nbsp;{\r\n\t\t\tif&nbsp;($num&nbsp;&lt;=&nbsp;10)&nbsp;{\r\n\t\t\t\t$res&nbsp;=&nbsp;&#39;初&#39;&nbsp;.&nbsp;$dateHash[$num];\r\n\t\t\t}&nbsp;else&nbsp;if&nbsp;($num&nbsp;&gt;&nbsp;10&nbsp;&amp;&amp;&nbsp;$num&nbsp;&lt;&nbsp;20)&nbsp;{\r\n\t\t\t\t$res&nbsp;=&nbsp;&#39;十&#39;&nbsp;.&nbsp;$dateHash[$num&nbsp;-&nbsp;10];\r\n\t\t\t}&nbsp;else&nbsp;if&nbsp;($num&nbsp;==&nbsp;20)&nbsp;{\r\n\t\t\t\t$res&nbsp;=&nbsp;&quot;二十&quot;;\r\n\t\t\t}&nbsp;else&nbsp;if&nbsp;($num&nbsp;&gt;&nbsp;20&nbsp;&amp;&amp;&nbsp;$num&nbsp;&lt;&nbsp;30)&nbsp;{\r\n\t\t\t\t$res&nbsp;=&nbsp;&quot;廿&quot;&nbsp;.&nbsp;$dateHash[$num&nbsp;-&nbsp;20];\r\n\t\t\t}&nbsp;else&nbsp;if&nbsp;($num&nbsp;==&nbsp;30)&nbsp;{\r\n\t\t\t\t$res&nbsp;=&nbsp;&quot;三十&quot;;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn&nbsp;$res;\r\n\t}\r\n}</pre><p>使用方法如下：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">header(&quot;Content-Type:text/html;charset=utf-8&quot;);\r\n$lunar&nbsp;=&nbsp;new&nbsp;Lunar();\r\n$month&nbsp;=&nbsp;$lunar-&gt;convertSolarToLunar(&#39;2018&#39;,&nbsp;&#39;09&#39;,&nbsp;&#39;25&#39;);&nbsp;//将阳历转换为阴历。注：这三个参数都必须是字符串类型，否则会报错\r\necho&nbsp;&#39;&lt;pre&gt;&#39;;\r\nprint_r($month);</pre><p>打打印结果如下：<br/></p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">Array\r\n(\r\n&nbsp;&nbsp;&nbsp;&nbsp;[0]&nbsp;=&gt;&nbsp;2018\r\n&nbsp;&nbsp;&nbsp;&nbsp;[1]&nbsp;=&gt;&nbsp;八月\r\n&nbsp;&nbsp;&nbsp;&nbsp;[2]&nbsp;=&gt;&nbsp;十六\r\n&nbsp;&nbsp;&nbsp;&nbsp;[3]&nbsp;=&gt;&nbsp;戊戌\r\n&nbsp;&nbsp;&nbsp;&nbsp;[4]&nbsp;=&gt;&nbsp;8\r\n&nbsp;&nbsp;&nbsp;&nbsp;[5]&nbsp;=&gt;&nbsp;16\r\n&nbsp;&nbsp;&nbsp;&nbsp;[6]&nbsp;=&gt;&nbsp;狗\r\n&nbsp;&nbsp;&nbsp;&nbsp;[7]&nbsp;=&gt;&nbsp;0\r\n)</pre>","keywords":"日历","description":"    最近对阳历转阴历从而得到相应节日的算法这方面比较感兴趣，于是就在网上搜了一圈。不错，还算是找到一个比较不错的php类，实现了将阳历转换为阴历（农历），阴历转换为阳历的算法，同时还能获取干支纪年，生肖，以及相应的阴历的中文叫法等等，功能还是挺齐全的，在这里分享给大家。具体类代码如下：class Lunar{ \r\n &amp;nbs","is_show":1,"is_delete":0,"is_top":1,"is_original":0,"click":5843,"addtime":"2018-08-17 09:31:29","cid":1,"created_at":"2026-05-10 09:19:08","updated_at":"2026-06-04 19:05:12","deleted_at":null,"category":{"cid":1,"cname":"PHP","keywords":"PHP","description":"Hypertext Preprocessor","sort":0,"pid":0,"nav":"PHP","created_at":"2026-05-10 09:22:40","updated_at":null,"deleted_at":null},"tags":[{"tid":1,"tname":"PHP","sort":1,"created_at":"2026-05-10 09:24:23","updated_at":null,"deleted_at":null,"pivot":{"aid":64,"tid":1}}],"pics":[],"pic_path":"https://image.pengxb.com/gnu.png"},{"aid":63,"title":"VS Code 快捷键（中英文对照版）","author":"pengxb","content":"<h3 style=\"box-sizing: border-box; font-family: &quot;-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif&quot;; font-weight: 500; line-height: 1.5em; color: rgb(51, 51, 51); font-size: 1.75em; border-bottom: 1px solid rgb(238, 238, 238); padding-bottom: 10px; white-space: normal;\"><span style=\"font-size: 24px; \">常用 General</span><br/></h3><table width=\"100%\"><thead style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\" class=\"firstRow\"><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">按 Press</th><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">功能 Function</th></tr></thead><tbody style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + Shift + P，F1</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">显示命令面板 Show Command Palette</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + P</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">快速打开 Quick Open</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + Shift + N</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">新窗口/实例 New window/instance</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + Shift + W</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">关闭窗口/实例 Close window/instance</td></tr></tbody></table><p style=\"box-sizing: border-box; font-family: &quot;-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif&quot;; font-weight: 500; line-height: 1.5em; color: rgb(51, 51, 51); margin: 0.5em 0px 0px; font-size: 1.75em; border-bottom: 1px solid rgb(238, 238, 238); padding-bottom: 10px; white-space: normal;\"><span style=\"font-size: 24px; \">基础编辑 Basic editing</span></p><table width=\"100%\"><thead style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\" class=\"firstRow\"><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">按 Press</th><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">功能 Function</th></tr></thead><tbody style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+X</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">剪切行（空选定） Cut line (empty selection)</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+C</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">复制行（空选定）Copy line (empty selection)</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Alt+ ↑ / ↓</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">向上/向下移动行 Move line up/down</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Shift+Alt + ↓ / ↑</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">向上/向下复制行 Copy line up/down</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+K</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">删除行 Delete line</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Enter</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">在下面插入行 Insert line below</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+Enter</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">在上面插入行 Insert line above</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+\\</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">跳到匹配的括号 Jump to matching bracket</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+] / [</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">缩进/缩进行 Indent/outdent line</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Home</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">转到行首 Go to beginning of line</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">End</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">转到行尾 Go to end of line</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Home</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">转到文件开头 Go to beginning of file</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+End</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">转到文件末尾 Go to end of file</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+↑ / ↓</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">向上/向下滚动行 Scroll line up/down</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Alt+PgUp / PgDown</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">向上/向下滚动页面 Scroll page up/down</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+[</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">折叠（折叠）区域 Fold (collapse) region</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+]</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">展开（未折叠）区域 Unfold (uncollapse) region</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+K Ctrl+[</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">折叠（未折叠）所有子区域 Fold (collapse) all subregions</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+K Ctrl+]</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">展开（未折叠）所有子区域 Unfold (uncollapse) all subregions</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+K Ctrl+0</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">折叠（折叠）所有区域 Fold (collapse) all regions</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+K Ctrl+J</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">展开（未折叠）所有区域 Unfold (uncollapse) all regions</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+K Ctrl+C</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">添加行注释 Add line comment</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+K Ctrl+U</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">删除行注释 Remove line comment</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+/</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">切换行注释 Toggle line comment</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Shift+Alt+A</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">切换块注释 Toggle block comment</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Alt+Z</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">切换换行 Toggle word wrap</td></tr></tbody></table><h2 style=\"box-sizing: border-box; font-family: &quot;-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif&quot;; font-weight: 500; line-height: 1.5em; color: rgb(51, 51, 51); margin: 0.5em 0px 0px; font-size: 1.75em; border-bottom: 1px solid rgb(238, 238, 238); padding-bottom: 10px; white-space: normal;\"><span style=\"font-size: 24px; \">导航 Navigation</span></h2><table width=\"100%\"><thead style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\" class=\"firstRow\"><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">按 Press</th><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">功能 Function</th></tr></thead><tbody style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + T</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">显示所有符号 Show all Symbols</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + G</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">转到行... Go to Line...</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + P</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">转到文件... Go to File...</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + Shift + O</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">转到符号... Go to Symbol...</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + Shift + M</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">显示问题面板 Show Problems panel</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">F8</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">转到下一个错误或警告 Go to next error or warning</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Shift + F8</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">转到上一个错误或警告 Go to previous error or warning</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + Shift + Tab</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">导航编辑器组历史记录 Navigate editor group history</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Alt + ←/→</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">返回/前进 Go back / forward</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + M</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">切换选项卡移动焦点 Toggle Tab moves focus</td></tr></tbody></table><h2 style=\"box-sizing: border-box; font-family: &quot;-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif&quot;; font-weight: 500; line-height: 1.5em; color: rgb(51, 51, 51); margin: 0.5em 0px 0px; font-size: 1.75em; border-bottom: 1px solid rgb(238, 238, 238); padding-bottom: 10px; white-space: normal;\"><span style=\"font-size: 24px; \">搜索和替换 Search and replace</span></h2><table width=\"100%\"><thead style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\" class=\"firstRow\"><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">按 Press</th><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">功能 Function</th></tr></thead><tbody style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + F</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">查找 Find</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + H</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">替换 Replace</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">F3 / Shift + F3</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">查找下一个/上一个 Find next/previous</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Alt + Enter</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">选择查找匹配的所有出现 Select all occurences of Find match</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + D</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">将选择添加到下一个查找匹配 Add selection to next Find match</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + K Ctrl + D</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">将最后一个选择移至下一个查找匹配项 Move last selection to next Find match</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Alt + C / R / W</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">切换区分大小写/正则表达式/整个词 Toggle case-sensitive / regex / whole word</td></tr></tbody></table><h2 style=\"box-sizing: border-box; font-family: &quot;-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif&quot;; font-weight: 500; line-height: 1.5em; color: rgb(51, 51, 51); margin: 0.5em 0px 0px; font-size: 1.75em; border-bottom: 1px solid rgb(238, 238, 238); padding-bottom: 10px; white-space: normal;\"><span style=\"font-size: 24px; \">多光标和选择 Multi-cursor and selection</span></h2><table width=\"100%\"><thead style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\" class=\"firstRow\"><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">按 Press</th><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">功能 Function</th></tr></thead><tbody style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Alt +单击</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">插入光标 Insert cursor</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + Alt +↑/↓</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">在上/下插入光标 Insert cursor above / below</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + U</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">撤消上一个光标操作 Undo last cursor operation</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Shift + Alt + I</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">在选定的每一行的末尾插入光标 Insert cursor at end of each line selected</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + I</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">选择当前行 Select current line</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + Shift + L</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">选择当前选择的所有出现 Select all occurrences of current selection</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + F2</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">选择当前字的所有出现 Select all occurrences of current word</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Shift + Alt + →</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">展开选择 Expand selection</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Shift + Alt + ←</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">缩小选择 Shrink selection</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Shift + Alt + （拖动鼠标）</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">列（框）选择 Column (box) selection</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + Shift + Alt +（箭头键）</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">列（框）选择 Column (box) selection</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + Shift + Alt + PgUp / PgDown</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">列（框）选择页上/下 Column (box) selection page up/down</td></tr></tbody></table><h2 style=\"box-sizing: border-box; font-family: &quot;-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif&quot;; font-weight: 500; line-height: 1.5em; color: rgb(51, 51, 51); margin: 0.5em 0px 0px; font-size: 1.75em; border-bottom: 1px solid rgb(238, 238, 238); padding-bottom: 10px; white-space: normal;\"><span style=\"font-size: 24px; \">丰富的语言编辑 Rich languages editing</span></h2><table width=\"100%\"><thead style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\" class=\"firstRow\"><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">按 Press</th><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">功能 Function</th></tr></thead><tbody style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + 空格</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">触发建议 Trigger suggestion</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + Shift + Space</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">触发器参数提示 Trigger parameter hints</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Tab</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Emmet 展开缩写 Emmet expand abbreviation</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Shift + Alt + F</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">格式化文档 Format document</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + K Ctrl + F</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">格式选定区域 Format selection</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">F12</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">转到定义 Go to Definition</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Alt + F12</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Peek定义 Peek Definition</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + K F12</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">打开定义到边 Open Definition to the side</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + .</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">快速解决 Quick Fix</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Shift + F12</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">显示引用 Show References</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">F2</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">重命名符号 Rename Symbol</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + K Ctrl + X</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">修剪尾随空格 Trim trailing whitespace</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl + K M</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">更改文件语言 Change file language</td></tr></tbody></table><h2 style=\"box-sizing: border-box; font-family: &quot;-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif&quot;; font-weight: 500; line-height: 1.5em; color: rgb(51, 51, 51); margin: 0.5em 0px 0px; font-size: 1.75em; border-bottom: 1px solid rgb(238, 238, 238); padding-bottom: 10px; white-space: normal;\"><span style=\"font-size: 24px; \">编辑器管理 Editor management</span></h2><table width=\"100%\"><thead style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\" class=\"firstRow\"><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">按 Press</th><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">功能 Function</th></tr></thead><tbody style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+F4, Ctrl+W</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">关闭编辑器 Close editor</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+K F</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">关闭文件夹 Close folder</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+\\</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">拆分编辑器 Split editor</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+ 1 / 2 / 3</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">聚焦到第1，第2或第3编辑器组 Focus into 1st, 2nd or 3rd editor group</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+K Ctrl+ ←/→</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">聚焦到上一个/下一个编辑器组 Focus into previous/next editor group</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+PgUp / PgDown</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">向左/向右移动编辑器 Move editor left/right</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+K ← / →</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">移动活动编辑器组 Move active editor group</td></tr></tbody></table><h2 style=\"box-sizing: border-box; font-family: &quot;-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif&quot;; font-weight: 500; line-height: 1.5em; color: rgb(51, 51, 51); margin: 0.5em 0px 0px; font-size: 1.75em; border-bottom: 1px solid rgb(238, 238, 238); padding-bottom: 10px; white-space: normal;\"><span style=\"font-size: 24px; \">文件管理 File management</span></h2><table width=\"100%\"><thead style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\" class=\"firstRow\"><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">按 Press</th><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">功能 Function</th></tr></thead><tbody style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+N</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">新文件 New File</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+O</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">打开文件... Open File...</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+S</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">保存 Save</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+S</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">另存为... Save As...</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+K S</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">全部保存 Save All</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+F4</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">关闭 Close</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+K Ctrl+W</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">关闭所有 Close All</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+T</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">重新打开关闭的编辑器 Reopen closed editor</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+K</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">输入保持打开 Enter Keep Open</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Tab</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">打开下一个 Open next</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+Tab</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">打开上一个 Open previous</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+K P</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">复制活动文件的路径 Copy path of active file</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+K R</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">显示资源管理器中的活动文件 Reveal active file in Explorer</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+K O</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">显示新窗口/实例中的活动文件 Show active file in new window/instance</td></tr></tbody></table><h2 style=\"box-sizing: border-box; font-family: &quot;-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif&quot;; font-weight: 500; line-height: 1.5em; color: rgb(51, 51, 51); margin: 0.5em 0px 0px; font-size: 1.75em; border-bottom: 1px solid rgb(238, 238, 238); padding-bottom: 10px; white-space: normal;\"><span style=\"font-size: 24px; \">显示 Display</span></h2><table width=\"100%\"><thead style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\" class=\"firstRow\"><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">按 Press</th><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">功能 Function</th></tr></thead><tbody style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">F11</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">切换全屏 Toggle full screen</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Shift+Alt+1</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">切换编辑器布局 Toggle editor layout</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+ = / -</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">放大/缩小 Zoom in/out</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+B</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">切换侧栏可见性 Toggle Sidebar visibility</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+E</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">显示浏览器/切换焦点 Show Explorer / Toggle focus</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+F</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">显示搜索 Show Search</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+G</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">显示Git Show Git</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+D</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">显示调试 Show Debug</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+X</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">显示扩展 Show Extensions</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+H</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">替换文件 Replace in files</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+J</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">切换搜索详细信息 Toggle Search details</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+C</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">打开新命令提示符/终端 Open new command prompt/terminal</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+U</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">显示输出面板 Show Output panel</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+V</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">切换Markdown预览 Toggle Markdown preview</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+K V</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">从旁边打开Markdown预览 Open Markdown preview to the side</td></tr></tbody></table><h2 style=\"box-sizing: border-box; font-family: &quot;-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif&quot;; font-weight: 500; line-height: 1.5em; color: rgb(51, 51, 51); margin: 0.5em 0px 0px; font-size: 1.75em; border-bottom: 1px solid rgb(238, 238, 238); padding-bottom: 10px; white-space: normal;\"><span style=\"font-size: 24px; \">调试 Debug</span></h2><table width=\"100%\"><thead style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\" class=\"firstRow\"><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">按 Press</th><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">功能 Function</th></tr></thead><tbody style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">F9</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">切换断点 Toggle breakpoint</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">F5</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">开始/继续 Start/Continue</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Shift+F5</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">停止 Stop</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">F11 / Shift+F11</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">下一步/上一步 Step into/out</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">F10</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">跳过 Step over</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+K Ctrl+I</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">显示悬停 Show hover</td></tr></tbody></table><h2 style=\"box-sizing: border-box; font-family: &quot;-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif&quot;; font-weight: 500; line-height: 1.5em; color: rgb(51, 51, 51); margin: 0.5em 0px 0px; font-size: 1.75em; border-bottom: 1px solid rgb(238, 238, 238); padding-bottom: 10px; white-space: normal;\"><span style=\"font-size: 24px; \">集成终端 Integrated terminal</span></h2><table width=\"100%\"><thead style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\" class=\"firstRow\"><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">按 Press</th><th align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; text-align: left; border-color: rgb(230, 230, 230); word-break: normal; background: rgb(243, 243, 243);\">功能 Function</th></tr></thead><tbody style=\"box-sizing: border-box;\"><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+`</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">显示集成终端 Show integrated terminal</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+`</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">创建新终端 Create new terminal</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+C</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">复制选定 Copy selection</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Shift+V</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">粘贴到活动端子 Paste into active terminal</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+↑ / ↓</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">向上/向下滚动 Scroll up/down</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Shift+PgUp / PgDown</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">向上/向下滚动页面 Scroll page up/down</td></tr><tr style=\"box-sizing: border-box;\"><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">Ctrl+Home / End</td><td align=\"left\" style=\"box-sizing: border-box; padding-right: 8px; padding-left: 8px; border-color: rgb(230, 230, 230); word-break: normal;\">滚动到顶部/底部 Scroll to top/bottom</td></tr></tbody></table><p><br/></p><p>原文链接：<a href=\"https://segmentfault.com/a/1190000007688656\" target=\"_blank\">https://segmentfault.com/a/1190000007688656</a></p>","keywords":"vscode","description":"常用 General按 Press功能 FunctionCtrl + Shift + P，F1显示命令面板 Show Command PaletteCtrl + P快速打开 Quick OpenCtrl + Shift + N新窗口/实例 New window/instanceCtrl + Shift + W关闭窗口/实例 Close window/instance","is_show":1,"is_delete":0,"is_top":1,"is_original":0,"click":5882,"addtime":"2018-06-12 14:08:22","cid":5,"created_at":"2026-05-10 09:19:08","updated_at":"2026-06-04 14:32:04","deleted_at":null,"category":{"cid":5,"cname":"工具","keywords":"Tool","description":"","sort":10,"pid":0,"nav":"Tool","created_at":"2026-05-10 09:22:40","updated_at":null,"deleted_at":null},"tags":[{"tid":8,"tname":"工具","sort":8,"created_at":"2026-05-10 09:24:23","updated_at":null,"deleted_at":null,"pivot":{"aid":63,"tid":8}}],"pics":[],"pic_path":"https://image.pengxb.com/gnu.png"},{"aid":60,"title":"阿里云 Centos 7环境配置 LNMP","author":"pengxb","content":"<p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\"><span style=\"box-sizing: border-box;\">首先更新系统yum源：</span></p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">yum&nbsp;-y&nbsp;update</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\"><span style=\"box-sizing: border-box; background-color: rgb(248, 248, 248);\"></span></p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\"><strong><span style=\"box-sizing: border-box;\">安装nginx</span></strong></p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">1.安装nginx源&nbsp; 【会自动获取最新的nginx版本】<br/><a href=\"http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm\" style=\"box-sizing: border-box; background-color: transparent; color: rgb(255, 117, 24); text-decoration-line: none;\"></a></p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">yum&nbsp;-y&nbsp;localinstall&nbsp;http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">2.安装nginx</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">yum&nbsp;-y&nbsp;install&nbsp;nginx</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">3.启动nginx</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">systemctl&nbsp;start&nbsp;nginx</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">4.访问 http://你的ip/</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果成功安装会出来nginx默认的欢迎界面！</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\"><strong><span style=\"box-sizing: border-box;\">安装MySQL 8.0</span></strong><br/></p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\"><span style=\"box-sizing: border-box;\">1.下载mysql的repo源</span></p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">wget&nbsp;https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">2.<span style=\"color: rgb(47, 47, 47); font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif; background-color: rgb(255, 255, 255);\">安装 rpm 包</span></p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 10px; margin-bottom: 10px; line-height: 20px; color: rgb(248, 248, 212); word-break: break-all; word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">rpm&nbsp;-ivh&nbsp;mysql80-community-release-el7-1.noarch.rpm</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; white-space: normal; background-color: rgb(255, 255, 255);\"><span style=\"box-sizing: border-box; color: rgb(47, 47, 47); font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;\"></span></p><p style=\"margin-top: 0px; margin-bottom: 0px; white-space: normal; box-sizing: border-box; padding: 0px; color: rgb(51, 51, 51); font-family: &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; background-color: rgb(255, 255, 255);\"><span style=\"box-sizing: border-box; color: rgb(47, 47, 47); font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;\">3.<span style=\"color: rgb(79, 79, 79); font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-variant-ligatures: common-ligatures; background-color: rgb(255, 255, 255);\">修改 MySQL 的repo源，使MySQL8.0可用【<strong>通常</strong><strong>情况下，</strong><strong>此步是多余的，可忽略</strong>】</span></span><br/></p><pre style=\"margin-top: 10px; margin-bottom: 10px; padding: 10px 20px; border-radius: 4px; background-color: rgb(74, 74, 74); font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 12px; line-height: 20px; font-family: &quot;courier new&quot;; box-sizing: border-box; overflow: auto; color: rgb(248, 248, 212); word-break: break-all; overflow-wrap: break-word; border: none;\">vi&nbsp;/etc/yum.repos.d/mysql-community.repo</pre><p>找到 <span style=\"color: rgb(255, 0, 0);\">[mysql80-community]</span>&nbsp;</p><p>确保 <span style=\"color: rgb(255, 0, 0);\">enabled=1</span></p><p>修改，保存并退出。</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; white-space: normal; background-color: rgb(255, 255, 255);\"><span style=\"box-sizing: border-box; color: rgb(47, 47, 47); font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;\">4.安装msyql</span><span style=\"box-sizing: border-box; color: rgb(47, 47, 47); font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif;\"></span><br/></p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 10px; margin-bottom: 10px; line-height: 20px; color: rgb(248, 248, 212); word-break: break-all; word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">yum&nbsp;-y&nbsp;install&nbsp;mysql-server</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">安装mysql的开发包，以后会有用【<strong>可忽略</strong>】</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">yum&nbsp;-y&nbsp;install&nbsp;mysql-community-devel</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">5.启动mysql</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">systemctl&nbsp;start&nbsp;mysqld</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">6.查看mysql启动状态</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">systemctl&nbsp;status&nbsp;mysqld</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">出现 Active:&nbsp;<strong>active (running) </strong>表示MySQL运行正常！证明启动成功！</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">7.获取mysql默认生成的密码</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">grep&nbsp;&#39;temporary&nbsp;password&#39;&nbsp;/var/log/mysqld.log</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">8.换成自己的密码</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">mysql&nbsp;-uroot&nbsp;-p</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\"><span style=\"color: rgb(255, 0, 0);\">Enter&nbsp;password:</span>输入上面的密码</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">成功输入后进入一下步，这里你估计会输入好几次才进去，因为密码输入是看不到内容的，啊哈哈~</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">9. 更换密码</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">mysql&gt;&nbsp;ALTER&nbsp;USER&nbsp;&#39;root&#39;@&#39;localhost&#39;&nbsp;IDENTIFIED&nbsp;BY&nbsp;&#39;MyNewPass4!&#39;;</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">这个密码一定要足够复杂，否则会提示密码不合法。</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">10.退出mysql</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">mysql&gt;&nbsp;exit</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">11.用新密码再登录，试一下新密码</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">mysql&nbsp;-uroot&nbsp;-p</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\"><span style=\"color: rgb(255, 0, 0);\">Ent</span><span style=\"color: rgb(255, 0, 0);\">er&nbsp;password:</span>输入你的新密码</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">12.确认密码正确后，退出mysql</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\"><strong><span style=\"box-sizing: border-box;\">编译安装php7.2.0 【参考：<a href=\"https://www.pengxb.com/article/47\" target=\"_blank\" title=\"技苑\">CentOS 7源码编译安装PHP7.2.0</a>】</span></strong><br/></p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">所以，下载压缩包，解压，安装php依赖包等等我就不多说了，咱直接到这编译配置一步，将可能会遇到的报错情况进行分析，至于编译完成之后的，请看参考文章。</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">编译配置，这一步我们会遇到很多configure error，我们一一解决，基本都是相关软件开发包没有安装导致</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">./configure&nbsp;--prefix=/usr/local/php&nbsp;--with-config-file-path=/usr/local/php/etc&nbsp;--enable-fpm&nbsp;\\\r\n--with-fpm-user=nginx&nbsp;--with-fpm-group=nginx&nbsp;\\\r\n--enable-mysqlnd&nbsp;--with-mysqli=mysqlnd&nbsp;--with-pdo-mysql=mysqlnd&nbsp;--with-iconv-dir&nbsp;--with-freetype-dir=/usr/local/freetype&nbsp;\\\r\n--with-jpeg-dir&nbsp;--with-png-dir&nbsp;--with-zlib&nbsp;--with-libxml-dir=/usr&nbsp;--enable-xml&nbsp;--disable-rpath&nbsp;--enable-bcmath&nbsp;\\\r\n--enable-shmop&nbsp;--enable-sysvsem&nbsp;--enable-inline-optimization&nbsp;--with-curl&nbsp;--enable-mbregex&nbsp;--enable-mbstring&nbsp;\\\r\n--enable-intl&nbsp;--enable-pcntl&nbsp;--enable-ftp&nbsp;--with-gd&nbsp;--with-openssl&nbsp;--with-mhash&nbsp;--enable-pcntl&nbsp;--enable-sockets&nbsp;\\\r\n--with-xmlrpc&nbsp;--enable-zip&nbsp;--enable-soap&nbsp;--with-gettext&nbsp;--disable-fileinfo&nbsp;--enable-opcache&nbsp;--with-xsl</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">configure error:</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">1.configure:&nbsp;error:&nbsp;xml2-config&nbsp;not&nbsp;found.&nbsp;Please&nbsp;check&nbsp;your&nbsp;<span style=\"color: rgb(255, 0, 0);\"><strong>libxml2&nbsp;</strong></span>installation.</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">解决：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">yum&nbsp;-y&nbsp;install&nbsp;libxml2&nbsp;libxml2-devel</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">2.configure:&nbsp;error:&nbsp;Cannot&nbsp;find&nbsp;<span style=\"color: rgb(255, 0, 0);\"><strong>OpenSSL&#39;s&nbsp;</strong></span>&lt;evp.h&gt;</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">解决：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">yum&nbsp;-y&nbsp;install&nbsp;openssl&nbsp;openssl-devel</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">3.configure:&nbsp;error:&nbsp;Please&nbsp;reinstall&nbsp;the&nbsp;<span style=\"color: rgb(255, 0, 0);\"><strong>BZip2&nbsp;</strong></span>distribution</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">解决：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">yum&nbsp;-y&nbsp;install&nbsp;bzip2&nbsp;bzip2-devel</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">4.configure:&nbsp;error:&nbsp;Please&nbsp;reinstall&nbsp;the&nbsp;<span style=\"color: rgb(255, 0, 0);\"><strong>libcurl&nbsp;</strong></span>distribution&nbsp;-&nbsp;easy.h&nbsp;should&nbsp;be&nbsp;in&nbsp;&lt;curl-dir&gt;/include/curl/</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">解决：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">yum&nbsp;-y&nbsp;install&nbsp;libcurl&nbsp;libcurl-devel</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\"><br/></p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\"><span style=\"box-sizing: border-box; line-height: 1.5;\">5.</span><span style=\"box-sizing: border-box; line-height: 1.5;\">If&nbsp;configure&nbsp;fails&nbsp;try&nbsp;--with-webp-dir=&lt;DIR&gt;&nbsp;</span><span style=\"box-sizing: border-box; line-height: 1.5;\">configure:&nbsp;error:&nbsp;</span><span style=\"color: rgb(255, 0, 0);\"><strong>jpeglib.h</strong></span><span style=\"box-sizing: border-box; line-height: 1.5;\">&nbsp;not&nbsp;found.</span></p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\"><span style=\"box-sizing: border-box; line-height: 1.5;\"></span></p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">解决：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">yum&nbsp;-y&nbsp;install&nbsp;libjpeg&nbsp;libjpeg-devel</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\"><span style=\"box-sizing: border-box; line-height: 1.5;\">6.</span><span style=\"box-sizing: border-box; line-height: 1.5;\">If&nbsp;configure&nbsp;fails&nbsp;try&nbsp;--with-webp-dir=&lt;DIR&gt;</span></p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">checking&nbsp;for&nbsp;jpeg_read_header&nbsp;in&nbsp;-ljpeg...&nbsp;yes</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">configure:&nbsp;error:&nbsp;<span style=\"color: rgb(255, 0, 0);\"><strong>png.h</strong></span>&nbsp;not&nbsp;found.</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">解决：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">yum&nbsp;-y&nbsp;install&nbsp;libpng&nbsp;libpng-devel</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\"><span style=\"box-sizing: border-box; line-height: 1.5;\">7.</span><span style=\"box-sizing: border-box; line-height: 1.5;\">If&nbsp;configure&nbsp;fails&nbsp;try&nbsp;--with-webp-dir=&lt;DIR&gt;</span></p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">checking&nbsp;for&nbsp;jpeg_read_header&nbsp;in&nbsp;-ljpeg...&nbsp;yes</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">checking&nbsp;for&nbsp;png_write_image&nbsp;in&nbsp;-lpng...&nbsp;yes</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">If&nbsp;configure&nbsp;fails&nbsp;try&nbsp;--with-xpm-dir=&lt;DIR&gt;</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">configure:&nbsp;error:&nbsp;<span style=\"color: rgb(255, 0, 0);\"><strong>freetype-config</strong></span>&nbsp;not&nbsp;found.</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">解决：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">yum&nbsp;-y&nbsp;install&nbsp;freetype&nbsp;freetype-devel</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">8.<span style=\"box-sizing: border-box; line-height: 1.5;\">configure:&nbsp;error:&nbsp;Unable&nbsp;to&nbsp;</span><span style=\"color: rgb(255, 0, 0);\"><strong>locate&nbsp;gmp.h</strong></span></p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">解决：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">yum&nbsp;-y&nbsp;install&nbsp;gmp&nbsp;gmp-devel</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\"><span style=\"box-sizing: border-box; line-height: 1.5;\">9.</span><span style=\"box-sizing: border-box; line-height: 1.5;\">configure:&nbsp;error:&nbsp;</span><span style=\"color: rgb(255, 0, 0);\"><strong>mcrypt.h</strong></span><span style=\"box-sizing: border-box; line-height: 1.5;\">&nbsp;not&nbsp;found.&nbsp;Please&nbsp;reinstall&nbsp;libmcrypt.</span></p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\"><span style=\"box-sizing: border-box; line-height: 1.5;\">解决：</span></p><pre style=\"margin-top: 20px; margin-bottom: 20px; padding: 10px 20px; border-radius: 4px; background-color: rgb(74, 74, 74); font-variant-numeric: normal; font-variant-east-asian: normal; box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; border: none; font-stretch: normal;\">yum&nbsp;-y&nbsp;install&nbsp;libmcrypt&nbsp;libmcrypt-devel</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\"><span style=\"box-sizing: border-box; line-height: 1.5;\"></span></p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">10.<span style=\"box-sizing: border-box; line-height: 1.5;\">configure:&nbsp;error:&nbsp;Please&nbsp;reinstall&nbsp;read</span><span style=\"color: rgb(255, 0, 0);\"></span><span style=\"box-sizing: border-box; line-height: 1.5;\">line&nbsp;-&nbsp;I&nbsp;cannot&nbsp;find&nbsp;</span><span style=\"color: rgb(255, 0, 0);\"><strong>readline.h</strong></span></p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">解决：<br/></p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">yum&nbsp;-y&nbsp;install&nbsp;readline&nbsp;readline-devel</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">11.configure:&nbsp;error:&nbsp;xslt-config&nbsp;not&nbsp;found.&nbsp;Please&nbsp;reinstall&nbsp;the&nbsp;<span style=\"color: rgb(255, 0, 0);\"><strong>libxslt</strong></span>&nbsp;&gt;=&nbsp;1.1.0&nbsp;distribution</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">解决：<br/></p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">yum&nbsp;-y&nbsp;install&nbsp;libxslt&nbsp;libxslt-devel</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\"><span style=\"box-sizing: border-box;\"></span></p><p><br/></p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10.5px;\">参考原文：<a href=\"https://www.thinkcmf.com/topic/351.html\" target=\"_blank\">阿里云 Centos 7 PHP7环境配置 LNMP</a></p>","keywords":"Linux,lnmp,php7","description":"首先更新系统yum源：yum -y update安装nginx1.安装nginx源  【会自动获取最新的nginx版本】yum -y localinstall http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm","is_show":1,"is_delete":0,"is_top":1,"is_original":1,"click":5827,"addtime":"2018-04-12 16:50:01","cid":4,"created_at":"2026-05-10 09:19:08","updated_at":"2026-06-04 19:10:40","deleted_at":null,"category":{"cid":4,"cname":"Linux","keywords":"Linux","description":"","sort":6,"pid":0,"nav":"Linux","created_at":"2026-05-10 09:22:40","updated_at":null,"deleted_at":null},"tags":[{"tid":4,"tname":"Linux","sort":4,"created_at":"2026-05-10 09:24:23","updated_at":null,"deleted_at":null,"pivot":{"aid":60,"tid":4}}],"pics":[],"pic_path":"https://image.pengxb.com/gnu.png"},{"aid":55,"title":"MySQL5.7创建用户并授权，设置允许远程连接","author":"pengxb","content":"<h2 style=\"box-sizing: border-box; font-size: 21px; line-height: 1.5; margin: 10px 0px; color: rgb(75, 75, 75); font-family: Verdana, Arial, Helvetica, sans-serif; white-space: normal;\">一. 创建用户</h2><h3 style=\"background: url(&quot;images/title.gif&quot;) left top no-repeat fixed; font-family: verdana; font-size: 16px; color: rgb(102, 102, 102); margin: 10px 0px; padding-top: 12px; box-sizing: border-box; line-height: 1.5; white-space: normal; text-indent: 0em; text-align: left;\">命令:</h3><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">CREATE&nbsp;USER&nbsp;&#39;username&#39;@&#39;host&#39;&nbsp;IDENTIFIED&nbsp;BY&nbsp;&#39;password&#39;;</pre><h3 style=\"background: url(&quot;images/title.gif&quot;) left top no-repeat fixed; font-family: verdana; font-size: 16px; color: rgb(102, 102, 102); margin: 10px 0px; padding-top: 12px;  box-sizing: border-box; line-height: 1.5; white-space: normal;\">说明：</h3><ul style=\"list-style-type: none;\" class=\" list-paddingleft-2\"><li><p>username：你将创建的用户名；</p></li><li><p>host：指定该用户在哪个主机上可以登陆。localhost&nbsp; 本地用户；<span style=\"font-family:monospace\">%&nbsp;</span>从任意远程主机登陆<span style=\"font-family:monospace\">；</span></p></li><li><p>password：该用户的登陆密码；</p></li></ul><h3 style=\"background: url(&quot;images/title.gif&quot;) left top no-repeat fixed; font-family: verdana; font-size: 16px; color: rgb(102, 102, 102); margin: 10px 0px; padding-top: 12px; box-sizing: border-box; line-height: 1.5; white-space: normal;\">例子：</h3><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">CREATE&nbsp;USER&nbsp;&#39;dog&#39;@&#39;localhost&#39;&nbsp;IDENTIFIED&nbsp;BY&nbsp;&#39;123456&#39;;\r\nCREATE&nbsp;USER&nbsp;&#39;pig&#39;@&#39;192.168.1.101&#39;&nbsp;IDENTIFIED&nbsp;BY&nbsp;&#39;123456&#39;;\r\nCREATE&nbsp;USER&nbsp;&#39;pig&#39;@&#39;%&#39;&nbsp;IDENTIFIED&nbsp;BY&nbsp;&#39;123456&#39;;\r\nCREATE&nbsp;USER&nbsp;&#39;pig&#39;@&#39;%&#39;</pre><p><span style=\"color: rgb(255, 0, 0);\"><strong>但是</strong></span>，在使用PHP连接MySQL 8的时候，可能会发生如标题所示的错误：</p><pre style=\"margin-top: 20px; margin-bottom: 20px; padding: 10px 20px; border-radius: 4px; background-color: rgb(74, 74, 74); font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 12px; line-height: 20px; font-family: &quot;courier new&quot;; box-sizing: border-box; overflow: auto; color: rgb(248, 248, 212); overflow-wrap: break-word; border: none;\">SQLSTATE[HY000]&nbsp;[2054]&nbsp;The&nbsp;server&nbsp;requested&nbsp;authentication&nbsp;method&nbsp;unknown&nbsp;to&nbsp;the&nbsp;client</pre><p>发生这种错误，是由于MySQL 8默认使用了新的密码验证插件：caching_sha2_password，而之前的PHP版本中所带的mysqlnd无法支持这种验证。解决这个问题，有两种办法。</p><p>一种办法是升级PHP支持MySQL 8的新验证插件。</p><p>可以通过phpinfo()函数了解当前安装的PHP是否支持caching_sha2_password：</p><p><img src=\"https://image.pengxb.com/ueditor/20190802/15647406825.png\"/></p><p>如果不能升级PHP，可以在MySQL 8中创建（或修改）使用caching_sha2_password插件的账户，使之使用mysql_native_password，这样先前版本的PHP就可以连接使用了。</p><p>在CREATE USER时，使用IDENTIFIED WITH xxx_plugin BY &#39;password&#39;，比如：</p><pre style=\"margin-top: 20px; margin-bottom: 20px; padding: 10px 20px; border-radius: 4px; background-color: rgb(74, 74, 74); font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 12px; line-height: 20px; font-family: &quot;courier new&quot;; box-sizing: border-box; overflow: auto; color: rgb(248, 248, 212); overflow-wrap: break-word; border: none;\">CREATE&nbsp;USER&nbsp;&#39;native&#39;@&#39;localhost&#39;&nbsp;IDENTIFIED&nbsp;WITH&nbsp;mysql_native_password&nbsp;BY&nbsp;&#39;password!2#4&#39;;</pre><p>使用ALTER USER修改已有账户的验证插件：</p><pre style=\"margin-top: 20px; margin-bottom: 20px; padding: 10px 20px; border-radius: 4px; background-color: rgb(74, 74, 74); font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 12px; line-height: 20px; font-family: &quot;courier new&quot;; box-sizing: border-box; overflow: auto; color: rgb(248, 248, 212); overflow-wrap: break-word; border: none;\">ALTER&nbsp;USER&nbsp;&#39;native&#39;@&#39;localhost&#39;&nbsp;IDENTIFIED&nbsp;WITH&nbsp;mysql_native_password</pre><p>或</p><pre style=\"margin-top: 20px; margin-bottom: 20px; padding: 10px 20px; border-radius: 4px; background-color: rgb(74, 74, 74); font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 12px; line-height: 20px; font-family: &quot;courier new&quot;; box-sizing: border-box; overflow: auto; color: rgb(248, 248, 212); overflow-wrap: break-word; border: none;\">ALTER&nbsp;USER&nbsp;&#39;native&#39;@&#39;localhost&#39;&nbsp;IDENTIFIED&nbsp;WITH&nbsp;mysql_native_password&nbsp;BY&nbsp;&#39;new_password&#39;;</pre><p>采用前一种方式，账户的密码将被清除；BY子句将为账户设置新的密码。</p><p>/etc/my.cnf配置文件中，有一行：</p><pre style=\"margin-top: 20px; margin-bottom: 20px; padding: 10px 20px; border-radius: 4px; background-color: rgb(74, 74, 74); font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 12px; line-height: 20px; font-family: &quot;courier new&quot;; box-sizing: border-box; overflow: auto; color: rgb(248, 248, 212); overflow-wrap: break-word; border: none;\">#&nbsp;default-authentication-plugin=mysql_native_password</pre><p>请删除注释符号“#”并重新启动mysqld使之生效，此后创建的账户均默认使用mysql_native_password。</p><p>如果您完成MySQL Server的安装之后，在没有启动过mysqld服务的情况下修改/etc/my.cnf配置，那么启动mysqld之后创建的&#39;root&#39;@&#39;localhost&#39;账户也是使用mysql_native_password插件的。</p><h2 style=\"box-sizing: border-box; font-size: 21px; line-height: 1.5; margin: 10px 0px; color: rgb(75, 75, 75); font-family: Verdana, Arial, Helvetica, sans-serif; white-space: normal;\">二. 授权:</h2><h3 style=\"background: url(&quot;images/title.gif&quot;) left top no-repeat fixed; font-family: verdana; font-size: 16px; color: rgb(102, 102, 102); margin: 10px 0px; padding-top: 12px;  box-sizing: border-box; line-height: 1.5; white-space: normal;\">命令:</h3><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">GRANT&nbsp;privileges&nbsp;ON&nbsp;databasename.tablename&nbsp;TO&nbsp;&#39;username&#39;@&#39;host&#39;;</pre><h3 style=\"background: url(&quot;images/title.gif&quot;) left top no-repeat fixed; font-family: verdana; font-size: 16px; color: rgb(102, 102, 102); margin: 10px 0px; padding-top: 12px;  box-sizing: border-box; line-height: 1.5; white-space: normal;\">说明:</h3><ul style=\"list-style-type: none;\" class=\" list-paddingleft-2\"><li><p>privileges：用户的操作权限，如<code style=\"box-sizing: border-box;\">SELECT</code>，<code style=\"box-sizing: border-box;\">INSERT</code>，<code style=\"box-sizing: border-box;\">UPDATE</code>等，如果要授予所的权限则使用<code style=\"box-sizing: border-box;\">ALL</code></p></li><li><p>databasename：数据库名</p></li><li><p>tablename：表名，如果要授予该用户对所有数据库和表的相应操作权限则可用<code style=\"box-sizing: border-box;\">*</code>表示，如<code style=\"box-sizing: border-box;\">*.*</code></p></li></ul><h3 style=\"background: url(&quot;images/title.gif&quot;) left top no-repeat fixed; font-family: verdana; font-size: 16px; color: rgb(102, 102, 102); margin: 10px 0px; padding-top: 12px; box-sizing: border-box; line-height: 1.5; white-space: normal;\">例子:</h3><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">GRANT&nbsp;SELECT,&nbsp;INSERT&nbsp;ON&nbsp;test.user&nbsp;TO&nbsp;&#39;pig&#39;@&#39;%&#39;;\r\nGRANT&nbsp;ALL&nbsp;ON&nbsp;*.*&nbsp;TO&nbsp;&#39;pig&#39;@&#39;%&#39;;\r\nGRANT&nbsp;ALL&nbsp;ON&nbsp;maindataplus.*&nbsp;TO&nbsp;&#39;pig&#39;@&#39;%&#39;;</pre><h3 style=\"background: url(&quot;images/title.gif&quot;) left top no-repeat fixed; font-family: verdana; font-size: 16px; color: rgb(102, 102, 102); margin: 10px 0px; padding-top: 12px; box-sizing: border-box; line-height: 1.5; white-space: normal;\">注意:</h3><p style=\"box-sizing: border-box; margin: 10px auto; color: rgb(75, 75, 75); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; white-space: normal;\">用以上命令授权的用户不能给其它用户授权，如果想让该用户可以授权，用以下命令:</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">GRANT&nbsp;privileges&nbsp;ON&nbsp;databasename.tablename&nbsp;TO&nbsp;&#39;username&#39;@&#39;host&#39;&nbsp;WITH&nbsp;GRANT&nbsp;OPTION;</pre><h2 style=\"box-sizing: border-box; font-size: 21px; line-height: 1.5; margin: 10px 0px; color: rgb(75, 75, 75); font-family: Verdana, Arial, Helvetica, sans-serif; white-space: normal;\">三.设置与更改用户密码</h2><h3 style=\"background: url(&quot;images/title.gif&quot;) left top no-repeat fixed; font-family: verdana; font-size: 16px; color: rgb(102, 102, 102); margin: 10px 0px; padding-top: 12px;  box-sizing: border-box; line-height: 1.5; white-space: normal;\">命令:</h3><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">SET&nbsp;PASSWORD&nbsp;FOR&nbsp;&#39;username&#39;@&#39;host&#39;&nbsp;=&nbsp;PASSWORD(&#39;newpassword&#39;);</pre><p style=\"box-sizing: border-box; margin: 10px auto; color: rgb(75, 75, 75); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; white-space: normal;\">如果是当前登陆用户用:</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">SET&nbsp;PASSWORD&nbsp;=&nbsp;PASSWORD(&quot;newpassword&quot;);</pre><h3 style=\"background: url(&quot;images/title.gif&quot;) left top no-repeat fixed; font-family: verdana; font-size: 16px; color: rgb(102, 102, 102); margin: 10px 0px; padding-top: 12px; box-sizing: border-box; line-height: 1.5; white-space: normal;\">例子:</h3><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">SET&nbsp;PASSWORD&nbsp;FOR&nbsp;&#39;pig&#39;@&#39;%&#39;&nbsp;=&nbsp;PASSWORD(&quot;123456&quot;);</pre><h2 style=\"box-sizing: border-box; font-size: 21px; line-height: 1.5; margin: 10px 0px; color: rgb(75, 75, 75); font-family: Verdana, Arial, Helvetica, sans-serif; white-space: normal;\">四. 撤销用户权限</h2><h3 style=\"background: url(&quot;images/title.gif&quot;) left top no-repeat fixed; font-family: verdana; font-size: 16px; color: rgb(102, 102, 102); margin: 10px 0px; padding-top: 12px; box-sizing: border-box; line-height: 1.5; white-space: normal;\">命令:</h3><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">REVOKE&nbsp;privilege&nbsp;ON&nbsp;databasename.tablename&nbsp;FROM&nbsp;&#39;username&#39;@&#39;host&#39;;</pre><h2 style=\"box-sizing: border-box; font-size: 21px; line-height: 1.5; margin: 10px 0px; color: rgb(75, 75, 75); font-family: Verdana, Arial, Helvetica, sans-serif; white-space: normal;\">说明:</h2><p style=\"box-sizing: border-box; margin: 10px auto; color: rgb(75, 75, 75); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; white-space: normal;\">privilege, databasename, tablename：同授权部分</p><h3 style=\"background: url(&quot;images/title.gif&quot;) left top no-repeat fixed; font-family: verdana; font-size: 16px; color: rgb(102, 102, 102); margin: 10px 0px; padding-top: 12px;box-sizing: border-box; line-height: 1.5; white-space: normal;\">例子:</h3><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">REVOKE&nbsp;SELECT&nbsp;ON&nbsp;*.*&nbsp;FROM&nbsp;&#39;pig&#39;@&#39;%&#39;;</pre><h3 style=\"background: url(&quot;images/title.gif&quot;) left top no-repeat fixed; font-family: verdana; font-size: 16px; color: rgb(102, 102, 102); margin: 10px 0px; padding-top: 12px; box-sizing: border-box; line-height: 1.5; white-space: normal;\">注意:</h3><p style=\"box-sizing: border-box; margin: 10px auto; color: rgb(75, 75, 75); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; white-space: normal;\">假如你在给用户<code style=\"box-sizing: border-box;\">&#39;pig&#39;@&#39;%&#39;</code>授权的时候是这样的（或类似的）：<code style=\"box-sizing: border-box;\">GRANT SELECT ON test.user TO &#39;pig&#39;@&#39;%&#39;</code>，则在使用<code style=\"box-sizing: border-box;\">REVOKE SELECT ON *.* FROM &#39;pig&#39;@&#39;%&#39;;</code>命令并不能撤销该用户对test数据库中user表的<code style=\"box-sizing: border-box;\">SELECT</code>&nbsp;操作。相反，如果授权使用的是<code style=\"box-sizing: border-box;\">GRANT SELECT ON *.* TO &#39;pig&#39;@&#39;%&#39;;</code>则<code style=\"box-sizing: border-box;\">REVOKE SELECT ON test.user FROM &#39;pig&#39;@&#39;%&#39;;</code>命令也不能撤销该用户对test数据库中user表的<code style=\"box-sizing: border-box;\">Select</code>权限。</p><p style=\"box-sizing: border-box; margin: 10px auto; color: rgb(75, 75, 75); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; white-space: normal;\">具体信息可以用命令<code style=\"box-sizing: border-box;\">SHOW GRANTS FOR &#39;pig&#39;@&#39;%&#39;;</code>&nbsp;查看。</p><h2 style=\"box-sizing: border-box; font-size: 21px; line-height: 1.5; margin: 10px 0px; color: rgb(75, 75, 75); font-family: Verdana, Arial, Helvetica, sans-serif; white-space: normal;\">五.删除用户</h2><h3 style=\"background: url(&quot;images/title.gif&quot;) left top no-repeat fixed; font-family: verdana; font-size: 16px; color: rgb(102, 102, 102); margin: 10px 0px; padding-top: 12px; box-sizing: border-box; line-height: 1.5; white-space: normal;\">命令:</h3><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">DROP&nbsp;USER&nbsp;&#39;username&#39;@&#39;host&#39;;</pre><p><strong>最后一步</strong>就是刷新权限：</p><pre style=\"margin-top: 20px; margin-bottom: 20px; padding: 10px 20px; border-radius: 4px; background-color: rgb(74, 74, 74); font-variant-numeric: normal; font-variant-east-asian: normal; box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; border: none; font-stretch: normal;\">FLUSH&nbsp;PRIVILEGES;</pre>","keywords":"MySQL,用户,授权","description":"一. 创建用户命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';说明：username：你将创建的用户名；host：指定该用户在哪个主机上可以登陆。localhost  本地用户；% 从任意远程主机登陆；passwo","is_show":1,"is_delete":0,"is_top":1,"is_original":1,"click":7452,"addtime":"2018-03-06 16:11:18","cid":3,"created_at":"2026-05-10 09:19:08","updated_at":"2026-06-04 14:32:13","deleted_at":null,"category":{"cid":3,"cname":"MySQL","keywords":"MySQL","description":"","sort":2,"pid":0,"nav":"MySQL","created_at":"2026-05-10 09:22:40","updated_at":null,"deleted_at":null},"tags":[{"tid":3,"tname":"MySQL","sort":3,"created_at":"2026-05-10 09:24:23","updated_at":null,"deleted_at":null,"pivot":{"aid":55,"tid":3}},{"tid":4,"tname":"Linux","sort":4,"created_at":"2026-05-10 09:24:23","updated_at":null,"deleted_at":null,"pivot":{"aid":55,"tid":4}}],"pics":[{"ap_id":1194,"path":"https://image.pengxb.com/ueditor/20190802/15647406825.png","aid":55,"created_at":"2026-05-10 09:20:23","updated_at":null,"deleted_at":null}],"pic_path":"https://image.pengxb.com/ueditor/20190802/15647406825.png"},{"aid":51,"title":"使用systemctl设置Nginx、PHP、Mysql开机启动","author":"pengxb","content":"<p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(68, 68, 68); font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 15px; white-space: normal; \">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CentOS&nbsp;7继承了RHEL 7的新的特性，例如强大的systemctl，而systemctl的使用也使得以往系统服务的/etc/init.d的启动脚本的方式就此改变，也大幅提高了系统服务的运行效率。但服务的配置和以往也发生了极大的不同，说实在的，变的简单而易用了许多。</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(68, 68, 68); font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 15px; white-space: normal; \">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CentOS 7的服务systemctl脚本存放在：/usr/lib/systemd/，有系统（system）和用户（user）之分，像需要开机不登陆就能运行的程序，最好还是存在系统服务里面，即：/usr/lib/systemd/system目录下，每一个服务以.service结尾，一般会分为3部分：[Unit]、[Service]和[Install]。</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(68, 68, 68); font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 15px; white-space: normal; \">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我们可以使用systemctl -a来查看所有服务，如果列表里面没有Nginx，PHP、Mysql，又想借助于systemctl来进行统一管理的话，就到上述所说的/usr/lib/systemd/system目录下面创建以下文件吧。</p><h2 style=\"box-sizing: border-box; font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; line-height: 18px; color: rgb(68, 68, 68); margin: 16px 0px; font-size: 18px; padding: 10px 0px; border-bottom: 1px solid rgb(238, 238, 238); white-space: normal; \">Nginx之nginx.service文件[自定义］</h2><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">[Unit]\r\nDescription=nginxAfter=network.target\r\n[Service]\r\nType=forking\r\nPIDFile=/usr/local/nginx/logs/nginx.pid\r\nExecStart=/usr/local/nginx/sbin/nginx\r\nExecReload=/usr/local/nginx/sbin/nginx&nbsp;-s&nbsp;reload\r\nExecStop=/usr/local/nginx/sbin/nginx&nbsp;-s&nbsp;stop\r\nPrivateTmp=true\r\n[Install]\r\nWantedBy=multi-user.target</pre><h2 style=\"box-sizing: border-box; font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; line-height: 18px; color: rgb(68, 68, 68); margin: 16px 0px; font-size: 18px; padding: 10px 0px; border-bottom: 1px solid rgb(238, 238, 238); white-space: normal; \">PHP之php.service文件[自定义］</h2><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">[Unit]\r\nDescription=php\r\nAfter=network.target\r\n[Service]\r\nType=forking\r\nExecStart=/usr/local/php/sbin/php-fpm\r\nExecStop=/bin/pkill&nbsp;-9&nbsp;php-fpm\r\nPrivateTmp=true\r\n[Install]\r\nWantedBy=multi-user.target</pre><h2 style=\"box-sizing: border-box; font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; line-height: 18px; color: rgb(68, 68, 68); margin: 16px 0px; font-size: 18px; padding: 10px 0px; border-bottom: 1px solid rgb(238, 238, 238); white-space: normal; \">Mysql之mysqld.service文件[安装的时候软件自动生成］</h2><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">[Unit]\r\nDescription=MySQL&nbsp;Community&nbsp;ServerAfter=network.target\r\nAfter=syslog.target\r\n[Install]\r\nWantedBy=multi-user.targetAlias=mysql.service\r\n[Service]\r\nUser=mysql\r\nGroup=mysql\r\n#systemctl&nbsp;status就是根据pid来判断服务的运行状态的\r\nPIDFile=/var/run/mysqld/mysqld.pid\r\n#&nbsp;以root权限来启动程序\r\nPermissionsStartOnly=true\r\n#&nbsp;设置程序启动前的必要操作。例如初始化相关目录等等\r\nExecStartPre=/usr/bin/mysql-systemd-start&nbsp;pre\r\n#&nbsp;启动服务\r\nExecStart=/usr/bin/mysqld_safe\r\n#&nbsp;Don&#39;t&nbsp;signal&nbsp;startup&nbsp;success&nbsp;before&nbsp;a&nbsp;ping&nbsp;works\r\nExecStartPost=/usr/bin/mysql-systemd-start&nbsp;post\r\n#&nbsp;Give&nbsp;up&nbsp;if&nbsp;ping&nbsp;don&#39;t&nbsp;get&nbsp;an&nbsp;answer\r\nTimeoutSec=600\r\n#Restart配置可以在进程被kill掉之后，让systemctl产生新的进程，避免服务挂掉\r\nRestart=always\r\nPrivateTmp=false</pre><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(68, 68, 68); font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 15px; white-space: normal; \">上述文件创建完成后，只要使用systemctl enable 命令就可以将所编写的服务添加至开机启动了。例如：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">#将php服务添加至开机启动。执行enable命令后，会自动创建一个软链接/etc/systemd/system/multi-user.target.wants/php.service指向此文件。\r\nsystemctl&nbsp;enable&nbsp;php.service\r\n#查看php是否已设置为开机启动\r\nsystemctl&nbsp;is-enabled&nbsp;php.service</pre><h2 style=\"box-sizing: border-box; font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; line-height: 18px; color: rgb(68, 68, 68); margin: 16px 0px; font-size: 18px; padding: 10px 0px; border-bottom: 1px solid rgb(238, 238, 238); white-space: normal; \">注意</h2><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(68, 68, 68); font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 15px; white-space: normal; \">[Unit]部分主要是对这个服务的说明，内容包括Description和After，Description用于描述服务，After用于描述服务类别</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(68, 68, 68); font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 15px; white-space: normal; \">[Service]部分是服务的关键，是服务的一些具体运行参数的设置，这里 Type=forking是后台运行的形式，PIDFile为存放PID的文件路径，</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(68, 68, 68); font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 15px; white-space: normal; \">ExecStart为服务的具体运行命令，ExecReload为重启命令，ExecStop为停止命令，PrivateTmp=True表示给服务分配独立的临时空间。[Service]部分的启动、重启、停止命令全部要求使用绝对路径，使用相对路径则会报错！</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(68, 68, 68); font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 15px; white-space: normal; \">[Install]部分是服务安装的相关设置，可设置为多用户的</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(68, 68, 68); font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 15px; white-space: normal; \">服务脚本按照上面编写完成后，以754的权限保存在/usr/lib/systemd/system目录下，这时就可以利用systemctl进行配置了~</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(68, 68, 68); font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 15px; white-space: normal; \">使用systemctl start [服务名（也是文件名）]可以测试服务是否可以成功运行，如果不能运行则可以使用systemctl status [服务名（也是文件名）]查看错误信息和其他服务信息。然后根据报错进行修改，直到可以start，如果不放心还可以测试restart和stop命令。</p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(68, 68, 68); font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 15px; white-space: normal; \"><span style=\"font-size: 20px;\"><strong>注</strong></span><strong>：如果发现还是不能start，那么有可能是你先前启动了服务却未关闭导致，要按照原来的方法先关闭服务，再使用<span style=\"color: rgb(68, 68, 68); font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 15px; \">systemctl start，我就是遇到了这种情况，折腾了几分钟都报错才想到了这一点/(ㄒoㄒ)/~~</span></strong></p><p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(68, 68, 68); font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 15px; white-space: normal; \"><span style=\"color: rgb(68, 68, 68); font-family: &quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 15px; \">原文链接：<a href=\"https://www.centos.bz/2018/01/%E4%BD%BF%E7%94%A8systemctl%E8%AE%BE%E7%BD%AEnginx%E3%80%81php%E3%80%81mysql%E5%BC%80%E6%9C%BA%E5%90%AF%E5%8A%A8/\" target=\"_blank\">使用systemctl设置Nginx、PHP、Mysql开机启动</a></span></p><p><br/></p>","keywords":"systemctl","description":"        CentOS 7继承了RHEL 7的新的特性，例如强大的systemctl，而systemctl的使用也使得以往系统服务的/etc/init.d的启动脚本的方式就此改变，也大幅提高了系统服务的运行效率。但服务的配置和以往也发生了极大的不同，说实在的，变的简单而易用了许多。  ","is_show":1,"is_delete":0,"is_top":1,"is_original":0,"click":5763,"addtime":"2018-02-26 14:34:44","cid":4,"created_at":"2026-05-10 09:19:08","updated_at":"2026-06-04 16:05:23","deleted_at":null,"category":{"cid":4,"cname":"Linux","keywords":"Linux","description":"","sort":6,"pid":0,"nav":"Linux","created_at":"2026-05-10 09:22:40","updated_at":null,"deleted_at":null},"tags":[{"tid":4,"tname":"Linux","sort":4,"created_at":"2026-05-10 09:24:23","updated_at":null,"deleted_at":null,"pivot":{"aid":51,"tid":4}}],"pics":[],"pic_path":"https://image.pengxb.com/gnu.png"},{"aid":47,"title":"CentOS 7源码编译安装PHP7.2.0","author":"pengxb","content":"<p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; color: rgb(66, 66, 66); font-family: &quot;Microsoft YaHei&quot;, Tahoma, Helvetica, Arial, sans-serif; white-space: normal;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PHP是一种创建动态交互性站点的强有力的服务器端脚本语言，它是免费高效开源的。本文介绍了在CentOS 7下源码编译安装PHP7.2.0，老夫亲自动手安装，并将安装步骤记录下来，分享给大家。</p><h4 style=\"margin: 0px; padding: 0px 0px 6px; height: 36px; line-height: 36px; font-size: 18px; border-bottom: 1px solid rgb(238, 238, 238); font-weight: 500;\"><strong>准备安装依赖</strong></h4><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\">首先我们需要准备安装所需的依赖包：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">#&nbsp;如果是CentOS系统，运行:\r\nyum&nbsp;-y&nbsp;install&nbsp;libxml2&nbsp;libxml2-devel&nbsp;openssl&nbsp;openssl-devel&nbsp;bzip2&nbsp;bzip2-devel&nbsp;libcurl&nbsp;libcurl-devel&nbsp;\\\r\nlibjpeg&nbsp;libjpeg-devel&nbsp;libpng&nbsp;libpng-devel&nbsp;freetype&nbsp;freetype-devel&nbsp;gmp&nbsp;gmp-devel&nbsp;libmcrypt&nbsp;\\\r\nlibmcrypt-devel&nbsp;readline&nbsp;readline-devel&nbsp;libxslt&nbsp;libxslt-devel&nbsp;icu&nbsp;libicu&nbsp;libicu-devel&nbsp;gcc-c++\r\n\r\n#&nbsp;Ubuntu系统中，运行命令：\r\napt-get&nbsp;install&nbsp;build-essential&nbsp;install&nbsp;g++</pre><h4 style=\"margin: 0px; padding: 0px 0px 6px; height: 36px; line-height: 36px; font-size: 18px; border-bottom: 1px solid rgb(238, 238, 238); font-weight: 500;\"><strong>编译安装</strong></h4><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\">目前PHP最新稳定版是7.2.0，我们可以到php官网上下载安装包：<a href=\"http://am1.php.net/get/php-7.3.2.tar.gz/from/this/mirror\" target=\"_blank\"></a><a href=\"https://www.php.net/downloads.php\">https://www.php.net/downloads.php</a></p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">wget&nbsp;-O&nbsp;php-7.2.0.tar.gz&nbsp;https://www.php.net/distributions/php-7.2.0.tar.gz\r\ntar&nbsp;-zxvf&nbsp;php-7.2.0.tar.gz\r\ncd&nbsp;php-7.2.0</pre><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\"><code style=\"margin: 3px; padding: 2px 4px; background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); border-radius: 3px;\">./configure</code>这一步非常重要，启用需要的扩展模块，并指定php的安装目录等。配置和编译的时间稍长，一般10分钟左右，请耐心等待。</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">./configure&nbsp;--prefix=/usr/local/php&nbsp;--with-config-file-path=/usr/local/php/etc&nbsp;--enable-fpm&nbsp;\\\r\n--with-fpm-user=nginx&nbsp;--with-fpm-group=nginx&nbsp;\\\r\n--enable-mysqlnd&nbsp;--with-mysqli=mysqlnd&nbsp;--with-pdo-mysql=mysqlnd&nbsp;--with-iconv-dir&nbsp;\\\r\n--with-freetype-dir=/usr/local/freetype&nbsp;--with-jpeg-dir&nbsp;--with-png-dir&nbsp;--with-zlib&nbsp;\\\r\n--with-libxml-dir=/usr&nbsp;--enable-xml&nbsp;--disable-rpath&nbsp;--enable-bcmath&nbsp;--enable-shmop&nbsp;--enable-sysvsem&nbsp;\\\r\n--enable-inline-optimization&nbsp;--with-curl&nbsp;--enable-mbregex&nbsp;--enable-mbstring&nbsp;--enable-intl&nbsp;\\\r\n--enable-pcntl&nbsp;--enable-ftp&nbsp;--with-gd&nbsp;--with-openssl&nbsp;--with-mhash&nbsp;--enable-pcntl&nbsp;--enable-sockets&nbsp;\\\r\n--with-xmlrpc&nbsp;--enable-zip&nbsp;--enable-soap&nbsp;--with-gettext&nbsp;--disable-fileinfo&nbsp;--enable-opcache&nbsp;--with-xsl</pre><h4 style=\"margin: 0px; padding: 0px 0px 6px; height: 36px; line-height: 36px; font-size: 18px; border-bottom: 1px solid rgb(238, 238, 238); font-weight: 500;\">在这个一步的时候，可能会抛出以下错误：</h4><p>&nbsp;&nbsp;&nbsp;&nbsp;1. libzip版本过低<br/></p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">configure:&nbsp;error:&nbsp;Please&nbsp;reinstall&nbsp;the&nbsp;libzip&nbsp;distribution\r\n或者\r\nconfigure:&nbsp;error:system&nbsp;libzip&nbsp;must&nbsp;be&nbsp;upgraded&nbsp;to&nbsp;version&nbsp;&gt;=&nbsp;0.11</pre><h4 style=\"margin: 0px; padding: 0px 0px 6px; height: 36px; line-height: 36px; font-size: 18px; border-bottom: 1px solid rgb(238, 238, 238); font-weight: 500;\"><span style=\"font-size: 16px;\">这个时候请参考</span><a href=\"https://www.pengxb.com/article/68\" target=\"_blank\" style=\"font-size: 16px; text-decoration: underline;\"><span style=\"font-size: 16px;\">libzip 版本过低或提示reinstall解决方法</span></a><span style=\"font-size: 16px;\">。</span></h4><p>&nbsp;&nbsp;&nbsp;&nbsp;2. 未定义的类型<code style=\"margin: 3px; padding: 2px 4px; background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); border-radius: 3px;\">off_t</code></p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">configure:&nbsp;error:&nbsp;off_t&nbsp;undefined;&nbsp;check&nbsp;your&nbsp;library&nbsp;configuration</pre><p style=\"text-indent: 0em;\"><span style=\"color: rgb(199, 37, 78); font-family: monospace; background-color: rgb(249, 242, 244);\">off_t</span>&nbsp;类型是在 头文件&nbsp;unistd.h中定义的，在32位系统 编译成&nbsp;<span style=\"color: rgb(199, 37, 78); font-family: monospace; background-color: rgb(249, 242, 244);\">long int</span>&nbsp;，64位系统则编译成&nbsp;<span style=\"color: rgb(199, 37, 78); font-family: monospace; background-color: rgb(249, 242, 244);\">long long int</span>&nbsp;，这里题主的系统应该是 64位的吧，在进行编译的时候 是默认查找64位的动态链接库，但是默认情况下 centos 的动态链接库配置文件&nbsp;<span style=\"color: rgb(199, 37, 78); font-family: monospace; background-color: rgb(249, 242, 244);\">/etc/ld.so.conf</span>&nbsp;里并没有加入搜索路径，这个时候需要将&nbsp;<span style=\"color: rgb(199, 37, 78); font-family: monospace; background-color: rgb(249, 242, 244);\">/usr/local/lib64</span>&nbsp;<span style=\"color: rgb(199, 37, 78); font-family: monospace; background-color: rgb(249, 242, 244);\">/usr/lib64</span>&nbsp;这些针对64位的库文件路径加进去。</p><p style=\"text-align: left; text-indent: 0em;\"><span style=\"text-indent: 32px;\">这个时候只需要俩行命令即可：</span></p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">#&nbsp;添加搜索路径到配置文件\r\necho&nbsp;&#39;/usr/local/lib64\r\n/usr/local/lib\r\n/usr/lib\r\n/usr/lib64&#39;&gt;&gt;/etc/ld.so.conf\r\n\r\n#更新配置\r\nldconfig&nbsp;-v</pre><p>(其中ldconfig -v 是用来更新ld的缓存文件&nbsp;<span style=\"color: rgb(199, 37, 78); font-family: monospace; background-color: rgb(249, 242, 244);\">ld.so.cache</span>&nbsp;&nbsp;, 缓存文件的目的是记录动态编译库文件的路径，加快二进制文件运行时的速度)</p><p>ld默认搜索路径是&nbsp;<span style=\"color: rgb(199, 37, 78); font-family: monospace; background-color: rgb(249, 242, 244);\">/usr/local/lib&nbsp;/usr/lib</span></p><h4 style=\"margin: 0px; padding: 0px 0px 6px; height: 36px; line-height: 36px; font-size: 18px; border-bottom: 1px solid rgb(238, 238, 238); font-weight: 500;\"><strong>安装</strong><br/></h4><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">make&nbsp;&amp;&amp;&nbsp;make&nbsp;install</pre><p style=\"white-space: normal;\"><span style=\"font-size: 16px;\">在make的时候，可能会报如下错误：</span></p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">In&nbsp;file&nbsp;included&nbsp;from&nbsp;/root/download/php-7.2.0/ext/zip/php_zip.h:31:0,\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;/root/download/php-7.2.0/ext/zip/php_zip.c:36:\r\n/usr/local/include/zip.h:59:21:&nbsp;fatal&nbsp;error:&nbsp;zipconf.h:&nbsp;No&nbsp;such&nbsp;file&nbsp;or&nbsp;directory&nbsp;#include&nbsp;&lt;zipconf.h&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^compilation&nbsp;terminated.\r\nmake:&nbsp;***&nbsp;[ext/zip/php_zip.lo]&nbsp;Error&nbsp;1\r\n\r\n#找不到文件，加zipconf.h软连接\r\ncp&nbsp;/usr/local/lib/libzip/include/zipconf.h&nbsp;/usr/local/include/zipconf.h</pre><h4 style=\"margin: 0px; padding: 0px 0px 6px; height: 36px; line-height: 36px; font-size: 18px; border-bottom: 1px solid rgb(238, 238, 238); font-weight: 500;\"><span style=\"font-size: 16px;\">也可能会报如下错误：</span></h4><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">cc:&nbsp;Internal&nbsp;error:&nbsp;Killed&nbsp;(program&nbsp;cc1)\r\n\t...</pre><p style=\"text-indent: 0em; white-space: normal;\">大体上是因为内存不足，临时使用交换分区来解决</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">sudo&nbsp;dd&nbsp;if=/dev/zero&nbsp;of=/swapfile&nbsp;bs=64M&nbsp;count=16\r\nsudo&nbsp;mkswap&nbsp;/swapfile\r\nsudo&nbsp;swapon&nbsp;/swapfile</pre><p style=\"white-space: normal;\">编译完成，可以取消交换分区：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">sudo&nbsp;swapoff&nbsp;/swapfile\r\nsudo&nbsp;rm&nbsp;/swapfile</pre><h4 style=\"margin: 0px; padding: 0px 0px 6px; height: 36px; line-height: 36px; font-size: 18px; border-bottom: 1px solid rgb(238, 238, 238); font-weight: 500;\"><strong>配置</strong><br/></h4><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\">这个时候我们还在解压后的源码目录，我们把php.ini拷贝到安装目录下的配置文件目录：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">cp&nbsp;php.ini-production&nbsp;/usr/local/php/etc/php.ini</pre><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\">将php-fpm控制脚本加入到<code style=\"margin: 3px; padding: 2px 4px; background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); border-radius: 3px;\">/etc/init.d/</code>下，并给予可执行权限：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">cp&nbsp;sapi/fpm/init.d.php-fpm&nbsp;/etc/init.d/php-fpm&nbsp;\r\nchmod&nbsp;+x&nbsp;/etc/init.d/php-fpm</pre><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\">修改配置文件：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">cp&nbsp;/usr/local/php/etc/php-fpm.conf.default&nbsp;/usr/local/php/etc/php-fpm.conf&nbsp;&nbsp;\r\ncp&nbsp;/usr/local/php/etc/php-fpm.d/www.conf.default&nbsp;/usr/local/php/etc/php-fpm.d/www.conf</pre><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\">打开php-fpm.conf文件，加入以下内容：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">vim&nbsp;/usr/local/php/etc/php-fpm.conf\r\n\r\n[global]&nbsp;\r\npid&nbsp;=&nbsp;/usr/local/php/var/run/php-fpm.pid\r\nerror_log&nbsp;=&nbsp;/usr/local/php/var/log/php-fpm.log\r\nlog_level&nbsp;=&nbsp;notice\r\n\r\n#下面配置应该在php-fpm.d目录下的www.conf配置文件中，基本无需修改\r\n[www]\r\nlisten&nbsp;=&nbsp;/tmp/php-cgi.sock\r\nlisten.backlog&nbsp;=&nbsp;-1\r\nlisten.allowed_clients&nbsp;=&nbsp;127.0.0.1\r\nlisten.owner&nbsp;=&nbsp;www\r\nlisten.group&nbsp;=&nbsp;www\r\nlisten.mode&nbsp;=&nbsp;0666\r\nuser&nbsp;=&nbsp;www\r\ngroup&nbsp;=&nbsp;www\r\n;pm&nbsp;=&nbsp;dynamic\r\n;pm.max_children&nbsp;=&nbsp;20\r\n;pm.start_servers&nbsp;=&nbsp;10\r\n;pm.min_spare_servers&nbsp;=&nbsp;10\r\n;pm.max_spare_servers&nbsp;=&nbsp;20\r\nrequest_terminate_timeout&nbsp;=&nbsp;100\r\nrequest_slowlog_timeout&nbsp;=&nbsp;0\r\nslowlog&nbsp;=&nbsp;var/log/slow.log</pre><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\">保存即可，具体各项参数的意义我们会在接下来的文章中专门讲解。</p><h4 style=\"margin: 0px; padding: 0px 0px 6px; height: 36px; line-height: 36px; font-size: 18px; border-bottom: 1px solid rgb(238, 238, 238); font-weight: 500;\"><strong>启动和停止</strong></h4><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\">PHP的启动、停止和重启通过使用php-fpm命令如下：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">/etc/init.d/php-fpm&nbsp;start&nbsp;&nbsp;#启动&nbsp;\r\n/etc/init.d/php-fpm&nbsp;stop&nbsp;&nbsp;&nbsp;#停止&nbsp;\r\n/etc/init.d/php-fpm&nbsp;restart&nbsp;#重启&nbsp;\r\n#开机启动&nbsp;\r\nchkconfig&nbsp;php-fpm&nbsp;on</pre><h4 style=\"margin: 0px; padding: 0px 0px 6px; height: 36px; line-height: 36px; font-size: 18px; border-bottom: 1px solid rgb(238, 238, 238); font-weight: 500;\"><strong>添加环境变量</strong></h4><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\">安装好php后，我们要想在系统中可以直接使用像<code style=\"margin: 3px; padding: 2px 4px; background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); border-radius: 3px;\">php -v</code>这样的命令的话，需要将php加入到环境变量中：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">#&nbsp;一、如果之前未安装过PHP，那就简单如下：&nbsp;&nbsp;&nbsp;\r\nvim&nbsp;/etc/profile\r\n#&nbsp;在文档最后，添加:&nbsp;&nbsp;&nbsp;\r\nexport&nbsp;PATH=&quot;/usr/local/php/bin:$PATH&quot;\r\n#&nbsp;保存，退出，然后运行：&nbsp;&nbsp;&nbsp;\r\nsource&nbsp;/etc/profile&nbsp;\r\n\r\n#&nbsp;二、如果之前已经安装过其它版本的PHP，那么就要先删除原版本的php目录，具体操作方法如下：\r\n#&nbsp;先查找php.ini&nbsp;&nbsp;&nbsp;\r\nfind&nbsp;/&nbsp;-name&nbsp;php.ini\r\n#&nbsp;得出两个ini　　\r\n/usr/local/php/etc/php.ini　　/etc/php.ini　　\r\nphp&nbsp;-i&nbsp;|&nbsp;grep&nbsp;php.ini\r\n#&nbsp;查看PHP加载的是哪个配置文件,这个获取的是系统内的php.ini&nbsp;的位置。不是网页apache加载的php.ini文件查找一下系统里的PHP目录相关的东西　　\r\nfind&nbsp;/&nbsp;-name&nbsp;php\r\n#&nbsp;这个好像是阿里云默认安装的PHP　　\r\n/usr/bin/php&nbsp;-v\r\n#&nbsp;解决方法：删除&nbsp;&nbsp;&nbsp;&nbsp;\r\nrm&nbsp;-rf　/usr/bin/目录下的所有的PHP的东西\r\n#&nbsp;再环境变量里加上要使用的PHP的路径\r\n\r\n#&nbsp;不报错则成功。</pre><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\">然后运行<code style=\"margin: 3px; padding: 2px 4px; background-color: rgb(249, 242, 244); color: rgb(199, 37, 78); border-radius: 3px;\">php -v</code>就可看到php的版本信息了。</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">PHP&nbsp;7.2.0&nbsp;(cli)&nbsp;(built:&nbsp;May&nbsp;&nbsp;5&nbsp;2018&nbsp;17:43:33)&nbsp;(&nbsp;NTS&nbsp;)\r\nCopyright&nbsp;(c)&nbsp;1997-2018&nbsp;The&nbsp;PHP&nbsp;Group\r\nZend&nbsp;Engine&nbsp;v3.2.0,&nbsp;Copyright&nbsp;(c)&nbsp;1998-2018&nbsp;Zend&nbsp;Technologies</pre><h4 style=\"margin: 0px; padding: 0px 0px 6px; height: 36px; line-height: 36px; font-size: 18px; border-bottom: 1px solid rgb(238, 238, 238); font-weight: 500;\"><strong>让Nginx支持PHP</strong></h4><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\">回到我们之前的文章：<a href=\"http://www.pengxb.com/article/46\" target=\"_blank\">CentOS7使用源码编译安装Nginx</a>。Nginx默认不支持PHP，需要配置好PHP引擎相关设置才行。这里我们先直接修改Nginx.conf配置文件。</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">vim&nbsp;/usr/local/nginx/conf/nginx.conf</pre><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\">在server模块添加如下配置：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">location&nbsp;~&nbsp;[^/]\\.php(/|$)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;try_files&nbsp;$uri&nbsp;=404;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;fastcgi_pass&nbsp;&nbsp;unix:/tmp/php-cgi.sock;&nbsp;&nbsp;&nbsp;&nbsp;#这个同&nbsp;php-fpm&nbsp;配置中的&nbsp;listen&nbsp;值保持一致\r\n&nbsp;&nbsp;&nbsp;&nbsp;fastcgi_index&nbsp;index.php;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;include&nbsp;fastcgi_params;&nbsp;#这里有可能是fastcgi.conf，具体根据实际情况确定\r\n}</pre><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\">保存好后，重新启动Nginx使配置生效：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">/usr/local/nginx/sbin/nginx&nbsp;-s&nbsp;reload</pre><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\">然后在站点目录下，新建文件t.php，添加测试php内容：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); overflow-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">&lt;php&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;phpinfo();</pre><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\">浏览器打开网页，如果看到以下内容，那么恭喜你php安装成功！</p><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px; text-align: center;\"><img src=\"https://image.pengxb.com/ueditor/20190802/15647423534.jpg\" title=\"技苑\" alt=\"技苑\" width=\"720\" height=\"330\"/></p><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\"><br/></p><p style=\"margin-top: 1rem; margin-bottom: 1rem; padding: 0px; line-height: 28px; font-size: 16px;\">原文链接：<a href=\"https://www.helloweba.net/server/498.html\" target=\"_blank\">https://www.helloweba.net/server/498.html</a><br/></p><p><br/></p>","keywords":"PHP7,centos,Linux,lnmp","description":"        PHP是一种创建动态交互性站点的强有力的服务器端脚本语言，它是免费高效开源的。本文介绍了在CentOS 7下源码编译安装PHP7.2.0，笔者亲自动手安装将安装步骤记录下来，分享给大家。","is_show":1,"is_delete":0,"is_top":1,"is_original":0,"click":8868,"addtime":"2018-01-05 11:23:01","cid":4,"created_at":"2026-05-10 09:19:08","updated_at":"2026-06-04 15:16:27","deleted_at":null,"category":{"cid":4,"cname":"Linux","keywords":"Linux","description":"","sort":6,"pid":0,"nav":"Linux","created_at":"2026-05-10 09:22:40","updated_at":null,"deleted_at":null},"tags":[{"tid":1,"tname":"PHP","sort":1,"created_at":"2026-05-10 09:24:23","updated_at":null,"deleted_at":null,"pivot":{"aid":47,"tid":1}},{"tid":4,"tname":"Linux","sort":4,"created_at":"2026-05-10 09:24:23","updated_at":null,"deleted_at":null,"pivot":{"aid":47,"tid":4}}],"pics":[{"ap_id":1200,"path":"https://image.pengxb.com/ueditor/20190802/15647423534.jpg","aid":47,"created_at":"2026-05-10 09:20:23","updated_at":null,"deleted_at":null}],"pic_path":"https://image.pengxb.com/ueditor/20190802/15647423534.jpg"},{"aid":45,"title":"JavaScript检查远端图片是否存在","author":"pengxb","content":"<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在平常开发的时候，特别是前台开发，经常会碰到图片加载不出来的情况，这时就会显示一张破图在那，会导致整个页面都变得很丑，那么这个时候，最好的解决办法呢，就是放一张默认图片在那。也就是说，在加载这张图片的时候，我们需要去检测这张图是否真实存在，存在则加载，不存在则显示默认图。那么，如何有效快速的判断图片是否存在呢？下面就是核心代码：<br/></p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 10px; margin-bottom: 10px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">/**\r\n&nbsp;*&nbsp;检查远端图片是否存在\r\n&nbsp;*&nbsp;imgPath&nbsp;&nbsp;图片访问地址\r\n&nbsp;*&nbsp;option&nbsp;&nbsp;&nbsp;&nbsp;回调参数&nbsp;&nbsp;&nbsp;\r\n&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp;\r\nfunction&nbsp;checkImg(imgPath,option){\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(typeof&nbsp;option.totalNum&nbsp;==&nbsp;&#39;undefined&#39;)&nbsp;option.totalNum&nbsp;=&nbsp;1&nbsp;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(option.totalNum&gt;10){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;typeof&nbsp;option.error&nbsp;==&nbsp;&#39;function&#39;&nbsp;&amp;&amp;&nbsp;option.error();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ImgObj=new&nbsp;Image();\r\n&nbsp;&nbsp;&nbsp;&nbsp;ImgObj.src=&nbsp;imgPath;\r\n&nbsp;&nbsp;&nbsp;&nbsp;ImgObj.onload=function(){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;typeof&nbsp;option.success&nbsp;==&nbsp;&#39;function&#39;&nbsp;&amp;&amp;&nbsp;option.success();\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;ImgObj.onerror=function(){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;option.totalNum++;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setTimeout(function(){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;checkImg(imgPath,option);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},1000);\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n}</pre><p>该方法在检测图片不存在，会反复回调请求10次，如若依然请求不到，就会停止请求，调用回调参数里面的error方法并返回，下面就是调用方法的demo：<br/></p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 10px; margin-bottom: 10px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">//检测图片是否存在\r\ncheckImg(imgPath,{\r\n&nbsp;&nbsp;&nbsp;&nbsp;success:function(){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//......\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(this).find(&#39;img&#39;).attr(&#39;src&#39;,imgPath).show();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//......\r\n&nbsp;&nbsp;&nbsp;&nbsp;},\r\n&nbsp;&nbsp;&nbsp;&nbsp;error:function(){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//......\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n});</pre><p>哈哈，核心的就这么多啦！当然，还有进一步升级的方向：检测到图片存在之后，拿到图片的真实宽高比，与显示的div宽高比做对比，然后做计算，根据产品设计来显示图片。不过，这就看你们产品的喜好咯，哈哈~</p><p><br/></p><p><span style=\"font-size: 20px; color: rgb(255, 0, 0);\"><strong>注</strong><strong>：</strong></span>上面这种适用于图片上传，需要&nbsp;<strong>即时显示&nbsp;</strong>的情景，其实，还有一种方法，适用于&nbsp;<strong>页面初始化</strong><strong>渲染&nbsp;</strong>的情景，那就是img标签的&nbsp;<strong>onerror&nbsp;</strong>事件：</p><p style=\"margin-top: 12px; margin-bottom: 0px; padding: 0px; border: 0px; line-height: 21px; font-family: PingFangSC-Regular, Verdana, Arial, 微软雅黑, 宋体; font-size: 14px; white-space: normal;\"><strong>说明：</strong></p><p style=\"margin-top: 12px; margin-bottom: 0px; padding: 0px; border: 0px; line-height: 21px; font-family: PingFangSC-Regular, Verdana, Arial, 微软雅黑, 宋体; font-size: 14px; white-space: normal;\"><strong>onerror 事件会在文档或图像加载过程中发生错误时被触发。</strong></p><p style=\"margin-top: 12px; margin-bottom: 0px; padding: 0px; border: 0px; line-height: 21px; font-family: PingFangSC-Regular, Verdana, Arial, 微软雅黑, 宋体; font-size: 14px; white-space: normal;\"><strong>在装载文档或图像的过程中如果发生了错误，就会调用该事件句柄。</strong></p><p style=\"margin-top: 12px; margin-bottom: 0px; padding: 0px; border: 0px; line-height: 21px; font-family: PingFangSC-Regular, Verdana, Arial, 微软雅黑, 宋体; font-size: 14px; white-space: normal;\"><strong><br/></strong></p><p>至于怎么写，请自行Google，哇哈哈~<br/></p>","keywords":"破图,图片,检测","description":"        在平常开发的时候，特别是前台开发，经常会碰到图片加载不出来的情况，这个时候，就会显示一张破图在那，会导致整个页面都变得很丑，那么这个时候，最好的解决办法就是放一张默认图片在那，也就是说，在加载这张图片的时候，我们需要去检测这张图是否真实存在，存在则加载，不存在则显示默认图。那么，如何有效快速的判断图片是","is_show":1,"is_delete":0,"is_top":1,"is_original":1,"click":6877,"addtime":"2017-12-22 10:27:43","cid":2,"created_at":"2026-05-10 09:19:08","updated_at":"2026-06-04 14:32:17","deleted_at":null,"category":{"cid":2,"cname":"JavaScript","keywords":"JavaScript","description":"","sort":4,"pid":0,"nav":"JavaScript","created_at":"2026-05-10 09:22:40","updated_at":null,"deleted_at":null},"tags":[{"tid":2,"tname":"JavaScript","sort":2,"created_at":"2026-05-10 09:24:23","updated_at":null,"deleted_at":null,"pivot":{"aid":45,"tid":2}}],"pics":[],"pic_path":"https://image.pengxb.com/gnu.png"},{"aid":42,"title":"PhpStorm 快捷键大全","author":"pengxb","content":"<p>&nbsp;&nbsp;&nbsp;&nbsp;PhpStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具，PhpStorm可随时帮助用户对其编码进行调整，运行单元测试或者提供可视化debug功能。Phpstrom的一款名为Magicento的插件对快速创建Magento插件十分有用。<br/></p><p><strong>常用快捷键&nbsp;</strong></p><p>&nbsp;&nbsp;&nbsp;&nbsp;设置快捷键：File -&gt; Settings -&gt; IDE Settings&nbsp;-&gt; Keymap -&gt; 选择“Eclipse” -&gt; 然后“Copy”一份 -&gt; 再个性化设置（自己习惯的）快捷键。</p><p>常用快捷键(keymaps:Default情况下)<br/></p><p>Esc键编辑器（从工具窗口）<br/>F1&nbsp;&nbsp;&nbsp;帮助 千万别按,很卡!<br/>F2（Shift+F2）&nbsp; 下/上高亮错误或警告快速定位<br/>F3&nbsp;&nbsp;&nbsp;向下查找关键字出现位置<br/>F4&nbsp;&nbsp;&nbsp;查找变量来源<br/>F5 &nbsp; 复制文件/文件夹<br/>F6 &nbsp; 移动<br/></p><p><strong>注意：部分快捷键，必须在没有更改快捷键的情况下才可以使用。加粗显示的，是我经常用的快捷键(￣▽￣)&quot;</strong></p><p><strong>查询快捷键</strong><br/>CTRL+N&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查找类<br/>CTRL+SHIFT+N&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查找文件，打开工程中的文件(类似于eclipse中的ctrl+shift+R)，目的是打开当前工程下任意目录的文件<br/>CTRL+SHIFT+ALT+N&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查找类中的方法或变量(JS)<br/>CIRL+B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;找变量的来源，跳到变量申明处<br/>CTRL+ALT+B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;找所有的子类<br/>CTRL+SHIFT+B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;找变量的 类<br/><strong>CTRL+G</strong>&nbsp;&nbsp;&nbsp;定位行，跳转行<br/>CTRL+F&nbsp;&nbsp;&nbsp;在当前窗口查找文本<br/>CTRL+SHIFT+F&nbsp;&nbsp;在指定路径查找文本<br/>CTRL+R &nbsp; 当前窗口替换文本<br/>CTRL+SHIFT+R&nbsp;&nbsp;在指定路径替换文本<br/>ALT+SHIFT+C&nbsp;&nbsp;查找修改的文件，最近变更历史<br/>CTRL+E&nbsp;&nbsp;&nbsp;最近打开的文件<br/>F3 &nbsp; 查找下一个<br/>SHIFT+F3&nbsp;&nbsp;查找上一个<br/>F4&nbsp;&nbsp;&nbsp;查找变量来源<br/>CTRL+ALT+F7&nbsp;&nbsp;选 中的字符 查找工程出现的地方<br/>ALT+F7 直接查询选中的字符<br/>Ctrl+F7 &nbsp;文件中查询选中字符<br/></p><p><strong>自动代码</strong><br/>ALT+回车&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;导入包,自动修正<br/><strong>CTRL+ALT+L</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格式化代码<br/>CTRL+ALT+I&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;自动缩进<br/>CTRL+ALT+O&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;优化导入的类和包<br/>CTRL+E &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最近更改的文件/代码<br/>CTRL+SHIFT+SPACE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;切换窗口<br/>CTRL+SPACE空格 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;代码自动完成，代码提示,一般与输入法冲突<br/>CTRL+ALT+SPACE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;类 名或接口名提示（与系统冲突）<br/>CTRL+P&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;方法参数提示，显示默认参数<br/>CTRL+J&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;自动代码提示，自动补全<br/>CTRL+ALT+T&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;把选中的代码放在 TRY{} IF{} ELSE{} 里<br/>ALT+INSERT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;生成代码(如GET,SET方法,构造函数等)<br/></p><p><strong>复制快捷方式</strong><br/>F5 &nbsp; 复制文件/文件夹<br/><strong>CTRL+C</strong> &nbsp; 复制<br/><strong>CTRL+V </strong>&nbsp; 粘贴<br/><strong>CTRL+X</strong>&nbsp;&nbsp;&nbsp;剪 切,删除行<br/>CTRL+D&nbsp;&nbsp;&nbsp;复制行<br/>Ctrl + Y &nbsp; &nbsp;删除行插入符号<br/>CTRL+SHIFT+V&nbsp;&nbsp;可以复制多个文本&nbsp;</p><p><strong>高亮</strong><br/>CTRL+F&nbsp;&nbsp;&nbsp;选中的文字,高亮显示 上下跳到下一个或者上一个<br/>F2（Shift+F2） 高亮错误或警告快速定位<br/>SHIFT+F2&nbsp;&nbsp;高亮错误或警告快速定位<br/>CTRL+SHIFT+F7&nbsp;&nbsp;高亮显示多个关键字.&nbsp;<br/><strong>本地历史VCS/SVN</strong><br/>Alt +反引号（&#39;） 快速弹出VCS菜单<br/><strong>Ctrl + K</strong> &nbsp; &nbsp; &nbsp; &nbsp; 提交项目VCS<br/>Ctrl + T &nbsp; &nbsp; &nbsp; &nbsp; 更新项目从VCS<br/>Alt + Shift + C &nbsp;查看最近发生的变化<br/></p><p><strong>其他快捷方式</strong><br/><strong>CTRL+Z</strong> &nbsp; &nbsp; &nbsp; &nbsp;倒退(代码后悔)<br/><strong>CTRL+SHIFT+Z&nbsp;</strong>&nbsp;向前<br/>CTRL+H &nbsp; &nbsp; &nbsp; &nbsp;显 示类结构图<br/>Ctrl +F12 &nbsp; &nbsp; &nbsp;文件结构弹出<br/>Ctrl+Shift+H &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;方法的层次结构<br/>Ctrl+Alt+H &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;呼叫层次<br/>CTRL+Q&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;显示代码注释<br/>CTRL+W&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;选中代码，连续按会 有其他效果<br/>Ctrl+Shift+W &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;减少当前选择到以前的状态<br/>CTRL+B &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;转到声明，快速打开光标处的类或方法说明注释(CTRL + 鼠标单击 也可以)<br/>CTRL+O &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;魔术方法<br/><strong>CTRL+/</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注释//取消注释 &nbsp;<br/><strong>CTRL+SHIFT+/&nbsp;</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注释/*...*/<br/>CTRL+ [] &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;光标移动到 {}[]开头或结尾位置<br/>CTRL+SHIFT+[] &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;选中块代码，可以快速复制<br/>ctrl + &#39;-/+&#39;:&nbsp; &nbsp; 可以折叠项目中的任何代码块,包括htm中的任意nodetype=3的元素，function,或对象直接量等等。它不是选中折叠，而是自动识别折叠。</p><p>ctrl + &#39;.&#39;: &nbsp;&nbsp;&nbsp;&nbsp;折叠选中的代码的代码<br/><br/>Ctrl+Shift+U &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;选中的字符大小写转换<br/><strong>Ctrl+Shift+i</strong> &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;快速查看变量或方法定义源<br/>CTRL+ALT+F12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;资源管理器打开文件夹，跳转至当前文件在磁盘上的位置<br/>ALT+F1 &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;选择当前文件或菜单中的任何视图工具栏<br/>SHIFT+ALT+INSERT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;竖编辑模式<br/><br/>CTRL+ALT ←/→&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回上次编辑的位置<br/>ALT+ ←/→&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;切换代码视图，标签切换<br/>ALT+ ↑/↓&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在方法间快速移动定位<br/>alt + &#39;7&#39;: &nbsp;&nbsp;&nbsp;&nbsp;显示当前的类/函数结构。类似于eclipse中的outline的效果。试验了一下，要比aptana的给力一些，但还是不能完全显示prototype下面的方法名。<br/>SHIFT+F6 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;重命名,重构 当前区域内变量重命名/重构<br/>不但可以重命名文件名，而且可以命名函数名，函数名可以搜索引用的文件，还可以重命名局部变量。还可以重命名标签名。在sublime text中有个类似的快捷键：ctrl+shift+d。<br/><br/>ctrl+shift+enter&nbsp;&nbsp;&nbsp;&nbsp;(智能完善代码 如 if())&nbsp;<br/>ctrl+shift+up/down&nbsp;&nbsp;&nbsp;&nbsp;(移动行、合并选中行，代码选中区域 向上/下移动)&nbsp;<br/>CTRL+UP/DOWN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;光标跳转到编辑器显示区第一行或最后一行下<br/>ESC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;光标返回编辑框<br/>SHIFT+ESC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;光标返回编辑框,关闭无用的窗口<br/>CTRL+F4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关闭当前的编辑器或选项卡<br/><br/>Ctrl + Alt + V&nbsp;&nbsp;&nbsp;&nbsp;引入变量<br/>Ctrl + Alt + F &nbsp;&nbsp;&nbsp;&nbsp;类似引入变量<br/>Ctrl + Alt + C&nbsp;&nbsp;&nbsp;&nbsp;引入常量<br/><br/>Ctrl + Tab &nbsp; 键切换选项卡和工具窗口<br/>Ctrl + Shift + A &nbsp;查找快捷键<br/>Alt + ＃[0-9] &nbsp; &nbsp; &nbsp;打开相应的工具窗口<br/>Ctrl + Shift + F12 切换最大化编辑器<br/>Alt + Shift + F &nbsp; &nbsp;添加到收藏夹<br/>Alt + Shift + I &nbsp; &nbsp;检查当前文件与当前的配置文件<br/>Ctrl +反引号（`） &nbsp;快速切换目前的配色/代码方案/快捷键方案/界面方案<br/>Ctrl + Alt + S &nbsp; &nbsp; 打开设置对话框（与QQ冲突）<br/><br/><br/><strong>运行</strong><br/>Alt + Shift + F10 &nbsp;选择的配置和运行<br/>Alt + Shift + F9 &nbsp; 选择配置和调试<br/>Shift + F10 &nbsp; &nbsp; &nbsp; &nbsp;运行<br/>Shift + F9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;调试<br/>Ctrl + Shift + F10&nbsp;&nbsp;&nbsp;&nbsp;运行范围内配置编辑器<br/>Ctrl + Shift + X&nbsp;&nbsp;&nbsp;&nbsp;运行命令行<br/><br/><br/><strong>调试</strong><br/>F8步过<br/>F7步入<br/>Shift + F7&nbsp;&nbsp;&nbsp;&nbsp;智能进入<br/>Shift + F8&nbsp;&nbsp;&nbsp;&nbsp;步骤<br/>ALT + F9&nbsp;&nbsp;&nbsp;&nbsp;运行到光标<br/>Alt + F8&nbsp;&nbsp;&nbsp;&nbsp;计算表达式<br/>F9&nbsp;&nbsp;&nbsp;&nbsp;恢复程序<br/>Ctrl + F8&nbsp;&nbsp;&nbsp;&nbsp;切换断点<br/>Ctrl + Shift + F8&nbsp;&nbsp;&nbsp;&nbsp;查看断点<br/><br/><br/><strong>导航</strong><br/>Shift + Esc键&nbsp;&nbsp;&nbsp;&nbsp;隐藏活动或最后一个激活的窗口<br/>Ctrl + Shift + F4&nbsp;&nbsp;&nbsp;&nbsp;关闭活动运行/消息/ / ...选项卡<br/>Ctrl + Shift + Backspace键&nbsp;&nbsp;&nbsp;&nbsp;导航到最后编辑的位置<br/>Ctrl + Alt+B &nbsp; 到实施（S）<br/>Ctrl + Shift+I &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;打开快速定义查询<br/>Ctrl + U &nbsp; &nbsp; &nbsp; &nbsp;转到super-method/super-class<br/>Alt + Home &nbsp; &nbsp; &nbsp;组合显示导航栏<br/><br/><br/><strong>书签</strong><br/>Ctrl + F11&nbsp;&nbsp;&nbsp;&nbsp;切换书签助记符<br/>Ctrl +＃[0-9]&nbsp;&nbsp;&nbsp;&nbsp;转到编号书签<br/>Shift + F11&nbsp;&nbsp;&nbsp;&nbsp;显示书签<br/><br/><br/><strong>编辑</strong><br/>Ctrl + Q &nbsp; &nbsp; &nbsp;快速文档查询<br/>ALT + INSERT &nbsp;生成的代码...器（getter，setter方法，构造函数）<br/>Ctrl + O &nbsp; &nbsp; &nbsp;覆盖方法<br/>Ctrl + I &nbsp; &nbsp; &nbsp;实现方法<br/><br/><br/>Alt + Enter &nbsp; 显示意图的行动和快速修复<br/>Shift + Tab &nbsp; 键缩进/取消缩进选中的行<br/><br/><br/>Ctrl + Shift + J &nbsp;智能线连接（仅适用于HTML和JavaScript）<br/>Ctrl + Enter &nbsp; &nbsp; &nbsp;智能线分割（HTML和JavaScript）<br/>Shift + Enter &nbsp; &nbsp; 开始新的生产线<br/><br/><br/>Ctrl + Delete &nbsp; 删除字（word）<br/>Ctrl + Backspace删除字开始<br/>Ctrl +小键盘+ / - 展开/折叠代码块<br/>Ctrl + Shift +小键盘+展开全部<br/>Ctrl + Shift +数字键盘关闭全部</p><p><strong><br/></strong><br/></p>","keywords":"PhpStorm,快捷键","description":"        PhpStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具，PhpStorm可随时帮助用户对其编码进行调整，运行单元测试或者提供可视化debug功能。Phpstrom的一款名为Magicento的插件对快速创建Magento插件十分有用。常用快捷键 设置快捷键：Fil","is_show":1,"is_delete":0,"is_top":1,"is_original":1,"click":4872,"addtime":"2017-12-08 14:23:04","cid":5,"created_at":"2026-05-10 09:19:08","updated_at":"2026-06-04 16:45:06","deleted_at":null,"category":{"cid":5,"cname":"工具","keywords":"Tool","description":"","sort":10,"pid":0,"nav":"Tool","created_at":"2026-05-10 09:22:40","updated_at":null,"deleted_at":null},"tags":[{"tid":8,"tname":"工具","sort":8,"created_at":"2026-05-10 09:24:23","updated_at":null,"deleted_at":null,"pivot":{"aid":42,"tid":8}}],"pics":[],"pic_path":"https://image.pengxb.com/gnu.png"},{"aid":40,"title":"面试题：输入某个字符，相当于退格键(删除)","author":"pengxb","content":"<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;输入某个字符，相当于退格键(删除)，输入一个删除一个，输入一个删除一个。。。</p><p>行了，废话不多说了，直接上代码：</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">#&nbsp;方法一：这是我原本的思路，运用了递归思想\r\nfunction&nbsp;filterStr($str,$filter){\r\n&nbsp;&nbsp;&nbsp;&nbsp;$long&nbsp;=&nbsp;strlen($str);\r\n&nbsp;&nbsp;&nbsp;&nbsp;$u&nbsp;=&nbsp;array();\r\n&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;($i=1;&nbsp;$i&nbsp;&lt;&nbsp;$long;&nbsp;$i++)&nbsp;{&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($str[$i]&nbsp;==&nbsp;$filter)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$u[]&nbsp;=&nbsp;$i;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!empty($u))&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*刚开始这里用的是explode，实际操作发现不行，查手册才知道是因为explode是用一个字符串去拆分\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;另外一个字符串，分割字符是必填的；\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;而str_split才是真正的拆分字符串，直接把字符串进行分割，第二个参数是分割长度，默认是1；*/\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$arr&nbsp;=&nbsp;str_split($str);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;($u&nbsp;as&nbsp;$key)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unset($arr[$key]);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsetPrev($key-1,$arr);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;implode(&#39;&#39;,&nbsp;$arr);\r\n}\r\n#&nbsp;这里用到了引用传值\r\nfunction&nbsp;unsetPrev($k,&nbsp;&amp;$arr){\r\n&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($k&nbsp;&gt;=&nbsp;0)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(isset($arr[$k]))&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unset($arr[$k]);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsetPrev($k-1,$arr);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$arr;\r\n}\r\n\r\n#&nbsp;方法二：这是经大佬点拨，运用了堆栈思想--&gt;后进先出\r\nfunction&nbsp;filterStr2($str,$filter){\r\n&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(is_string($str)&nbsp;&amp;&amp;&nbsp;!empty($str))&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$arr&nbsp;=&nbsp;str_split($str);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$newArr&nbsp;=&nbsp;array();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$filterArr&nbsp;=&nbsp;array();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;($arr&nbsp;as&nbsp;$key&nbsp;=&gt;&nbsp;$value)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($value&nbsp;==&nbsp;$filter){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array_pop($newArr);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array_push($newArr,$value);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;implode(&#39;&#39;,&nbsp;$newArr);\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n}\r\n\r\n$url&nbsp;=&nbsp;&#39;https://pengxb.com/&#39;;\r\necho&nbsp;$url.&#39;&lt;br&nbsp;/&gt;&#39;;\r\nprint_r(filterStr($url,&#39;m&#39;));\r\necho&nbsp;&nbsp;&#39;&lt;br&nbsp;/&gt;&#39;;\r\nprint_r(filterStr2($url,&#39;m&#39;));</pre><p>结果</p><pre style=\"box-sizing: border-box; overflow: auto; font-family: &quot;courier new&quot;; font-size: 12px; padding: 10px 20px; margin-top: 20px; margin-bottom: 20px; line-height: 20px; color: rgb(248, 248, 212); word-wrap: break-word; background-color: rgb(74, 74, 74); border: none; border-radius: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal;\">https://pengxb.com/\r\nhttps://pengxb.c/\r\nhttps://pengxb.c/</pre><p>得到的结果是一样的，只是同样的结果，这代码量明显不一样/(ㄒoㄒ)/~~<br/></p><p>写完之后发现自己有三个不足：</p><p>&nbsp;&nbsp;&nbsp;&nbsp;一、explode用多了，泪奔中::&gt;_&lt;::...<br/></p><p>&nbsp;&nbsp;&nbsp;&nbsp;二、引用传值还是不太熟啊，第一次用错了，在调用的时候，是不需要带&amp;符号的，丢。。。&nbsp;&nbsp;&nbsp;&nbsp;<br/></p><p>&nbsp; &nbsp; 三、要好好了解了解堆栈思想了，嗯。。。</p>","keywords":"str_split,面试题","description":"        输入某个字符，相当于退格键(删除)，输入一个删除一个，输入一个删除一个。。。行了，废话不多说了，直接上代码：function filterStr($str,$filter){\r\n    $long = strlen($str);\r\n&amp;","is_show":1,"is_delete":0,"is_top":1,"is_original":1,"click":5619,"addtime":"2017-11-28 16:31:46","cid":2,"created_at":"2026-05-10 09:19:08","updated_at":"2026-06-04 14:32:19","deleted_at":null,"category":{"cid":2,"cname":"JavaScript","keywords":"JavaScript","description":"","sort":4,"pid":0,"nav":"JavaScript","created_at":"2026-05-10 09:22:40","updated_at":null,"deleted_at":null},"tags":[{"tid":2,"tname":"JavaScript","sort":2,"created_at":"2026-05-10 09:24:23","updated_at":null,"deleted_at":null,"pivot":{"aid":40,"tid":2}}],"pics":[],"pic_path":"https://image.pengxb.com/gnu.png"}],"page":1,"cid":"index"}}