{"id":15938,"date":"2026-01-02T11:10:23","date_gmt":"2026-01-02T03:10:23","guid":{"rendered":"https:\/\/www.aiersheng.cc\/?p=15938"},"modified":"2026-01-02T11:10:23","modified_gmt":"2026-01-02T03:10:23","slug":"%e7%ac%94%e8%af%95%e9%a2%98php%e7%bb%83%e4%b9%a0%e7%ac%94%e8%af%95%e9%a2%98%ef%bc%88%e4%b8%80%ef%bc%89","status":"publish","type":"post","link":"https:\/\/www.aiersheng.cc\/?p=15938","title":{"rendered":"(\u7b14\u8bd5\u9898)php\u7ec3\u4e60\u7b14\u8bd5\u9898\uff08\u4e00\uff09"},"content":{"rendered":"<p>\u7b80\u7b54\u9898\u4e0e\u7f16\u7a0b\u9898\u5b8c\u6574\u4f18\u5316\u89e3\u7b54<br \/>\n\u4e00\u3001\u7b80\u7b54\u9898\uff08\u8865\u5145\u5b8c\u5584 + \u4fee\u6b63\u7ec6\u8282\uff09<br \/>\n1. \u5e38\u7528 Linux \u547d\u4ee4\u53ca\u529f\u80fd\uff08\u5df2\u5b8c\u5584\uff0c\u8865\u5145\u8bf4\u660e\uff09<br \/>\n\u547d\u4ee4 \u6838\u5fc3\u529f\u80fd \u8865\u5145\u8bf4\u660e<br \/>\ncat \u663e\u793a\u6587\u4ef6\u5185\u5bb9 \u652f\u6301\u591a\u6587\u4ef6\u62fc\u63a5\u663e\u793a\uff08cat file1 file2\uff09\u3001\u521b\u5efa\u65b0\u6587\u4ef6\uff08cat &gt; newfile\uff09<br \/>\ncd \u6539\u53d8\u76ee\u5f55\u8def\u5f84 cd ~ \u56de\u5230\u5bb6\u76ee\u5f55\u3001cd .. \u56de\u5230\u4e0a\u7ea7\u76ee\u5f55\u3001cd \/ \u56de\u5230\u6839\u76ee\u5f55<br \/>\ncp \u590d\u5236\u6587\u4ef6 \/ \u76ee\u5f55 \u590d\u5236\u76ee\u5f55\u9700\u52a0 -r \u53c2\u6570\uff08cp -r dir1 dir2\uff09\uff0ccp -p \u4fdd\u7559\u6587\u4ef6\u5c5e\u6027<br \/>\nfind \u67e5\u627e\u6587\u4ef6 \/ \u76ee\u5f55 \u6309\u540d\u79f0\u67e5\u627e\uff1afind \/ -name &#8220;test.txt&#8221;\uff0c\u6309\u7c7b\u578b\u67e5\u627e\uff1afind \/ -type f\uff08\u6587\u4ef6\uff09<br \/>\ngrep \u641c\u7d22\u3001\u8fc7\u6ee4\u4fe1\u606f \u5ffd\u7565\u5927\u5c0f\u5199\uff1agrep -i &#8220;php&#8221; file\uff0c\u663e\u793a\u884c\u53f7\uff1agrep -n &#8220;php&#8221; file<br \/>\nls \u5217\u51fa\u76ee\u5f55\u4fe1\u606f ls -l \u8be6\u7ec6\u5217\u8868\uff08\u6743\u9650 \/ \u5927\u5c0f \/ \u65f6\u95f4\uff09\u3001ls -a \u663e\u793a\u9690\u85cf\u6587\u4ef6\uff08\u4ee5.\u5f00\u5934\uff09<br \/>\nmore \u5206\u9875\u663e\u793a\u6587\u4ef6\u5185\u5bb9 \u5411\u4e0b\u7ffb\u9875\u6309\u7a7a\u683c\uff0c\u9000\u51fa\u6309q\uff0c\u4ec5\u652f\u6301\u5411\u4e0b\u6eda\u52a8<br \/>\nrm \u5220\u9664\u6587\u4ef6\u6216\u76ee\u5f55 \u5220\u9664\u76ee\u5f55\u9700\u52a0 -r\uff08\u9012\u5f52\uff09\uff0c\u5f3a\u5236\u5220\u9664\u52a0 -f\uff08rm -rf dir\uff0c\u8c28\u614e\u4f7f\u7528\uff09<br \/>\nvi \u8c03\u7528 vi \u6587\u672c\u7f16\u8f91\u5668 \u5206\u4e3a\u7f16\u8f91\u6a21\u5f0f\uff08\u6309i\u8fdb\u5165\uff09\u3001\u547d\u4ee4\u6a21\u5f0f\uff08\u6309Esc\u9000\u51fa\u7f16\u8f91\u6a21\u5f0f\uff09\uff0c:wq \u4fdd\u5b58\u9000\u51fa<br \/>\nwho \u663e\u793a\u767b\u5f55\u7528\u6237\u4fe1\u606f \u67e5\u770b\u5f53\u524d\u7cfb\u7edf\u767b\u5f55\u7684\u7528\u6237\u540d\u79f0\u3001\u767b\u5f55\u7ec8\u7aef\u3001\u767b\u5f55\u65f6\u95f4<br \/>\n2. HTTP\/1.0 \u72b6\u6001\u7801\u542b\u4e49\uff08\u4fee\u6b63\u9519\u8bef\uff1a503 \u975e\u9898\u76ee\u8981\u6c42\uff0c\u8865\u5145\u7ec6\u8282\uff09<br \/>\n\u72b6\u6001\u7801 \u542b\u4e49 \u8865\u5145\u8bf4\u660e<br \/>\n200 \u6210\u529f \u670d\u52a1\u5668\u6b63\u5e38\u5904\u7406\u8bf7\u6c42\uff0c\u5e76\u8fd4\u56de\u8bf7\u6c42\u7684\u7f51\u9875 \/ \u8d44\u6e90<br \/>\n301 \u6c38\u4e45\u79fb\u52a8 \u8bf7\u6c42\u7684\u8d44\u6e90\u5df2\u6c38\u4e45\u8fc1\u79fb\u5230\u65b0 URL\uff0c\u6d4f\u89c8\u5668\u4f1a\u81ea\u52a8\u7f13\u5b58\u65b0\u5730\u5740<br \/>\n304 \u672a\u4fee\u6539 \u8d44\u6e90\u81ea\u4e0a\u6b21\u8bf7\u6c42\u540e\u672a\u53d1\u751f\u53d8\u5316\uff0c\u670d\u52a1\u5668\u4e0d\u8fd4\u56de\u8d44\u6e90\u5185\u5bb9\uff0c\u51cf\u5c11\u5e26\u5bbd\u6d88\u8017<br \/>\n403 \u7981\u6b62\u8bbf\u95ee \u670d\u52a1\u5668\u8bc6\u522b\u4e86\u5ba2\u6237\u7aef\u8eab\u4efd\uff0c\u4f46\u62d2\u7edd\u63d0\u4f9b\u8bf7\u6c42\u8d44\u6e90\uff08\u6743\u9650\u4e0d\u8db3\u7b49\uff09<br \/>\n404 \u672a\u627e\u5230 \u670d\u52a1\u5668\u65e0\u6cd5\u627e\u5230\u8bf7\u6c42\u7684\u7f51\u9875 \/ \u8d44\u6e90\uff08URL \u9519\u8bef\u6216\u8d44\u6e90\u5df2\u5220\u9664\uff09<br \/>\n500 \u670d\u52a1\u5668\u5185\u90e8\u9519\u8bef \u670d\u52a1\u5668\u5728\u5904\u7406\u8bf7\u6c42\u65f6\u53d1\u751f\u672a\u77e5\u5f02\u5e38\uff08\u4ee3\u7801\u9519\u8bef\u3001\u914d\u7f6e\u9519\u8bef\u7b49\uff09<br \/>\n3. HTML \u6807\u7b7e\u542b\u4e49<br \/>\n\u6807\u7b7e \u6838\u5fc3\u542b\u4e49 \u8865\u5145\u8bf4\u660e<br \/>\ninput \u8868\u5355\u8f93\u5165\u63a7\u4ef6 \u5e38\u7528type\u5c5e\u6027\uff1atext\uff08\u6587\u672c\u6846\uff09\u3001button\uff08\u6309\u94ae\uff09\u3001radio\uff08\u5355\u9009\u6846\uff09\u3001checkbox\uff08\u590d\u9009\u6846\uff09\u3001file\uff08\u6587\u4ef6\u4e0a\u4f20\uff09<br \/>\nform \u8868\u5355\u5bb9\u5668 \u7528\u4e8e\u5305\u88f9\u8868\u5355\u63a7\u4ef6\uff0c\u901a\u8fc7action\u6307\u5b9a\u8868\u5355\u63d0\u4ea4\u5730\u5740\uff0cmethod\u6307\u5b9a\u63d0\u4ea4\u65b9\u5f0f\uff08GET\/POST\uff09<br \/>\nscript \u811a\u672c\u5bb9\u5668 \u7528\u4e8e\u5d4c\u5165 JavaScript \u4ee3\u7801\u6216\u5f15\u5165\u5916\u90e8 JS \u6587\u4ef6\uff08src\u5c5e\u6027\u6307\u5b9a\u5916\u90e8\u6587\u4ef6\u8def\u5f84\uff09<br \/>\nstyle \u6837\u5f0f\u5bb9\u5668 \u7528\u4e8e\u5d4c\u5165 CSS \u6837\u5f0f\u4ee3\u7801\uff0c\u5b9a\u4e49\u9875\u9762\u5143\u7d20\u7684\u5916\u89c2\u6837\u5f0f\uff08\u53ef\u901a\u8fc7type=&#8221;text\/css&#8221;\u6307\u5b9a\u7c7b\u578b\uff09<br \/>\ntable \u8868\u683c\u5bb9\u5668 \u7528\u4e8e\u521b\u5efa HTML \u8868\u683c\uff0c\u9700\u914d\u5408tr\uff08\u8868\u683c\u884c\uff09\u3001td\uff08\u8868\u683c\u5355\u5143\u683c\uff09\u3001th\uff08\u8868\u5934\u5355\u5143\u683c\uff09\u4f7f\u7528<br \/>\nb \u7c97\u4f53\u6587\u672c\u6807\u7b7e \u7528\u4e8e\u5c06\u5305\u88f9\u7684\u6587\u672c\u8bbe\u7f6e\u4e3a\u7c97\u4f53\uff08\u7eaf\u6837\u5f0f\u6807\u7b7e\uff0c\u63a8\u8350\u4f7f\u7528 CSSfont-weight: bold\u66ff\u4ee3\uff09<br \/>\nimg \u56fe\u7247\u5d4c\u5165\u6807\u7b7e \u7528\u4e8e\u5728\u9875\u9762\u4e2d\u63d2\u5165\u56fe\u7247\uff0c\u5fc5\u987b\u6307\u5b9asrc\uff08\u56fe\u7247\u8def\u5f84\uff09\u548calt\uff08\u56fe\u7247\u66ff\u4ee3\u6587\u672c\uff0c\u5f02\u5e38\u65f6\u663e\u793a\uff09<br \/>\n4. public\u3001protected\u3001private \u8bbf\u95ee\u63a7\u5236\u6a21\u5f0f\u533a\u522b\uff08\u8865\u5145\u5b8c\u5584\u7ec6\u8282\uff09<br \/>\n\u8fd9\u4e09\u79cd\u662f\u9762\u5411\u5bf9\u8c61\u8bed\u8a00\u4e2d\u7c7b\u6210\u5458\uff08\u5c5e\u6027 \/ \u65b9\u6cd5\uff09\u7684\u8bbf\u95ee\u63a7\u5236\u4fee\u9970\u7b26\uff0c\u6838\u5fc3\u533a\u522b\u5982\u4e0b\uff1a<br \/>\n\u4fee\u9970\u7b26 \u7c7b\u5185\u90e8\u8bbf\u95ee \u7c7b\u5916\u90e8\u8bbf\u95ee \u5b50\u7c7b\u7ee7\u627f\u8bbf\u95ee \u8de8\u7c7b\u8bbf\u95ee\uff08\u540c\u547d\u540d\u7a7a\u95f4\uff09<br \/>\npublic \u5141\u8bb8 \u5141\u8bb8 \u5141\u8bb8\uff08\u5b50\u7c7b\u53ef\u76f4\u63a5\u8bbf\u95ee \/ \u91cd\u5199\uff09 \u5141\u8bb8<br \/>\nprotected \u5141\u8bb8 \u7981\u6b62 \u5141\u8bb8\uff08\u5b50\u7c7b\u53ef\u76f4\u63a5\u8bbf\u95ee \/ \u91cd\u5199\uff09 \u7981\u6b62<br \/>\nprivate \u5141\u8bb8 \u7981\u6b62 \u7981\u6b62\uff08\u5b50\u7c7b\u65e0\u6cd5\u7ee7\u627f\uff0c\u4ec5\u7236\u7c7b\u81ea\u8eab\u53ef\u8bbf\u95ee\uff09 \u7981\u6b62<br \/>\n\u8865\u5145\uff1aprivate\u4fee\u9970\u7684\u6210\u5458\u4ec5\u5bf9\u5f53\u524d\u7c7b\u53ef\u89c1\uff0c\u5373\u4f7f\u5b50\u7c7b\u7ee7\u627f\u4e86\u8be5\u7236\u7c7b\uff0c\u4e5f\u65e0\u6cd5\u8bbf\u95ee\u7236\u7c7b\u7684private\u6210\u5458\uff1bprotected\u4fee\u9970\u7684\u6210\u5458\u662f \u201c\u7236\u5b50\u53ef\u89c1\uff0c\u5916\u90e8\u4e0d\u53ef\u89c1\u201d\uff1bpublic\u4fee\u9970\u7684\u6210\u5458\u662f \u201c\u5168\u5c40\u53ef\u89c1\u201d\u3002<br \/>\n5. PHP Session \u8fd0\u884c\u673a\u5236\u53ca\u5927\u578b\u7f51\u7ad9\u6ce8\u610f\u4e8b\u9879\uff08\u8865\u5145\u5b8c\u5584\uff09<br \/>\n\uff081\uff09\u8fd0\u884c\u673a\u5236<br \/>\n\u5f53 PHP \u811a\u672c\u9996\u6b21\u8c03\u7528session_start()\u65f6\uff0c\u670d\u52a1\u5668\u4f1a\u751f\u6210\u4e00\u4e2a\u552f\u4e00\u7684session_id\uff0832 \u4f4d\u5b57\u7b26\u4e32\uff09\uff0c\u540c\u65f6\u521b\u5efa\u4e00\u4e2a\u5bf9\u5e94\u7684 session \u6587\u4ef6\uff08\u9ed8\u8ba4\u5b58\u50a8\u5728\u670d\u52a1\u5668\u672c\u5730\u76ee\u5f55\uff0c\u7531session.save_path\u6307\u5b9a\uff09\uff1b<br \/>\n\u670d\u52a1\u5668\u5c06session_id\u901a\u8fc7 HTTP \u54cd\u5e94\u5934\uff08Set-Cookie\uff09\u53d1\u9001\u7ed9\u5ba2\u6237\u7aef\uff0c\u5ba2\u6237\u7aef\u6d4f\u89c8\u5668\u4f1a\u5c06session_id\u5b58\u50a8\u5728\u672c\u5730 Cookie \u4e2d\uff08\u9ed8\u8ba4 Cookie \u540d\uff1aPHPSESSID\uff09\uff1b<br \/>\n\u5f53\u5ba2\u6237\u7aef\u518d\u6b21\u53d1\u8d77\u8bf7\u6c42\u65f6\uff0c\u4f1a\u81ea\u52a8\u5c06 Cookie \u4e2d\u7684session_id\u901a\u8fc7 HTTP \u8bf7\u6c42\u5934\u53d1\u9001\u7ed9\u670d\u52a1\u5668\uff1b<br \/>\n\u670d\u52a1\u5668\u901a\u8fc7session_id\u627e\u5230\u5bf9\u5e94\u7684 session \u6587\u4ef6\uff0c\u5c06\u6587\u4ef6\u4e2d\u7684\u5e8f\u5217\u5316\u6570\u636e\u53cd\u5e8f\u5217\u5316\u540e\uff0c\u5b58\u5165$_SESSION\u8d85\u5168\u5c40\u6570\u7ec4\u4f9b\u811a\u672c\u4f7f\u7528\uff1b<br \/>\n\u811a\u672c\u6267\u884c\u7ed3\u675f\u540e\uff0cPHP \u4f1a\u81ea\u52a8\u5c06$_SESSION\u4e2d\u7684\u6570\u636e\u5e8f\u5217\u5316\uff0c\u8986\u76d6\u5199\u5165\u5bf9\u5e94\u7684 session \u6587\u4ef6\u4e2d\uff0c\u5b8c\u6210 session \u6570\u636e\u6301\u4e45\u5316\u3002<br \/>\n\uff082\uff09\u5927\u578b\u7f51\u7ad9\u6ce8\u610f\u4e8b\u9879<br \/>\n\u5b58\u50a8\u6027\u80fd\u95ee\u9898\uff1a\u9ed8\u8ba4\u6587\u4ef6\u5b58\u50a8\u65b9\u5f0f\u5728\u9ad8\u5e76\u53d1\u4e0b\u5b58\u5728 I\/O \u74f6\u9888\uff08\u5355\u76ee\u5f55\u6587\u4ef6\u8fc7\u591a\uff0c\u5b9a\u4f4d\u8017\u65f6\uff09\uff0c\u89e3\u51b3\u65b9\u6848\uff1a<br \/>\n\u4fee\u6539session.save_path\u4e3a\u591a\u7ea7\u76ee\u5f55\uff08\u5982\/tmp\/sess\/[0-f]\/[0-f]\uff09\uff0c\u9700\u63d0\u524d\u521b\u5efa\u76ee\u5f55\uff0c\u51cf\u5c11\u5355\u76ee\u5f55\u6587\u4ef6\u6570\u91cf\uff1b<br \/>\n\u653e\u5f03\u6587\u4ef6\u5b58\u50a8\uff0c\u6539\u7528\u5206\u5e03\u5f0f\u7f13\u5b58\uff08Memcached\/Redis\uff09\u6216\u6570\u636e\u5e93\uff08MySQL\uff09\u5b58\u50a8 session\uff0c\u63d0\u5347\u8bfb\u5199\u6548\u7387\uff1b<br \/>\nsession \u540c\u6b65\u95ee\u9898\uff1a\u8d1f\u8f7d\u5747\u8861\u67b6\u6784\u4e0b\uff0c\u5ba2\u6237\u7aef\u8bf7\u6c42\u53ef\u80fd\u5206\u53d1\u5230\u4e0d\u540c\u670d\u52a1\u5668\uff0c\u5bfc\u81f4 session \u6570\u636e\u4e0d\u4e00\u81f4\uff0c\u89e3\u51b3\u65b9\u6848\uff1a<br \/>\n\u96c6\u4e2d\u5f0f\u5b58\u50a8\uff1a\u6240\u6709\u670d\u52a1\u5668\u5171\u4eab\u540c\u4e00\u4e2a session \u5b58\u50a8\uff08Redis\/Memcached \u96c6\u7fa4 \/ \u5171\u4eab\u6570\u636e\u5e93\uff09\uff1b<br \/>\n\u4f1a\u8bdd\u7c98\u6ede\uff1a\u901a\u8fc7 LVS\/Nginx \u8d1f\u8f7d\u5747\u8861\u914d\u7f6e\uff0c\u5c06\u540c\u4e00\u5ba2\u6237\u7aef\u7684\u6240\u6709\u8bf7\u6c42\u7ed1\u5b9a\u5230\u540c\u4e00\u53f0\u670d\u52a1\u5668\uff08ip_hash \u7b56\u7565\uff09\uff1b<br \/>\nsession \u5b89\u5168\u95ee\u9898\uff1asession_id\u6cc4\u9732\u53ef\u80fd\u5bfc\u81f4\u4f1a\u8bdd\u52ab\u6301\uff0c\u89e3\u51b3\u65b9\u6848\uff1a<br \/>\n\u8bbe\u7f6e session Cookie \u7684httponly\u5c5e\u6027\uff08\u9632\u6b62 JS \u7a83\u53d6\uff09\u3001secure\u5c5e\u6027\uff08\u4ec5 HTTPS \u4f20\u8f93\uff09\uff1b<br \/>\n\u5b9a\u671f\u5237\u65b0session_id\uff08session_regenerate_id(true)\uff09\uff0c\u5c24\u5176\u662f\u7528\u6237\u767b\u5f55 \/ \u6743\u9650\u53d8\u66f4\u65f6\uff1b<br \/>\nsession \u8fc7\u671f\u95ee\u9898\uff1a\u5408\u7406\u8bbe\u7f6e session \u8fc7\u671f\u65f6\u95f4\uff08session.gc_maxlifetime\uff09\uff0c\u907f\u514d\u65e0\u6548 session \u5360\u7528\u5b58\u50a8\u8d44\u6e90\u3002<br \/>\n6. MySQL \u7d22\u5f15 \/ \u4e3b\u952e \/ \u552f\u4e00\u7d22\u5f15 \/ \u8054\u5408\u7d22\u5f15\u533a\u522b\u53ca\u6027\u80fd\u5f71\u54cd\uff08\u8865\u5145\u5b8c\u5584\uff09<br \/>\n\uff081\uff09\u6838\u5fc3\u533a\u522b<br \/>\n\u7d22\u5f15\u7c7b\u578b \u552f\u4e00\u6027 \u5141\u8bb8\u7a7a\u503c \u6570\u91cf\u9650\u5236 \u6838\u5fc3\u7528\u9014<br \/>\n\u666e\u901a\u7d22\u5f15\uff08INDEX\uff09 \u4e0d\u8981\u6c42\u552f\u4e00 \u5141\u8bb8 \u65e0\u9650\u5236 \u63d0\u5347\u5355\u5b57\u6bb5 \/ \u591a\u5b57\u6bb5\u7684\u67e5\u8be2\u6548\u7387\uff0c\u65e0\u7ea6\u675f\u4f5c\u7528<br \/>\n\u4e3b\u952e\uff08PRIMARY KEY\uff09 \u5f3a\u5236\u552f\u4e00 \u4e0d\u5141\u8bb8\uff08\u975e\u7a7a\u7ea6\u675f\uff09 \u4e00\u4e2a\u8868\u4ec5 1 \u4e2a \u552f\u4e00\u6807\u8bc6\u8868\u4e2d\u8bb0\u5f55\uff0c\u517c\u5177\u7d22\u5f15\u67e5\u8be2\u529f\u80fd\u548c\u6570\u636e\u5b8c\u6574\u6027\u7ea6\u675f<br \/>\n\u552f\u4e00\u7d22\u5f15\uff08UNIQUE\uff09 \u5f3a\u5236\u552f\u4e00 \u5141\u8bb8\uff08\u4ec5\u5141\u8bb8\u4e00\u4e2a NULL \u503c\uff09 \u65e0\u9650\u5236 \u4fdd\u8bc1\u5b57\u6bb5\u503c\u552f\u4e00\uff0c\u63d0\u5347\u67e5\u8be2\u6548\u7387\uff0c\u5177\u5907\u6570\u636e\u552f\u4e00\u6027\u7ea6\u675f<br \/>\n\u8054\u5408\u7d22\u5f15\uff08\u590d\u5408\u7d22\u5f15\uff09 \u53ef\u9009\uff08\u53ef\u8bbe\u7f6e\u552f\u4e00\u8054\u5408\u7d22\u5f15\uff09 \u5141\u8bb8\uff08\u975e\u4e3b\u952e\u573a\u666f\uff09 \u65e0\u9650\u5236\uff08\u5b57\u6bb5\u6570\u91cf\u5efa\u8bae\u22645 \u4e2a\uff09 \u63d0\u5347\u591a\u5b57\u6bb5\u7ec4\u5408\u67e5\u8be2\u7684\u6548\u7387\uff0c\u9075\u5faa \u201c\u6700\u5de6\u524d\u7f00\u5339\u914d\u539f\u5219\u201d<br \/>\n\u8865\u5145\uff1a\u4e3b\u952e\u662f\u7279\u6b8a\u7684\u552f\u4e00\u7d22\u5f15\uff0c\u81ea\u5e26\u975e\u7a7a\u7ea6\u675f\uff1b\u8054\u5408\u7d22\u5f15\u662f\u5bf9\u591a\u4e2a\u5b57\u6bb5\u7ec4\u5408\u521b\u5efa\u7684\u7d22\u5f15\uff0c\u67e5\u8be2\u65f6\u9700\u6ee1\u8db3\u6700\u5de6\u524d\u7f00\u539f\u5219\u624d\u80fd\u547d\u4e2d\u7d22\u5f15\uff08\u5982\u8054\u5408\u7d22\u5f15(a,b,c)\uff0c\u652f\u6301a\u3001a,b\u3001a,b,c\u67e5\u8be2\uff0c\u4e0d\u652f\u6301b\u3001b,c\u3001a,c\u67e5\u8be2\uff09\u3002<br \/>\n\uff082\uff09\u5bf9\u6570\u636e\u5e93\u6027\u80fd\u7684\u5f71\u54cd<br \/>\n\u8bfb\u64cd\u4f5c\uff08\u67e5\u8be2\uff09\uff1a<br \/>\n\u6b63\u5411\u5f71\u54cd\uff1a\u6240\u6709\u7d22\u5f15\u90fd\u80fd\u5927\u5e45\u63d0\u5347\u8bfb\u64cd\u4f5c\u6548\u7387\uff0c\u901a\u8fc7\u7d22\u5f15\u6392\u5e8f\u540e\u7684\u6570\u636e\u96c6\uff0c\u53ef\u5feb\u901f\u5b9a\u4f4d\u76ee\u6807\u8bb0\u5f55\uff0c\u907f\u514d\u5168\u8868\u626b\u63cf\uff08\u5c24\u5176\u662f\u5927\u6570\u636e\u91cf\u8868\uff09\uff1b<br \/>\n\u5f71\u54cd\u4f18\u5148\u7ea7\uff1a\u4e3b\u952e &gt; \u552f\u4e00\u7d22\u5f15 &gt; \u8054\u5408\u7d22\u5f15 &gt; \u666e\u901a\u7d22\u5f15\uff08\u4e3b\u952e\u9ed8\u8ba4\u662f\u805a\u7c07\u7d22\u5f15\uff0c\u67e5\u8be2\u6548\u7387\u6700\u9ad8\uff09\uff1b<br \/>\n\u5199\u64cd\u4f5c\uff08\u63d2\u5165 \/ \u66f4\u65b0 \/ \u5220\u9664\uff09\uff1a<br \/>\n\u8d1f\u5411\u5f71\u54cd\uff1a\u7d22\u5f15\u4f1a\u964d\u4f4e\u5199\u64cd\u4f5c\u6548\u7387\uff0c\u56e0\u4e3a\u5199\u64cd\u4f5c\u4e0d\u4ec5\u8981\u4fee\u6539\u6570\u636e\u672c\u8eab\uff0c\u8fd8\u8981\u540c\u6b65\u66f4\u65b0\u5bf9\u5e94\u7684\u7d22\u5f15\u7ed3\u6784\uff08\u91cd\u65b0\u6392\u5e8f\u3001\u7ef4\u62a4\u7d22\u5f15\u6811\uff09\uff1b<br \/>\n\u5f71\u54cd\u7a0b\u5ea6\uff1a\u7d22\u5f15\u6570\u91cf\u8d8a\u591a\u3001\u7d22\u5f15\u5b57\u6bb5\u8d8a\u957f\u3001\u8054\u5408\u7d22\u5f15\u5b57\u6bb5\u8d8a\u591a\uff0c\u5199\u64cd\u4f5c\u6027\u80fd\u635f\u8017\u8d8a\u5927\uff1b<br \/>\n\u5e73\u8861\u539f\u5219\uff1a\u5408\u7406\u521b\u5efa\u7d22\u5f15\uff08\u6309\u9700\u521b\u5efa\uff0c\u907f\u514d\u5197\u4f59\u7d22\u5f15\uff09\uff0c\u4f18\u5148\u4e3a\u67e5\u8be2\u9891\u7387\u9ad8\u7684\u5b57\u6bb5\u521b\u5efa\u7d22\u5f15\uff0c\u51cf\u5c11\u5bf9\u5199\u64cd\u4f5c\u9891\u7e41\u5b57\u6bb5\u7684\u7d22\u5f15\u521b\u5efa\u3002<br \/>\n7. MySQL varchar \u548c char \u7684\u533a\u522b\u53ca\u67e5\u8be2\u6548\u7387\uff08\u8865\u5145\u5b8c\u5584\uff09<br \/>\n\uff081\uff09\u6838\u5fc3\u533a\u522b<br \/>\n\u7c7b\u578b \u957f\u5ea6\u7279\u6027 \u5b58\u50a8\u7a7a\u95f4 \u7a7a\u503c\u5904\u7406 \u5c3e\u90e8\u7a7a\u683c\u5904\u7406<br \/>\nchar \u5b9a\u957f\u5b57\u7b26\u4e32 \u5360\u7528\u56fa\u5b9a\u957f\u5ea6\u7a7a\u95f4\uff08\u5982char(10)\uff0c\u65e0\u8bba\u5b58\u50a8 1 \u4e2a\u8fd8\u662f 10 \u4e2a\u5b57\u7b26\uff0c\u90fd\u5360\u7528 10 \u4e2a\u5b57\u7b26\u7a7a\u95f4\uff09 \u5141\u8bb8\u7a7a\u503c \u81ea\u52a8\u5220\u9664\u5c3e\u90e8\u7a7a\u683c\uff08\u5b58\u50a8\u65f6\u622a\u65ad\uff0c\u67e5\u8be2\u65f6\u8fd4\u56de\u65e0\u5c3e\u90e8\u7a7a\u683c\uff09<br \/>\nvarchar \u53d8\u957f\u5b57\u7b26\u4e32 \u5360\u7528\u53ef\u53d8\u957f\u5ea6\u7a7a\u95f4\uff08\u5b9e\u9645\u5b58\u50a8\u957f\u5ea6 + 1\/2 \u4e2a\u5b57\u8282\u7684\u957f\u5ea6\u6807\u8bc6\uff0c\u5982varchar(10)\u5b58\u50a8 3 \u4e2a\u5b57\u7b26\uff0c\u5360\u7528 3+1=4 \u4e2a\u5b57\u8282\uff09 \u5141\u8bb8\u7a7a\u503c \u4fdd\u7559\u5c3e\u90e8\u7a7a\u683c\uff08\u5b58\u50a8\u548c\u67e5\u8be2\u5747\u4e0d\u4fee\u6539\uff09<br \/>\n\u8865\u5145\uff1achar\u7684\u957f\u5ea6\u8303\u56f4\u662f 1~255\uff0cvarchar\u7684\u957f\u5ea6\u8303\u56f4\u662f 1~65535\uff08\u53d7\u8868\u5b57\u7b26\u96c6\u548c\u884c\u5927\u5c0f\u9650\u5236\uff09\u3002<br \/>\n\uff082\uff09\u67e5\u8be2\u6548\u7387\u53ca\u539f\u56e0<br \/>\nchar\u67e5\u8be2\u6548\u7387\u66f4\u9ad8\uff0c\u539f\u56e0\u5982\u4e0b\uff1a<br \/>\nchar\u662f\u5b9a\u957f\u5b58\u50a8\uff0c\u6570\u636e\u5728\u78c1\u76d8\u4e0a\u662f\u8fde\u7eed\u6392\u5217\u7684\uff0c\u670d\u52a1\u5668\u65e0\u9700\u989d\u5916\u89e3\u6790\u957f\u5ea6\u6807\u8bc6\uff0c\u53ef\u76f4\u63a5\u5b9a\u4f4d\u6570\u636e\u4f4d\u7f6e\uff0c\u51cf\u5c11 IO \u5f00\u9500\uff1b<br \/>\nchar\u5b58\u50a8\u65f6\u81ea\u52a8\u6e05\u7406\u5c3e\u90e8\u7a7a\u683c\uff0c\u6570\u636e\u957f\u5ea6\u56fa\u5b9a\uff0c\u7d22\u5f15\u7ed3\u6784\u66f4\u7b80\u5355\uff0c\u67e5\u8be2\u65f6\u7d22\u5f15\u5339\u914d\u6548\u7387\u66f4\u9ad8\uff1b<br \/>\nvarchar\u662f\u53d8\u957f\u5b58\u50a8\uff0c\u9700\u8981\u989d\u5916\u5b58\u50a8\u957f\u5ea6\u6807\u8bc6\uff0c\u67e5\u8be2\u65f6\u9700\u5148\u89e3\u6790\u957f\u5ea6\u6807\u8bc6\u624d\u80fd\u83b7\u53d6\u5b8c\u6574\u6570\u636e\uff0c\u4e14\u6570\u636e\u5b58\u50a8\u4e0d\u8fde\u7eed\uff0c\u6613\u4ea7\u751f\u5185\u5b58\u788e\u7247\uff0c\u5f71\u54cd\u67e5\u8be2\u6548\u7387\uff1b<br \/>\n\u4f8b\u5916\u573a\u666f\uff1a\u5f53\u5b58\u50a8\u7684\u5b57\u7b26\u4e32\u957f\u5ea6\u5dee\u5f02\u8f83\u5927\u4e14\u6574\u4f53\u8f83\u77ed\u65f6\uff0cvarchar\u7684\u5b58\u50a8\u7a7a\u95f4\u4f18\u52bf\u53ef\u80fd\u62b5\u6d88\u5176\u67e5\u8be2\u6027\u80fd\u52a3\u52bf\uff0c\u6574\u4f53\u6027\u80fd\u5dee\u5f02\u4e0d\u660e\u663e\u3002<br \/>\n8. MySQL \u5916\u8fde\u63a5\u3001\u5185\u8fde\u63a5\u4e0e\u81ea\u8fde\u63a5\u7684\u533a\u522b\uff08\u8865\u5145\u5b8c\u5584\uff09<br \/>\n\u8fde\u63a5\u7c7b\u578b \u6838\u5fc3\u7279\u6027 \u7ed3\u679c\u96c6 \u8bed\u6cd5\u793a\u4f8b<br \/>\n\u5185\u8fde\u63a5\uff08INNER JOIN\uff09 \u53ea\u5339\u914d\u6ee1\u8db3\u8fde\u63a5\u6761\u4ef6\u7684\u8bb0\u5f55 \u4ec5\u8fd4\u56de\u5de6\u53f3\u8868\u4e2d\u540c\u65f6\u6ee1\u8db3\u8fde\u63a5\u6761\u4ef6\u7684\u8bb0\u5f55\uff08\u65e0 NULL \u8865\u4f4d\uff09 SELECT a.*, b.* FROM table_a a INNER JOIN table_b b ON a.id = b.a_id;<br \/>\n\u5916\u8fde\u63a5 &#8211; \u5de6\u8fde\u63a5\uff08LEFT JOIN\uff09 \u4ee5\u5de6\u8868\u4e3a\u57fa\u51c6\uff0c\u5339\u914d\u53f3\u8868\u8bb0\u5f55 \u8fd4\u56de\u5de6\u8868\u6240\u6709\u8bb0\u5f55\uff0c\u53f3\u8868\u6ee1\u8db3\u6761\u4ef6\u7684\u8bb0\u5f55\u6b63\u5e38\u663e\u793a\uff0c\u4e0d\u6ee1\u8db3\u7684\u5b57\u6bb5\u7528 NULL \u8865\u4f4d SELECT a.*, b.* FROM table_a a LEFT JOIN table_b b ON a.id = b.a_id;<br \/>\n\u5916\u8fde\u63a5 &#8211; \u53f3\u8fde\u63a5\uff08RIGHT JOIN\uff09 \u4ee5\u53f3\u8868\u4e3a\u57fa\u51c6\uff0c\u5339\u914d\u5de6\u8868\u8bb0\u5f55 \u8fd4\u56de\u53f3\u8868\u6240\u6709\u8bb0\u5f55\uff0c\u5de6\u8868\u6ee1\u8db3\u6761\u4ef6\u7684\u8bb0\u5f55\u6b63\u5e38\u663e\u793a\uff0c\u4e0d\u6ee1\u8db3\u7684\u5b57\u6bb5\u7528 NULL \u8865\u4f4d SELECT a.*, b.* FROM table_a a RIGHT JOIN table_b b ON a.id = b.a_id;<br \/>\n\u81ea\u8fde\u63a5\uff08SELF JOIN\uff09 \u8868\u4e0e\u81ea\u8eab\u8fdb\u884c\u8fde\u63a5\uff08\u9700\u8d77\u4e0d\u540c\u522b\u540d\uff09 \u672c\u8d28\u662f\u5185\u8fde\u63a5 \/ \u5916\u8fde\u63a5\u7684\u7279\u6b8a\u573a\u666f\uff0c\u5c06\u4e00\u5f20\u8868\u89c6\u4e3a\u4e24\u5f20\u72ec\u7acb\u8868\u8fdb\u884c\u5339\u914d SELECT a.name, b.name FROM emp a INNER JOIN emp b ON a.manager_id = b.id;\uff08\u67e5\u8be2\u5458\u5de5\u53ca\u5176\u7ecf\u7406\uff09<br \/>\n\u8865\u5145\uff1a\u81ea\u8fde\u63a5\u65e0\u9700\u7279\u6b8a\u5173\u952e\u5b57\uff0c\u6838\u5fc3\u662f\u4e3a\u540c\u4e00\u5f20\u8868\u8bbe\u7f6e\u4e0d\u540c\u522b\u540d\uff0c\u7528\u4e8e\u67e5\u8be2\u8868\u5185\u5c42\u7ea7\u5173\u7cfb\uff08\u5982\u90e8\u95e8\u4e0a\u4e0b\u7ea7\u3001\u5458\u5de5\u7ecf\u7406\uff09\u6216\u5173\u8054\u81ea\u8eab\u6570\u636e\u3002<br \/>\n9. \u7f51\u7edc\u534f\u8bae\u5168\u79f0\u53ca\u4e2d\u6587\u89e3\u91ca\uff08\u4fee\u6b63\u9519\u8bef\uff0c\u8865\u5145\u5b8c\u6574\uff09<br \/>\n\u534f\u8bae\u7f29\u5199 \u82f1\u6587\u5168\u79f0 \u4e2d\u6587\u89e3\u91ca \u6838\u5fc3\u7528\u9014<br \/>\nSMTP Simple Mail Transfer Protocol \u7b80\u5355\u90ae\u4ef6\u4f20\u8f93\u534f\u8bae \u7528\u4e8e\u53d1\u9001\u7535\u5b50\u90ae\u4ef6\uff08\u4ece\u5ba2\u6237\u7aef \/ \u90ae\u4ef6\u670d\u52a1\u5668\u53d1\u9001\u5230\u76ee\u6807\u90ae\u4ef6\u670d\u52a1\u5668\uff09<br \/>\nPOP3 Post Office Protocol Version 3 \u90ae\u5c40\u534f\u8bae\u7248\u672c 3 \u7528\u4e8e\u63a5\u6536\u7535\u5b50\u90ae\u4ef6\uff08\u4ece\u90ae\u4ef6\u670d\u52a1\u5668\u4e0b\u8f7d\u5230\u672c\u5730\u5ba2\u6237\u7aef\uff0c\u4e0b\u8f7d\u540e\u670d\u52a1\u5668\u53ef\u5220\u9664\u539f\u90ae\u4ef6\uff09<br \/>\nHTTP HyperText Transfer Protocol \u8d85\u6587\u672c\u4f20\u8f93\u534f\u8bae \u7528\u4e8e\u5728\u5ba2\u6237\u7aef\u4e0e Web \u670d\u52a1\u5668\u4e4b\u95f4\u4f20\u8f93\u8d85\u6587\u672c\u8d44\u6e90\uff08\u7f51\u9875\u3001\u56fe\u7247\u7b49\uff09\uff0c\u660e\u6587\u4f20\u8f93\uff0c\u9ed8\u8ba4\u7aef\u53e3 80<br \/>\nFTP File Transfer Protocol \u6587\u4ef6\u4f20\u8f93\u534f\u8bae \u7528\u4e8e\u5728\u4e24\u53f0\u4e3b\u673a\u4e4b\u95f4\u8fdb\u884c\u6587\u4ef6\u4e0a\u4f20\uff08PUT\uff09\u548c\u4e0b\u8f7d\uff08GET\uff09\uff0c\u9ed8\u8ba4\u7aef\u53e3 21<br \/>\nDNS Domain Name System \u57df\u540d\u7cfb\u7edf\uff08\u57df\u540d\u89e3\u6790\u534f\u8bae\uff09 \u5c06\u4eba\u7c7b\u6613\u8bb0\u7684\u57df\u540d\uff08\u5982www.baidu.com\uff09\u8f6c\u6362\u4e3a\u673a\u5668\u53ef\u8bc6\u522b\u7684 IP \u5730\u5740\uff08\u5982 180.101.49.11\uff09<br \/>\n10. JavaScript \u57fa\u672c\u6570\u636e\u7c7b\u578b\uff08\u8865\u5145\u5b8c\u5584\uff0c\u533a\u5206 ES5\/ES6\uff09<br \/>\nJavaScript \u7684\u57fa\u672c\u6570\u636e\u7c7b\u578b\u5206\u4e3a\u539f\u59cb\u6570\u636e\u7c7b\u578b\u548c\u5f15\u7528\u6570\u636e\u7c7b\u578b\uff0c\u5176\u4e2d\u57fa\u672c\uff08\u539f\u59cb\uff09\u6570\u636e\u7c7b\u578b\u5982\u4e0b\uff1a<br \/>\nES5 \u57fa\u672c\u6570\u636e\u7c7b\u578b\uff085 \u79cd\uff09\uff1a<br \/>\nNumber\uff1a\u6570\u5b57\u7c7b\u578b\uff08\u6574\u6570\u3001\u6d6e\u70b9\u6570\u3001NaN\u3001Infinity\uff09\uff0c\u5982123\u30013.14\u3001NaN\uff1b<br \/>\nString\uff1a\u5b57\u7b26\u4e32\u7c7b\u578b\uff08\u5355\u5f15\u53f7 \/ \u53cc\u5f15\u53f7\u5305\u88f9\u7684\u6587\u672c\uff09\uff0c\u5982&#8221;PHP&#8221;\u3001&#8217;JavaScript&#8217;\uff1b<br \/>\nBoolean\uff1a\u5e03\u5c14\u7c7b\u578b\uff08\u53ea\u6709\u4e24\u4e2a\u503c\uff09\uff0ctrue\uff08\u771f\uff09\u3001false\uff08\u5047\uff09\uff1b<br \/>\nNull\uff1a\u7a7a\u503c\u7c7b\u578b\uff08\u4ec5\u6709\u4e00\u4e2a\u503cnull\uff09\uff0c\u8868\u793a\u4e00\u4e2a\u7a7a\u7684\u5bf9\u8c61\u5f15\u7528\uff08\u624b\u52a8\u8bbe\u7f6e\uff09\uff1b<br \/>\nUndefined\uff1a\u672a\u5b9a\u4e49\u7c7b\u578b\uff08\u4ec5\u6709\u4e00\u4e2a\u503cundefined\uff09\uff0c\u8868\u793a\u53d8\u91cf\u5df2\u58f0\u660e\u4f46\u672a\u8d4b\u503c\uff0c\u6216\u8bbf\u95ee\u4e0d\u5b58\u5728\u7684\u5bf9\u8c61\u5c5e\u6027\uff1b<br \/>\nES6 \u65b0\u589e\u57fa\u672c\u6570\u636e\u7c7b\u578b\uff081 \u79cd\uff09\uff1a<br \/>\n6. Symbol\uff1a\u552f\u4e00\u6807\u8bc6\u7c7b\u578b\uff0c\u7528\u4e8e\u521b\u5efa\u552f\u4e00\u7684\u5c5e\u6027\u540d\uff0c\u907f\u514d\u5c5e\u6027\u540d\u51b2\u7a81\uff0c\u5982const s = Symbol(&#8216;test&#8217;);<br \/>\n11. \u4e24\u5217\u5e03\u5c40\uff08\u53f3\u4fa7\u56fa\u5b9a 200px\uff0c\u5de6\u4fa7\u81ea\u9002\u5e94\uff09\uff08\u8865\u5145\u591a\u79cd\u5b9e\u73b0\u65b9\u6848\uff09<br \/>\n\u65b9\u6848 1\uff1a\u6d6e\u52a8\u5e03\u5c40\uff08\u539f\u65b9\u6848\uff0c\u4f18\u5316\u517c\u5bb9\u6027\uff09<br \/>\nhtml<br \/>\n\u9884\u89c8<br \/>\n<!-- \u4f18\u5316\u540e\uff1a\u6e05\u9664\u6d6e\u52a8\u66f4\u7a33\u5b9a\uff0c\u517c\u5bb9\u4f4e\u7248\u672c\u6d4f\u89c8\u5668 --><\/p>\n<div style=\"width: 90%; margin: 0 auto; background-color: #ccc; overflow: hidden; zoom: 1;\">\n<div style=\"width: 200px; float: right; background-color: #f33; height: 200px;\">\u53f3\u8fb9\u56fa\u5b9a200px\u5bbd\u5ea6<\/div>\n<div style=\"margin-right: 20px; background-color: #090; height: 200px;\">\u5de6\u8fb9\u81ea\u9002\u5e94\uff08\u95f4\u8ddd20px\uff09<\/div>\n<\/div>\n<p>\u65b9\u6848 2\uff1aFlex \u5e03\u5c40\uff08\u73b0\u4ee3\u6d4f\u89c8\u5668\u63a8\u8350\uff0c\u66f4\u7b80\u6d01\uff09<br \/>\nhtml<br \/>\n\u9884\u89c8<\/p>\n<div style=\"width: 90%; margin: 0 auto; background-color: #ccc; display: flex; height: 200px;\">\n<div style=\"flex: 1; background-color: #090; margin-right: 20px;\">\u5de6\u8fb9\u81ea\u9002\u5e94<\/div>\n<div style=\"width: 200px; background-color: #f33;\">\u53f3\u8fb9\u56fa\u5b9a200px\u5bbd\u5ea6<\/div>\n<\/div>\n<p>\u65b9\u6848 3\uff1aGrid \u5e03\u5c40\uff08\u7075\u6d3b\u5f3a\u5927\uff0c\u9002\u5408\u590d\u6742\u5e03\u5c40\uff09<br \/>\nhtml<br \/>\n\u9884\u89c8<\/p>\n<div style=\"width: 90%; margin: 0 auto; background-color: #ccc; display: grid; grid-template-columns: 1fr 200px; grid-gap: 20px; height: 200px;\">\n<div style=\"background-color: #090;\">\u5de6\u8fb9\u81ea\u9002\u5e94<\/div>\n<div style=\"background-color: #f33;\">\u53f3\u8fb9\u56fa\u5b9a200px\u5bbd\u5ea6<\/div>\n<\/div>\n<p>\u4e8c\u3001\u9879\u76ee\u8bbe\u8ba1\uff08\u535a\u5ba2\u7cfb\u7edf\u9ad8\u5e76\u53d1\u8bbe\u8ba1\uff0c\u8865\u5145\u7ec6\u8282\uff09<br \/>\n\u9488\u5bf9 1000 \u4e07\u7528\u6237\u300110 \u4ebf\u6587\u7ae0\u3001\u65e5\u66f4\u65b0 10 \u4e07\u3001\u65e5\u8bbf\u95ee 5000 \u4e07\u3001\u8bfb\u5199\u6bd4 10:1 \u7684\u535a\u5ba2 Tag \u7cfb\u7edf\uff0c\u8bbe\u8ba1\u65b9\u6848\u5982\u4e0b\uff1a<br \/>\n1. \u6570\u636e\u5e93\u8bbe\u8ba1\uff08\u5206\u5e93\u5206\u8868 + \u7d22\u5f15\u4f18\u5316 + \u5b58\u50a8\u4f18\u5316\uff09<br \/>\n\uff081\uff09\u5206\u5e93\u5206\u8868\u7b56\u7565<br \/>\n\u5782\u76f4\u5206\u5e93\uff1a\u6309\u4e1a\u52a1\u6a21\u5757\u62c6\u5206\u6570\u636e\u5e93\uff08\u7528\u6237\u5e93\u3001\u6587\u7ae0\u5e93\u3001Tag \u5e93\u3001\u8bc4\u8bba\u5e93\uff09\uff0c\u964d\u4f4e\u5355\u5e93\u538b\u529b\uff1b<br \/>\n\u6c34\u5e73\u5206\u8868\uff1a<br \/>\n\u6587\u7ae0\u8868\uff1a\u6309create_time\uff08\u521b\u5efa\u65f6\u95f4\uff09\u5206\u8868\uff08\u5982article_202401\u3001article_202402\uff09\uff0c\u6216\u6309user_id\u54c8\u5e0c\u5206\u8868\uff08article_00~article_99\uff09\uff0c\u89e3\u51b3 10 \u4ebf\u6570\u636e\u5b58\u50a8\u95ee\u9898\uff1b<br \/>\nTag \u5173\u8054\u8868\uff1aarticle_tag\uff08\u6587\u7ae0\u4e0e Tag \u7684\u591a\u5bf9\u591a\u5173\u8054\uff09\u6309article_id\u54c8\u5e0c\u5206\u8868\uff0c\u63d0\u5347\u5173\u8054\u67e5\u8be2\u6548\u7387\uff1b<br \/>\n\u7528\u6237\u8868\uff1a\u6309user_id\u54c8\u5e0c\u5206\u8868\uff08user_00~user_99\uff09\uff0c\u652f\u6491 1000 \u4e07\u7528\u6237\u5b58\u50a8\uff1b<br \/>\n\u51b7\u70ed\u6570\u636e\u5206\u79bb\uff1a\u5c06\u8fd1 1 \u5e74\u7684\u6d3b\u8dc3\u6587\u7ae0\u5b58\u50a8\u5728\u9ad8\u6027\u80fd\u6570\u636e\u5e93\uff08MySQL \u96c6\u7fa4\uff09\uff0c\u8d85\u8fc7 1 \u5e74\u7684\u51b7\u6587\u7ae0\u8fc1\u79fb\u5230\u4f4e\u6210\u672c\u5b58\u50a8\uff08\u5982 ClickHouse\u3001HDFS\uff09\uff0c\u964d\u4f4e\u70ed\u5e93\u538b\u529b\u3002<br \/>\n\uff082\uff09\u8868\u7ed3\u6784\u4f18\u5316\uff08\u6838\u5fc3\u8868\uff09<br \/>\nTag \u8868\uff08tag\uff09\uff1a<br \/>\nsql<br \/>\nCREATE TABLE `tag` (<br \/>\n`tag_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT &#8216;Tag\u552f\u4e00ID&#8217;,<br \/>\n`tag_name` varchar(50) NOT NULL COMMENT &#8216;Tag\u540d\u79f0\uff08\u552f\u4e00\uff09&#8217;,<br \/>\n`article_count` int(11) NOT NULL DEFAULT 0 COMMENT &#8216;\u5173\u8054\u6587\u7ae0\u6570&#8217;,<br \/>\n`create_time` datetime NOT NULL COMMENT &#8216;\u521b\u5efa\u65f6\u95f4&#8217;,<br \/>\nPRIMARY KEY (`tag_id`),<br \/>\nUNIQUE KEY `uk_tag_name` (`tag_name`) COMMENT &#8216;\u552f\u4e00\u7d22\u5f15\uff0c\u907f\u514d\u91cd\u590dTag&#8217;,<br \/>\nKEY `idx_article_count` (`article_count`) COMMENT &#8216;\u6309\u5173\u8054\u6587\u7ae0\u6570\u6392\u5e8f\uff08\u70ed\u95e8Tag\u67e5\u8be2\uff09&#8217;<br \/>\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT &#8216;Tag\u57fa\u7840\u8868&#8217;;<br \/>\n\u6587\u7ae0 &#8211; Tag \u5173\u8054\u8868\uff08article_tag_00\uff0c\u5206\u8868\u540e\u7f00\uff09\uff1a<br \/>\nsql<br \/>\nCREATE TABLE `article_tag_00` (<br \/>\n`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT &#8216;\u4e3b\u952eID&#8217;,<br \/>\n`article_id` bigint(20) NOT NULL COMMENT &#8216;\u6587\u7ae0ID&#8217;,<br \/>\n`tag_id` bigint(20) NOT NULL COMMENT &#8216;TagID&#8217;,<br \/>\n`create_time` datetime NOT NULL COMMENT &#8216;\u5173\u8054\u65f6\u95f4&#8217;,<br \/>\nPRIMARY KEY (`id`),<br \/>\nUNIQUE KEY `uk_article_tag` (`article_id`,`tag_id`) COMMENT &#8216;\u907f\u514d\u6587\u7ae0\u91cd\u590d\u5173\u8054\u540c\u4e00Tag&#8217;,<br \/>\nKEY `idx_article_id` (`article_id`) COMMENT &#8216;\u6309\u6587\u7ae0\u67e5Tag&#8217;,<br \/>\nKEY `idx_tag_id` (`tag_id`) COMMENT &#8216;\u6309Tag\u67e5\u6587\u7ae0\uff08\u6838\u5fc3\u67e5\u8be2\uff09&#8217;<br \/>\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT &#8216;\u6587\u7ae0-Tag\u5173\u8054\u8868\uff08\u5206\u8868\uff09&#8217;;<br \/>\n\u6587\u7ae0\u8868\uff08article_202401\uff0c\u5206\u8868\u540e\u7f00\uff09\uff1a<br \/>\nsql<br \/>\nCREATE TABLE `article_202401` (<br \/>\n`article_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT &#8216;\u6587\u7ae0\u552f\u4e00ID&#8217;,<br \/>\n`user_id` bigint(20) NOT NULL COMMENT &#8216;\u4f5c\u8005ID&#8217;,<br \/>\n`title` varchar(200) NOT NULL COMMENT &#8216;\u6587\u7ae0\u6807\u9898&#8217;,<br \/>\n`content` text NOT NULL COMMENT &#8216;\u6587\u7ae0\u5185\u5bb9&#8217;,<br \/>\n`tag_ids` varchar(100) NOT NULL DEFAULT &#8221; COMMENT &#8216;TagID\u9017\u53f7\u5206\u9694\uff08\u5197\u4f59\u5b58\u50a8\uff0c\u63d0\u5347\u67e5\u8be2\u6548\u7387\uff09&#8217;,<br \/>\n`create_time` datetime NOT NULL COMMENT &#8216;\u521b\u5efa\u65f6\u95f4&#8217;,<br \/>\n`update_time` datetime NOT NULL COMMENT &#8216;\u66f4\u65b0\u65f6\u95f4&#8217;,<br \/>\n`status` tinyint(4) NOT NULL DEFAULT 1 COMMENT &#8216;\u72b6\u6001\uff081-\u6b63\u5e38\uff0c0-\u5220\u9664\uff09&#8217;,<br \/>\nPRIMARY KEY (`article_id`),<br \/>\nKEY `idx_user_id_create_time` (`user_id`,`create_time`) COMMENT &#8216;\u6309\u4f5c\u8005\u67e5\u6587\u7ae0\uff08\u6392\u5e8f\uff09&#8217;,<br \/>\nKEY `idx_create_time` (`create_time`) COMMENT &#8216;\u6309\u65f6\u95f4\u6392\u5e8f\u67e5\u8be2&#8217;<br \/>\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT &#8216;\u6587\u7ae0\u8868\uff08\u6309\u65f6\u95f4\u5206\u8868\uff09&#8217;;<br \/>\n\u5197\u4f59\u5b58\u50a8\uff1a\u6587\u7ae0\u8868\u4e2d\u5197\u4f59tag_ids\u5b57\u6bb5\uff08\u59821,2,3\uff09\uff0c\u907f\u514d\u5173\u8054\u67e5\u8be2\uff0c\u63d0\u5347\u6587\u7ae0\u8be6\u60c5\u9875 Tag \u5c55\u793a\u6548\u7387\uff1b<br \/>\n\u7d22\u5f15\u4f18\u5316\uff1a\u6240\u6709\u67e5\u8be2\u9ad8\u9891\u5b57\u6bb5\u521b\u5efa\u7d22\u5f15\uff0c\u8054\u5408\u7d22\u5f15\u9075\u5faa\u6700\u5de6\u524d\u7f00\u539f\u5219\uff0c\u907f\u514d\u5197\u4f59\u7d22\u5f15\u3002<br \/>\n\uff083\uff09\u5b58\u50a8\u5f15\u64ce\u9009\u62e9<br \/>\n\u6838\u5fc3\u4e1a\u52a1\u8868\uff08\u7528\u6237\u3001\u6587\u7ae0\u3001Tag\uff09\uff1a\u4f7f\u7528InnoDB\uff08\u652f\u6301\u4e8b\u52a1\u3001\u884c\u7ea7\u9501\u3001\u805a\u7c07\u7d22\u5f15\uff0c\u63d0\u5347\u5e76\u53d1\u8bfb\u5199\u6548\u7387\uff09\uff1b<br \/>\n\u65e5\u5fd7\u8868\u3001\u7edf\u8ba1\u62a5\u8868\u8868\uff1a\u4f7f\u7528MyISAM\uff08\u67e5\u8be2\u901f\u5ea6\u5feb\uff0c\u4e0d\u652f\u6301\u4e8b\u52a1\uff0c\u9002\u5408\u8bfb\u591a\u5199\u5c11\u7684\u7edf\u8ba1\u573a\u666f\uff09\uff1b<br \/>\n\u51b7\u6570\u636e\u5b58\u50a8\uff1a\u4f7f\u7528ClickHouse\uff08\u5217\u5f0f\u5b58\u50a8\uff0c\u9002\u5408\u5927\u6570\u636e\u91cf\u67e5\u8be2\u5206\u6790\uff0c\u5982\u5386\u53f2\u6587\u7ae0\u7edf\u8ba1\uff09\u3002<br \/>\n2. \u7cfb\u7edf\u6846\u67b6\u8bbe\u8ba1\uff08\u5206\u5c42\u67b6\u6784 + \u7f13\u5b58\u67b6\u6784\uff09<br \/>\n\uff081\uff09\u5206\u5c42\u67b6\u6784\uff08\u9ad8\u5185\u805a\u4f4e\u8026\u5408\uff09<br \/>\n\u63a5\u5165\u5c42\uff1aNginx\uff08\u8d1f\u8f7d\u5747\u8861 + \u9759\u6001\u8d44\u6e90\u7f13\u5b58 + \u53cd\u5411\u4ee3\u7406\uff09\uff0c\u914d\u7f6eip_hash\u6216session_sticky\u89e3\u51b3 session \u540c\u6b65\u95ee\u9898\uff0c\u540c\u65f6\u5f00\u542f gzip \u538b\u7f29\uff0c\u51cf\u5c11\u5e26\u5bbd\u6d88\u8017\uff1b<br \/>\n\u5e94\u7528\u5c42\uff1a\u91c7\u7528\u5fae\u670d\u52a1\u67b6\u6784\u62c6\u5206\u6a21\u5757\uff08\u7528\u6237\u670d\u52a1\u3001\u6587\u7ae0\u670d\u52a1\u3001Tag \u670d\u52a1\u3001\u641c\u7d22\u670d\u52a1\uff09\uff0c\u4f7f\u7528 PHP-FPM\uff08\u6216 Swoole\uff09\u63d0\u4f9b\u9ad8\u6027\u80fd\u63a5\u53e3\uff0c\u6846\u67b6\u9009\u7528 Laravel\/Symfony\uff08\u6210\u719f\u7a33\u5b9a\uff0c\u652f\u6301\u7f13\u5b58\u3001\u961f\u5217\uff09\uff1b<br \/>\n\u7f13\u5b58\u5c42\uff1a\u5206\u5e03\u5f0f\u7f13\u5b58\u96c6\u7fa4\uff08Redis \u4e3b\u4ece + \u54e8\u5175 \/ \u96c6\u7fa4\uff09\uff0c\u7f13\u5b58\u70ed\u70b9\u6570\u636e\uff1a<br \/>\n\u70ed\u70b9 Tag\uff1a\u7f13\u5b58\u70ed\u95e8 Tag \u5217\u8868\uff08\u6309article_count\u6392\u5e8f\uff09\uff0c\u8fc7\u671f\u65f6\u95f4 10 \u5206\u949f\uff1b<br \/>\n\u70ed\u70b9\u6587\u7ae0\uff1a\u7f13\u5b58\u8bbf\u95ee\u91cf\u524d 10 \u4e07\u7684\u6587\u7ae0\u8be6\u60c5\uff0c\u8fc7\u671f\u65f6\u95f4 30 \u5206\u949f\uff0c\u66f4\u65b0\u65f6\u4e3b\u52a8\u5220\u9664\u7f13\u5b58\uff1b<br \/>\nTag &#8211; \u6587\u7ae0\u5173\u8054\uff1a\u7f13\u5b58\u70ed\u95e8 Tag \u5bf9\u5e94\u7684\u6587\u7ae0\u5217\u8868\uff0c\u5206\u9875\u7f13\u5b58\uff08\u5982tag_1_page_1\uff09\uff0c\u8fc7\u671f\u65f6\u95f4 10 \u5206\u949f\uff1b<br \/>\n\u8ba1\u6570\u7f13\u5b58\uff1a\u6587\u7ae0\u9605\u8bfb\u91cf\u3001Tag \u5173\u8054\u6570\u4f7f\u7528 Redisincr \u8ba1\u6570\uff0c\u5b9a\u65f6\u540c\u6b65\u5230\u6570\u636e\u5e93\uff1b<br \/>\n\u961f\u5217\u5c42\uff1a\u4f7f\u7528 Redis\/RabbitMQ \u5f02\u6b65\u5904\u7406\u975e\u5b9e\u65f6\u4efb\u52a1\uff0c\u964d\u4f4e\u540c\u6b65\u538b\u529b\uff1a<br \/>\n\u6587\u7ae0\u53d1\u5e03\uff1a\u5f02\u6b65\u66f4\u65b0 Tag \u5173\u8054\u6570\u3001\u5f02\u6b65\u751f\u6210\u6587\u7ae0\u9759\u6001\u5316\u9875\u9762\uff1b<br \/>\n\u6570\u636e\u7edf\u8ba1\uff1a\u5f02\u6b65\u7edf\u8ba1\u6587\u7ae0\u9605\u8bfb\u91cf\u3001Tag \u70ed\u5ea6\u3001\u7528\u6237\u884c\u4e3a\u6570\u636e\uff1b<br \/>\n\u6d88\u606f\u63a8\u9001\uff1a\u5f02\u6b65\u63a8\u9001\u6587\u7ae0\u66f4\u65b0\u901a\u77e5\u7ed9\u5173\u6ce8\u7528\u6237\uff1b<br \/>\n\u6570\u636e\u5c42\uff1aMySQL \u4e3b\u4ece\u590d\u5236\uff08\u8bfb\u5199\u5206\u79bb\uff09\uff0c\u4e3b\u5e93\u8d1f\u8d23\u5199\u64cd\u4f5c\uff08\u6587\u7ae0\u53d1\u5e03\u3001Tag \u521b\u5efa\u3001\u7528\u6237\u6ce8\u518c\uff09\uff0c\u4ece\u5e93\u8d1f\u8d23\u8bfb\u64cd\u4f5c\uff08\u6587\u7ae0\u67e5\u8be2\u3001Tag \u67e5\u8be2\u3001\u7528\u6237\u4fe1\u606f\u67e5\u8be2\uff09\uff0c\u4e3b\u4ece\u590d\u5236\u91c7\u7528\u534a\u540c\u6b65\u590d\u5236\uff0c\u907f\u514d\u6570\u636e\u4e22\u5931\u3002<br \/>\n\uff082\uff09\u7f13\u5b58\u67b6\u6784\uff08\u591a\u7ea7\u7f13\u5b58\uff0c\u51cf\u5c11\u6570\u636e\u5e93\u538b\u529b\uff09<br \/>\n\u4e00\u7ea7\u7f13\u5b58\uff1a\u672c\u5730\u7f13\u5b58\uff08PHP-FPM \u8fdb\u7a0b\u7f13\u5b58\uff0c\u5982apc\/xcache\uff09\uff0c\u7f13\u5b58\u9ad8\u9891\u4e0d\u53d8\u6570\u636e\uff08\u5982\u7cfb\u7edf\u914d\u7f6e\u3001Tag \u5b57\u5178\u8868\uff09\uff0c\u51cf\u5c11\u5206\u5e03\u5f0f\u7f13\u5b58\u8bbf\u95ee\uff1b<br \/>\n\u4e8c\u7ea7\u7f13\u5b58\uff1aRedis \u5206\u5e03\u5f0f\u7f13\u5b58\uff08\u6838\u5fc3\u7f13\u5b58\uff09\uff0c\u7f13\u5b58\u70ed\u70b9\u6570\u636e\uff0c\u5982\u4e0a\u6240\u8ff0\uff1b<br \/>\n\u4e09\u7ea7\u7f13\u5b58\uff1aNginx \u9759\u6001\u7f13\u5b58\uff08\u7f13\u5b58\u6587\u7ae0\u9759\u6001\u5316\u9875\u9762\u3001Tag \u5217\u8868\u9875\u9762\uff09\uff0c\u914d\u7f6e\u8fc7\u671f\u65f6\u95f4\uff0c\u66f4\u65b0\u65f6\u4e3b\u52a8\u6e05\u7406\u7f13\u5b58\uff1b<br \/>\n\u7f13\u5b58\u7b56\u7565\uff1a<br \/>\n\u7f13\u5b58\u7a7f\u900f\uff1a\u4f7f\u7528\u5e03\u9686\u8fc7\u6ee4\u5668\uff08Bloom Filter\uff09\u8fc7\u6ee4\u4e0d\u5b58\u5728\u7684\u6587\u7ae0 ID\/TagID\uff0c\u907f\u514d\u65e0\u6548\u67e5\u8be2\uff1b<br \/>\n\u7f13\u5b58\u51fb\u7a7f\uff1a\u70ed\u70b9\u6570\u636e\u8bbe\u7f6e\u6c38\u4e45\u7f13\u5b58\uff08\u6216\u4e92\u65a5\u9501\uff09\uff0c\u907f\u514d\u7f13\u5b58\u8fc7\u671f\u65f6\u5927\u91cf\u8bf7\u6c42\u7a7f\u900f\u5230\u6570\u636e\u5e93\uff1b<br \/>\n\u7f13\u5b58\u96ea\u5d29\uff1a\u7f13\u5b58\u8fc7\u671f\u65f6\u95f4\u968f\u673a\u5316\uff08\u5982 10\u00b12 \u5206\u949f\uff09\uff0c\u540c\u65f6\u90e8\u7f72 Redis \u96c6\u7fa4\uff0c\u907f\u514d\u5355\u70b9\u6545\u969c\u3002<br \/>\n3. \u7f51\u7edc\u67b6\u6784\u8bbe\u8ba1\uff08\u9ad8\u53ef\u7528 + \u9ad8\u5e76\u53d1\uff09<br \/>\n\u8d1f\u8f7d\u5747\u8861\uff1a<br \/>\n\u7b2c\u4e00\u5c42\uff1aLVS\uff08\u56db\u5c42\u8d1f\u8f7d\u5747\u8861\uff0c\u8d1f\u8d23\u5206\u53d1\u8bf7\u6c42\u5230 Nginx \u96c6\u7fa4\uff0c\u6297\u9ad8\u5e76\u53d1\uff09\uff1b<br \/>\n\u7b2c\u4e8c\u5c42\uff1aNginx\uff08\u4e03\u5c42\u8d1f\u8f7d\u5747\u8861\uff0c\u8d1f\u8d23\u5206\u53d1\u8bf7\u6c42\u5230\u5e94\u7528\u670d\u52a1\u5668\u96c6\u7fa4\uff0c\u652f\u6301 URL \u8def\u7531\uff09\uff1b<br \/>\n\u9ad8\u53ef\u7528\u90e8\u7f72\uff1a<br \/>\n\u6240\u6709\u6838\u5fc3\u670d\u52a1\uff08Nginx\u3001PHP-FPM\u3001Redis\u3001MySQL\uff09\u5747\u91c7\u7528\u96c6\u7fa4\u90e8\u7f72\uff0c\u907f\u514d\u5355\u70b9\u6545\u969c\uff1b<br \/>\nMySQL \u4e3b\u4ece\u5207\u6362\uff1a\u4f7f\u7528 MHA\/Keepalived \u5b9e\u73b0\u4e3b\u5e93\u6545\u969c\u81ea\u52a8\u5207\u6362\u5230\u4ece\u5e93\uff1b<br \/>\nRedis \u96c6\u7fa4\uff1a\u91c7\u7528\u4e3b\u4ece + \u54e8\u5175\u6a21\u5f0f\uff0c\u5b9e\u73b0\u4e3b\u8282\u70b9\u6545\u969c\u81ea\u52a8\u5207\u6362\uff1b<br \/>\n\u9759\u6001\u5316\u5904\u7406\uff1a<br \/>\n\u6587\u7ae0\u8be6\u60c5\u9875\u3001Tag \u6587\u7ae0\u5217\u8868\u9875\u3001\u7528\u6237\u535a\u5ba2\u9996\u9875\u91c7\u7528\u9759\u6001\u5316\u751f\u6210\uff08PHP \u811a\u672c\u5f02\u6b65\u751f\u6210 HTML \u6587\u4ef6\uff09\uff0c\u5b58\u50a8\u5728 Nginx \u672c\u5730\u6216 CDN\uff1b<br \/>\n\u4f7f\u7528 CDN\uff08\u5185\u5bb9\u5206\u53d1\u7f51\u7edc\uff09\u52a0\u901f\u9759\u6001\u8d44\u6e90\u8bbf\u95ee\uff08\u6587\u7ae0 HTML\u3001\u56fe\u7247\u3001CSS\u3001JS\uff09\uff0c\u5c06\u9759\u6001\u8d44\u6e90\u5206\u53d1\u5230\u5168\u56fd\u8282\u70b9\uff0c\u964d\u4f4e\u6e90\u7ad9\u538b\u529b\uff0c\u63d0\u5347\u7528\u6237\u8bbf\u95ee\u901f\u5ea6\uff1b<br \/>\n\u641c\u7d22\u4f18\u5316\uff1a<br \/>\n\u6587\u7ae0\u5168\u6587\u641c\u7d22\uff1a\u653e\u5f03 MySQL like \u67e5\u8be2\uff0c\u4f7f\u7528 Elasticsearch\uff08ES\uff09\u642d\u5efa\u641c\u7d22\u96c6\u7fa4\uff0c\u5c06\u6587\u7ae0\u6807\u9898\u3001\u5185\u5bb9\u3001Tag \u540c\u6b65\u5230 ES\uff0c\u652f\u6301\u5206\u8bcd\u641c\u7d22\u3001\u6a21\u7cca\u641c\u7d22\uff0c\u63d0\u5347\u641c\u7d22\u6548\u7387\uff1b<br \/>\nTag \u641c\u7d22\uff1aES \u4e2d\u521b\u5efa Tag \u7d22\u5f15\uff0c\u652f\u6301 Tag \u540d\u79f0\u6a21\u7cca\u5339\u914d\uff0c\u63d0\u5347 Tag \u67e5\u627e\u6548\u7387\uff1b<br \/>\n\u76d1\u63a7\u4e0e\u6269\u5bb9\uff1a<br \/>\n\u76d1\u63a7\u7cfb\u7edf\uff1a\u90e8\u7f72 Zabbix\/Prometheus\uff0c\u76d1\u63a7\u670d\u52a1\u5668\u8d1f\u8f7d\u3001\u6570\u636e\u5e93\u6027\u80fd\u3001\u7f13\u5b58\u547d\u4e2d\u7387\u3001\u63a5\u53e3\u54cd\u5e94\u65f6\u95f4\uff0c\u8bbe\u7f6e\u544a\u8b66\u9608\u503c\uff1b<br \/>\n\u5f39\u6027\u6269\u5bb9\uff1a\u57fa\u4e8e\u4e91\u670d\u52a1\u5668\uff08\u963f\u91cc\u4e91 \/ \u817e\u8baf\u4e91\uff09\uff0c\u652f\u6301\u6309\u8bbf\u95ee\u91cf\u81ea\u52a8\u6269\u5bb9\u5e94\u7528\u670d\u52a1\u5668\u3001\u7f13\u5b58\u670d\u52a1\u5668\uff0c\u5e94\u5bf9\u6d41\u91cf\u5cf0\u503c\u3002<br \/>\n\u4e09\u3001\u7f16\u7a0b\u9898\uff08\u4f18\u5316\u4fee\u6b63\uff0c\u4fdd\u8bc1\u53ef\u8fd0\u884c\uff09<br \/>\n\u7f16\u7a0b\u9898 1\uff1a\u987a\u5e8f\u67e5\u627e\u4e0e\u4e8c\u5206\u67e5\u627e\u7b97\u6cd5<br \/>\n\uff081\uff09\u987a\u5e8f\u67e5\u627e\uff08\u7ebf\u6027\u67e5\u627e\uff09<br \/>\n\u7b97\u6cd5\u63cf\u8ff0<br \/>\n\u987a\u5e8f\u67e5\u627e\u662f\u4e00\u79cd\u7b80\u5355\u7684\u67e5\u627e\u7b97\u6cd5\uff0c\u65e0\u9700\u6570\u7ec4\u6709\u5e8f\uff0c\u4ece\u6570\u7ec4\u7684\u7b2c\u4e00\u4e2a\u5143\u7d20\u5f00\u59cb\uff0c\u4f9d\u6b21\u904d\u5386\u6570\u7ec4\u5143\u7d20\uff0c\u4e0e\u76ee\u6807\u503c\u8fdb\u884c\u6bd4\u8f83\uff0c\u627e\u5230\u5219\u8fd4\u56de\u7d22\u5f15\uff0c\u904d\u5386\u7ed3\u675f\u672a\u627e\u5230\u5219\u8fd4\u56de &#8211; 1\u3002<br \/>\n\u4f18\u5316\u7248\u5b9e\u73b0\uff08PHP\uff0c\u652f\u6301\u6709\u5e8f \/ \u65e0\u5e8f\u6570\u7ec4\uff0c\u63d0\u524d\u7ec8\u6b62\uff09<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/**<br \/>\n* \u987a\u5e8f\u67e5\u627e\uff08\u4f18\u5316\u7248\uff1a\u904d\u5386\u5230\u76ee\u6807\u503c\u7acb\u5373\u8fd4\u56de\uff0c\u51cf\u5c11\u65e0\u6548\u904d\u5386\uff09<br \/>\n* @param array $arr \u5f85\u67e5\u627e\u6570\u7ec4<br \/>\n* @param mixed $target \u76ee\u6807\u503c<br \/>\n* @return int \u627e\u5230\u8fd4\u56de\u7d22\u5f15\uff0c\u672a\u627e\u5230\u8fd4\u56de-1<br \/>\n*\/<br \/>\nfunction sequentialSearch($arr, $target) {<br \/>\n$len = count($arr);<br \/>\n\/\/ \u904d\u5386\u6570\u7ec4\uff0c\u4f9d\u6b21\u6bd4\u8f83<br \/>\nfor ($i = 0; $i &lt; $len; $i++) { if ($arr[$i] === $target) { return $i; \/\/ \u627e\u5230\u76ee\u6807\u503c\uff0c\u7acb\u5373\u8fd4\u56de\u7d22\u5f15 } } return -1; \/\/ \u672a\u627e\u5230\u76ee\u6807\u503c } \/\/ \u6d4b\u8bd5 $arr = [3, 1, 4, 1, 5, 9, 2, 6]; $target = 5; $index = sequentialSearch($arr, $target); echo &#8220;\u987a\u5e8f\u67e5\u627e\uff1a\u76ee\u6807\u503c{$target}\u7684\u7d22\u5f15\u662f\uff1a{$index}&#8221;; \/\/ \u8f93\u51fa\uff1a4 \u6548\u7387\u5206\u6790 \u65f6\u95f4\u590d\u6742\u5ea6\uff1a\u6700\u597d O (1)\uff08\u76ee\u6807\u503c\u5728\u6570\u7ec4\u9996\u4f4d\uff09\uff0c\u6700\u574f O (n)\uff08\u76ee\u6807\u503c\u5728\u6570\u7ec4\u672b\u5c3e\u6216\u4e0d\u5b58\u5728\uff09\uff0c\u5e73\u5747 O (n)\uff1b \u7a7a\u95f4\u590d\u6742\u5ea6\uff1aO (1)\uff08\u65e0\u9700\u989d\u5916\u7a7a\u95f4\uff09\uff1b \u9002\u7528\u573a\u666f\uff1a\u5c0f\u89c4\u6a21\u6570\u7ec4\u3001\u65e0\u5e8f\u6570\u7ec4\u3002 \uff082\uff09\u4e8c\u5206\u67e5\u627e\uff08\u6298\u534a\u67e5\u627e\uff09 \u7b97\u6cd5\u63cf\u8ff0 \u4e8c\u5206\u67e5\u627e\u8981\u6c42\u6570\u7ec4\u5fc5\u987b\u6709\u5e8f\uff0c\u901a\u8fc7\u4e0d\u65ad\u7f29\u5c0f\u67e5\u627e\u8303\u56f4\u5b9e\u73b0\u67e5\u627e\uff1a \u5b9a\u4e49\u5de6\u6307\u9488left\uff08\u521d\u59cb 0\uff09\u548c\u53f3\u6307\u9488right\uff08\u521d\u59cb\u6570\u7ec4\u957f\u5ea6 &#8211; 1\uff09\uff1b \u8ba1\u7b97\u4e2d\u95f4\u7d22\u5f15mid = floor(($left + $right) \/ 2)\uff1b \u6bd4\u8f83$arr[$mid]\u4e0e\u76ee\u6807\u503c\uff1a \u76f8\u7b49\uff1a\u8fd4\u56demid\uff08\u627e\u5230\u76ee\u6807\u503c\uff09\uff1b $arr[$mid] &gt; $target\uff1a\u76ee\u6807\u503c\u5728\u5de6\u534a\u90e8\u5206\uff0c\u66f4\u65b0right = $mid &#8211; 1\uff1b<br \/>\n$arr[$mid] &lt; $target\uff1a\u76ee\u6807\u503c\u5728\u53f3\u534a\u90e8\u5206\uff0c\u66f4\u65b0left = $mid + 1\uff1b \u91cd\u590d\u6b65\u9aa4 2-3\uff0c\u76f4\u5230left &gt; right\uff08\u672a\u627e\u5230\u76ee\u6807\u503c\uff0c\u8fd4\u56de &#8211; 1\uff09\u3002<br \/>\nPHP \u5b9e\u73b0<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/**<br \/>\n* \u4e8c\u5206\u67e5\u627e\uff08\u4ec5\u652f\u6301\u6709\u5e8f\u6570\u7ec4\uff09<br \/>\n* @param array $sortedArr \u6709\u5e8f\u6570\u7ec4\uff08\u5347\u5e8f\uff09<br \/>\n* @param mixed $target \u76ee\u6807\u503c<br \/>\n* @return int \u627e\u5230\u8fd4\u56de\u7d22\u5f15\uff0c\u672a\u627e\u5230\u8fd4\u56de-1<br \/>\n*\/<br \/>\nfunction binarySearch($sortedArr, $target) {<br \/>\n$left = 0;<br \/>\n$right = count($sortedArr) &#8211; 1;<\/p>\n<p>while ($left &lt;= $right) { $mid = floor(($left + $right) \/ 2); \/\/ \u8ba1\u7b97\u4e2d\u95f4\u7d22\u5f15 if ($sortedArr[$mid] === $target) { return $mid; \/\/ \u627e\u5230\u76ee\u6807\u503c } elseif ($sortedArr[$mid] &gt; $target) {<br \/>\n$right = $mid &#8211; 1; \/\/ \u76ee\u6807\u503c\u5728\u5de6\u534a\u90e8\u5206<br \/>\n} else {<br \/>\n$left = $mid + 1; \/\/ \u76ee\u6807\u503c\u5728\u53f3\u534a\u90e8\u5206<br \/>\n}<br \/>\n}<br \/>\nreturn -1; \/\/ \u672a\u627e\u5230\u76ee\u6807\u503c<br \/>\n}<\/p>\n<p>\/\/ \u6d4b\u8bd5<br \/>\n$sortedArr = [1, 2, 3, 4, 5, 6, 7, 8, 9];<br \/>\n$target = 6;<br \/>\n$index = binarySearch($sortedArr, $target);<br \/>\necho &#8220;\u4e8c\u5206\u67e5\u627e\uff1a\u76ee\u6807\u503c{$target}\u7684\u7d22\u5f15\u662f\uff1a{$index}&#8221;; \/\/ \u8f93\u51fa\uff1a5<br \/>\n\u6548\u7387\u5206\u6790<br \/>\n\u65f6\u95f4\u590d\u6742\u5ea6\uff1a\u6700\u597d O (1)\uff0c\u6700\u574f O (log\u2082n)\uff0c\u5e73\u5747 O (log\u2082n)\uff08\u6548\u7387\u8fdc\u9ad8\u4e8e\u987a\u5e8f\u67e5\u627e\uff09\uff1b<br \/>\n\u7a7a\u95f4\u590d\u6742\u5ea6\uff1aO (1)\uff08\u8fed\u4ee3\u5b9e\u73b0\uff09\uff0cO (log\u2082n)\uff08\u9012\u5f52\u5b9e\u73b0\uff0c\u6808\u7a7a\u95f4\u5f00\u9500\uff09\uff1b<br \/>\n\u9002\u7528\u573a\u666f\uff1a\u5927\u89c4\u6a21\u6709\u5e8f\u6570\u7ec4\u3002<br \/>\n\u7f16\u7a0b\u9898 2\uff1a\u5e26\u6807\u7b7e\u5ffd\u7565\u7684\u5b57\u7b26\u4e32\u622a\u53d6\uff08\u4fee\u6b63\u539f\u4ee3\u7801 bug\uff0c\u4f18\u5316\u903b\u8f91\uff09<br \/>\n\u9700\u6c42\u56de\u987e<br \/>\n<em>\u548c<\/em>\u4e0d\u8ba1\u7b97\u5728\u622a\u53d6\u957f\u5ea6\u5185\uff1b<br \/>\n\u4fdd\u7559\u539f\u6709\u6807\u7b7e\uff0c\u82e5\u622a\u53d6\u540e\u6807\u7b7e\u672a\u95ed\u5408\uff0c\u5220\u9664\u672a\u95ed\u5408\u7684\u5f00\u59cb\u6807\u7b7e\uff1b<br \/>\n\u793a\u4f8b\uff1a123<em>abc<\/em>456<em>def<\/em>789\uff0c\u622a\u53d6 5 \u8fd4\u56de123ab\uff0c\u622a\u53d6 8 \u8fd4\u56de123<em>abc<\/em>45\u3002<br \/>\n\u4f18\u5316\u5b9e\u73b0\uff08PHP\uff09<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/**<br \/>\n* \u5e26\u6807\u7b7e\u5ffd\u7565\u7684\u5b57\u7b26\u4e32\u622a\u53d6<br \/>\n* @param string $str \u539f\u59cb\u5b57\u7b26\u4e32<br \/>\n* @param int $num \u8981\u622a\u53d6\u7684\u6709\u6548\u957f\u5ea6\uff08\u6392\u9664\u6807\u7b7e\uff09<br \/>\n* @return string \u622a\u53d6\u540e\u7684\u5b57\u7b26\u4e32<br \/>\n*\/<br \/>\nfunction newsubstr($str, $num) {<br \/>\nif ($num &lt;= 0) {<br \/>\nreturn &#8221;;<br \/>\n}<br \/>\n$len = strlen($str);<br \/>\n$validLen = 0; \/\/ \u6709\u6548\u5b57\u7b26\u957f\u5ea6\uff08\u6392\u9664\u6807\u7b7e\uff09<br \/>\n$result = &#8221;; \/\/ \u7ed3\u679c\u5b57\u7b26\u4e32<br \/>\n$tagStack = []; \/\/ \u6807\u7b7e\u6808\uff0c\u7528\u4e8e\u5904\u7406\u672a\u95ed\u5408\u6807\u7b7e<br \/>\n$i = 0;<\/p>\n<p>while ($i &lt; $len &amp;&amp; $validLen &lt; $num) {<br \/>\n\/\/ \u5339\u914d\u5f00\u59cb\u6807\u7b7e<em><br \/>\nif (substr($str, $i, 4) === &#8216;<em>&#8216;) {<br \/>\n$tagStack[] = &#8217;em&#8217;; \/\/ \u5165\u6808<br \/>\n$result .= &#8216;<em>&#8216;;<br \/>\n$i += 4; \/\/ \u8df3\u8fc7\u6807\u7b7e\u957f\u5ea6<br \/>\ncontinue;<br \/>\n}<br \/>\n\/\/ \u5339\u914d\u7ed3\u675f\u6807\u7b7e<\/em><br \/>\nif (substr($str, $i, 5) === &#8216;<\/em>&#8216;) {<br \/>\nif (!empty($tagStack) &amp;&amp; end($tagStack) === &#8217;em&#8217;) {<br \/>\narray_pop($tagStack); \/\/ \u51fa\u6808<br \/>\n$result .= &#8216;<\/em>&#8216;;<br \/>\n$i += 5; \/\/ \u8df3\u8fc7\u6807\u7b7e\u957f\u5ea6<br \/>\n} else {<br \/>\n\/\/ \u65e0\u6548\u6807\u7b7e\uff0c\u76f4\u63a5\u8df3\u8fc7<br \/>\n$i += 5;<br \/>\n}<br \/>\ncontinue;<br \/>\n}<br \/>\n\/\/ \u666e\u901a\u5b57\u7b26\uff0c\u8ba1\u5165\u6709\u6548\u957f\u5ea6<br \/>\n$result .= $str[$i];<br \/>\n$validLen++;<br \/>\n$i++;<br \/>\n}<\/p>\n<p>\/\/ \u5904\u7406\u672a\u95ed\u5408\u7684\u6807\u7b7e\uff08\u5220\u9664\u672a\u95ed\u5408\u7684\u5f00\u59cb\u6807\u7b7e\uff09<br \/>\nif (!empty($tagStack)) {<br \/>\n$tag = end($tagStack);<br \/>\n$tagStr = &#8220;&lt;{$tag}&gt;&#8221;;<br \/>\n\/\/ \u4ece\u7ed3\u679c\u5b57\u7b26\u4e32\u672b\u5c3e\u53cd\u5411\u67e5\u627e\u672a\u95ed\u5408\u7684\u5f00\u59cb\u6807\u7b7e\u5e76\u5220\u9664<br \/>\n$tagPos = strrpos($result, $tagStr);<br \/>\nif ($tagPos !== false) {<br \/>\n$result = substr($result, 0, $tagPos);<br \/>\n}<br \/>\n}<\/p>\n<p>return $result;<br \/>\n}<\/p>\n<p>\/\/ \u6d4b\u8bd5<br \/>\n$str = &#8216;123<em>abc<\/em>456<em>def<\/em>789&#8242;;<br \/>\necho newsubstr($str, 5); \/\/ \u8f93\u51fa\uff1a123ab<br \/>\necho &#8216;<br \/>\n&#8216;;<br \/>\necho newsubstr($str, 8); \/\/ \u8f93\u51fa\uff1a123<em>abc<\/em>45<br \/>\n\u7f16\u7a0b\u9898 3\uff1a\u7334\u5b50\u9009\u5927\u738b\uff08\u7ea6\u745f\u592b\u73af\u95ee\u9898\uff0c\u4f18\u5316\u6ce8\u91ca\uff0c\u9a8c\u8bc1\u53ef\u8fd0\u884c\uff09<br \/>\n\u7b97\u6cd5\u601d\u8def<br \/>\n\u7ea6\u745f\u592b\u73af\u95ee\u9898\u7684\u9012\u63a8\u516c\u5f0f\uff1af(n,m) = (f(n-1,m) + m) % n\uff0c\u5176\u4e2d\uff1a<br \/>\nn\uff1a\u7334\u5b50\u603b\u6570\uff1b<br \/>\nm\uff1a\u6b65\u957f\uff1b<br \/>\nf(n,m)\uff1an\u53ea\u7334\u5b50\u65f6\u5927\u738b\u7684\u7d22\u5f15\uff08\u4ece 0 \u5f00\u59cb\uff09\uff1b<br \/>\n\u521d\u59cb\u6761\u4ef6\uff1af(1,m) = 0\uff08\u53ea\u6709 1 \u53ea\u7334\u5b50\u65f6\uff0c\u5927\u738b\u7d22\u5f15\u4e3a 0\uff09\u3002<br \/>\n\u4f18\u5316\u5b9e\u73b0\uff08PHP\uff09<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/**<br \/>\n* \u7334\u5b50\u9009\u5927\u738b\uff08\u7ea6\u745f\u592b\u73af\u95ee\u9898\uff09<br \/>\n* @param int $n \u7334\u5b50\u603b\u6570<br \/>\n* @param int $m \u6570\u5230\u7b2cm\u53ea\u7334\u5b50\u8e22\u51fa<br \/>\n* @return int \u5927\u738b\u7684\u7f16\u53f7\uff08\u4ece1\u5f00\u59cb\uff0c\u82e5\u9700\u4ece0\u5f00\u59cb\u76f4\u63a5\u8fd4\u56de$s\uff09<br \/>\n*\/<br \/>\nfunction monkeyKing($n, $m) {<br \/>\nif ($n &lt; 1 || $m &lt; 1) {<br \/>\nreturn -1; \/\/ \u975e\u6cd5\u53c2\u6570\u8fd4\u56de-1<br \/>\n}<br \/>\n$s = 0; \/\/ \u5927\u738b\u7684\u7d22\u5f15\uff08\u4ece0\u5f00\u59cb\uff09<br \/>\n\/\/ \u9012\u63a8\u8ba1\u7b97n\u53ea\u7334\u5b50\u65f6\u7684\u5927\u738b\u7d22\u5f15<br \/>\nfor ($i = 2; $i &lt;= $n; $i++) {<br \/>\n$s = ($s + $m) % $i;<br \/>\n}<br \/>\nreturn $s + 1; \/\/ \u8f6c\u6362\u4e3a\u4ece1\u5f00\u59cb\u7684\u7f16\u53f7<br \/>\n}<\/p>\n<p>\/\/ \u6d4b\u8bd5<br \/>\n$n = 6; \/\/ 6\u53ea\u7334\u5b50<br \/>\n$m = 2; \/\/ \u6570\u52302\u8e22\u51fa<br \/>\n$kingNo = monkeyKing($n, $m);<br \/>\necho &#8220;\u7334\u5b50\u603b\u6570\uff1a{$n}\uff0c\u6b65\u957f\uff1a{$m}\uff0c\u5927\u738b\u7f16\u53f7\uff1a{$kingNo}&#8221;; \/\/ \u8f93\u51fa\uff1a5\uff08\u7d22\u5f154\uff0c\u7f16\u53f75\uff09<br \/>\n\u7f16\u7a0b\u9898 4\uff1a\u7ffb\u8f6c\u5b57\u7b26\u4e32\u4e2d\u7684\u5355\u8bcd\uff08\u4e0d\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\uff0c\u4f18\u5316\u903b\u8f91\uff09<br \/>\n\u9700\u6c42\u56de\u987e<br \/>\n\u8f93\u5165&#8221;This is PHP&#8221;\uff0c\u8f93\u51fa&#8221;PHP is This&#8221;\uff0c\u4e0d\u4f7f\u7528 PHP \u5185\u7f6e\u7684array_reverse\u7b49\u51fd\u6570\u3002<br \/>\n\u4f18\u5316\u5b9e\u73b0\uff08PHP\uff0c\u7eaf\u624b\u52a8\u5b9e\u73b0\u7ffb\u8f6c\uff09<br \/>\nphp<br \/>\n\u8fd0\u884c<br \/>\n\/**<br \/>\n* \u7ffb\u8f6c\u5b57\u7b26\u4e32\u4e2d\u7684\u5355\u8bcd\uff08\u4e0d\u4f7f\u7528\u5185\u7f6e\u7ffb\u8f6c\u51fd\u6570\uff09<br \/>\n* @param string $str \u539f\u59cb\u5b57\u7b26\u4e32<br \/>\n* @return string \u7ffb\u8f6c\u540e\u7684\u5b57\u7b26\u4e32<br \/>\n*\/<br \/>\nfunction myrev($str) {<br \/>\n\/\/ \u7b2c\u4e00\u6b65\uff1a\u5c06\u5b57\u7b26\u4e32\u6309\u7a7a\u683c\u5206\u5272\u4e3a\u5355\u8bcd\u6570\u7ec4\uff08\u624b\u52a8\u5206\u5272\uff0c\u4e0d\u4f7f\u7528explode\uff09<br \/>\n$arr = [];<br \/>\n$word = &#8221;;<br \/>\n$len = strlen($str);<br \/>\nfor ($i = 0; $i &lt; $len; $i++) {<br \/>\nif ($str[$i] !== &#8216; &#8216;) {<br \/>\n$word .= $str[$i];<br \/>\n} else {<br \/>\nif (!empty($word)) {<br \/>\n$arr[] = $word;<br \/>\n$word = &#8221;;<br \/>\n}<br \/>\n}<br \/>\n}<br \/>\n\/\/ \u6dfb\u52a0\u6700\u540e\u4e00\u4e2a\u5355\u8bcd<br \/>\nif (!empty($word)) {<br \/>\n$arr[] = $word;<br \/>\n}<\/p>\n<p>\/\/ \u7b2c\u4e8c\u6b65\uff1a\u624b\u52a8\u7ffb\u8f6c\u6570\u7ec4\uff08\u4e0d\u4f7f\u7528array_reverse\uff09<br \/>\n$num = count($arr);<br \/>\nfor ($i = 0; $i &lt; floor($num \/ 2); $i++) {<br \/>\n\/\/ \u4ea4\u6362$i\u548c$num-$i-1\u4f4d\u7f6e\u7684\u5143\u7d20<br \/>\n$temp = $arr[$i];<br \/>\n$arr[$i] = $arr[$num &#8211; $i &#8211; 1];<br \/>\n$arr[$num &#8211; $i &#8211; 1] = $temp;<br \/>\n}<\/p>\n<p>\/\/ \u7b2c\u4e09\u6b65\uff1a\u624b\u52a8\u62fc\u63a5\u6570\u7ec4\u4e3a\u5b57\u7b26\u4e32\uff08\u4e0d\u4f7f\u7528implode\uff09<br \/>\n$result = &#8221;;<br \/>\nfor ($i = 0; $i &lt; $num; $i++) {<br \/>\n$result .= $arr[$i];<br \/>\n\/\/ \u4e0d\u662f\u6700\u540e\u4e00\u4e2a\u5355\u8bcd\uff0c\u6dfb\u52a0\u7a7a\u683c<br \/>\nif ($i !== $num &#8211; 1) {<br \/>\n$result .= &#8216; &#8216;;<br \/>\n}<br \/>\n}<\/p>\n<p>return $result;<br \/>\n}<\/p>\n<p>\/\/ \u6d4b\u8bd5<br \/>\n$str = &#8216;This is PHP&#8217;;<br \/>\n$reversedStr = myrev($str);<br \/>\necho &#8220;\u539f\u59cb\u5b57\u7b26\u4e32\uff1a{$str}<br \/>\n&#8220;;<br \/>\necho &#8220;\u7ffb\u8f6c\u540e\u5b57\u7b26\u4e32\uff1a{$reversedStr}&#8221;; \/\/ \u8f93\u51fa\uff1aPHP is This<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u7b80\u7b54\u9898\u4e0e\u7f16\u7a0b\u9898\u5b8c\u6574\u4f18\u5316\u89e3\u7b54 \u4e00\u3001\u7b80\u7b54\u9898\uff08\u8865\u5145\u5b8c\u5584 + \u4fee\u6b63\u7ec6\u8282\uff09 1. \u5e38\u7528 Linux \u547d\u4ee4\u53ca\u529f\u80fd\uff08\u5df2\u5b8c\u5584\uff0c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[68],"tags":[],"content_type":[],"class_list":["post-15938","post","type-post","status-publish","format-standard","hentry","category-zzjy"],"_links":{"self":[{"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=\/wp\/v2\/posts\/15938","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15938"}],"version-history":[{"count":0,"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=\/wp\/v2\/posts\/15938\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15938"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15938"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15938"},{"taxonomy":"content_type","embeddable":true,"href":"https:\/\/www.aiersheng.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fcontent_type&post=15938"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}