<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>程序开发学习网站</title><link>http://www.hartyu.com/</link><description>程序开发学习网站</description><item><title>唱衰这么多年，PHP 仍然还是你大爷！</title><link>http://www.hartyu.com/?id=56</link><description>&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;本文详细探讨了 PHP 在互联网中的广泛应用和重要性。文章通过大量的数据和事实来证明 PHP 仍然是最受欢迎的编程语言之一，占据了 77.2% 的市场份额，远超其他编程语言。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;原文链接：&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://timotijhof.net/posts/2023/an-internet-of-php/&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;译者水平有限，不免存在遗漏或错误之处。如有疑问，敬请查阅原文。&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;以下是译文。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;PHP 是个庞然大物。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;尽管有人不断宣称 PHP “即将消亡”。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;但无法改变的事实是：互联网依然大量依赖 PHP。本文将通过大量的数据和事实告诉你为何 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;PHP 仍然在统治着互联网，你大爷仍然还是你大爷&lt;/strong&gt;。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;br/&gt;&lt;/p&gt;&lt;h3 id=&quot;dj1oh&quot; name=&quot;%E7%BB%9F%E8%AE%A1%E6%95%B0%E6%8D%AE&quot; style=&quot;overflow-wrap: break-word; margin: 16px 0px 8px; padding: 0px; font-size: 16px; box-sizing: border-box; list-style: inherit; line-height: 26px; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;统计数据&lt;/strong&gt;&lt;/h3&gt;&lt;h4 id=&quot;dajdj&quot; name=&quot;PHP-%E4%BB%8D%E7%84%B6%E6%98%AF%E9%A6%96%E9%80%89%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80&quot; style=&quot;overflow-wrap: break-word; margin: 12px 0px 8px; padding: 0px; box-sizing: border-box; list-style: inherit; line-height: 24px; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;PHP 仍然是首选编程语言&lt;/strong&gt;&lt;/h4&gt;&lt;p&gt;&lt;figure class=&quot;&quot; style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; margin: 16px 0px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;div class=&quot;rno-markdown-img-url&quot; style=&quot;overflow-wrap: break-word; margin: 16px 0px; padding: 0px; box-sizing: border-box; text-align: center; list-style: inherit;&quot;&gt;&lt;div class=&quot;rno-markdown-img-url-inner&quot; style=&quot;overflow-wrap: break-word; margin: 0px auto; padding: 0px; box-sizing: border-box; position: relative; display: inline-block; list-style: inherit; width: 933.75px; white-space-collapse: collapse !important;&quot;&gt;&lt;div style=&quot;overflow-wrap: break-word; margin: 0px; padding: 0px; box-sizing: border-box; list-style: inherit; width: 933.75px;&quot;&gt;&lt;img src=&quot;https://developer.qcloudimg.com/http-save/yehe-2002950/981c035cce8ba257800a6a81bb3d178b.jpg&quot; style=&quot;overflow-wrap: break-word; border: 0px; box-sizing: border-box; list-style: inherit; cursor: zoom-in; width: 933.75px; height: auto; display: block; margin: 0px auto; max-width: 100%; max-height: 100%; border-radius: 3px;&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;根据 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;W3 Techs 对全球前 1000 万个网站使用的编程语言分析[1]&lt;/strong&gt;，我们可以看到：&lt;/p&gt;&lt;ul class=&quot;ul-level-0 list-paddingleft-2&quot; style=&quot;list-style-type: none;&quot;&gt;&lt;li&gt;&lt;p&gt;PHP 占比 77.2%&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;ASP 占比 6.9%&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Ruby 占比 5.4%&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4 id=&quot;196ia&quot; name=&quot;%E5%9F%BA%E4%BA%8E-PHP-%E7%9A%84%E5%86%85%E5%AE%B9%E7%AE%A1%E7%90%86%E6%A1%86%E6%9E%B6&quot; style=&quot;overflow-wrap: break-word; margin: 16px 0px 8px; padding: 0px; box-sizing: border-box; list-style: inherit; line-height: 24px; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;基于 PHP 的内容管理框架&lt;/strong&gt;&lt;/h4&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;绝大多数公共网站都是通过 PHP 和 CMS 来构建的。根据市场份额，&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;12 大 CMS 软件中有 8 个是用 PHP 编写的&lt;/strong&gt;。下面的数据来自 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;W3 Techs 对前 1000 万个网站的 CMS 使用情况调查[2]&lt;/strong&gt;，每个百分点代表前 1000 万个网站中的 10 万网站。&lt;/p&gt;&lt;ul class=&quot;ul-level-0 list-paddingleft-2&quot; style=&quot;list-style-type: none;&quot;&gt;&lt;li&gt;&lt;p&gt;[&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;PHP&lt;/strong&gt;] &lt;span class=&quot;mod-overview__keyword&quot; style=&quot;overflow-wrap: break-word; margin: 0px 4px; cursor: pointer; color: #0052D9; padding-right: 10px; background-image: url(&amp;quot;images/icon-keyword_32a.svg&amp;quot;); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none; box-sizing: border-box; list-style: inherit;&quot;&gt;WordPress&lt;/span&gt; 生态系统 (63%)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;[Ruby] Shopify&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Wix&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Squarespace&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;[&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;PHP&lt;/strong&gt;] Joomla 生态系统 (3%)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;[&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;PHP&lt;/strong&gt;] &lt;span class=&quot;mod-overview__keyword&quot; style=&quot;overflow-wrap: break-word; margin: 0px 4px; cursor: pointer; color: #0052D9; padding-right: 10px; background-image: url(&amp;quot;images/icon-keyword_32a.svg&amp;quot;); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none; box-sizing: border-box; list-style: inherit;&quot;&gt;Drupal&lt;/span&gt; 生态系统 (2%)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;[&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;PHP&lt;/strong&gt;] Adobe Magento (2%)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;[&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;PHP&lt;/strong&gt;] PrestaShop (1%)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;[&lt;span class=&quot;mod-overview__keyword&quot; style=&quot;overflow-wrap: break-word; margin: 0px 4px; cursor: pointer; color: #0052D9; padding-right: 10px; background-image: url(&amp;quot;images/icon-keyword_32a.svg&amp;quot;); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none; box-sizing: border-box; list-style: inherit;&quot;&gt;Python&lt;/span&gt;] Google Blogger&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;[&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;PHP&lt;/strong&gt;] Bitrix (1%)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;[&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;PHP&lt;/strong&gt;] OpenCart (1%)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;[&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;PHP&lt;/strong&gt;] TYPO3 (1%)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;figure class=&quot;&quot; style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; margin: 16px 0px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;div class=&quot;rno-markdown-img-url&quot; style=&quot;overflow-wrap: break-word; margin: 16px 0px; padding: 0px; box-sizing: border-box; text-align: center; list-style: inherit;&quot;&gt;&lt;div class=&quot;rno-markdown-img-url-inner&quot; style=&quot;overflow-wrap: break-word; margin: 0px auto; padding: 0px; box-sizing: border-box; position: relative; display: inline-block; list-style: inherit; width: 650.484px; white-space-collapse: collapse !important;&quot;&gt;&lt;div style=&quot;overflow-wrap: break-word; margin: 0px; padding: 0px; box-sizing: border-box; list-style: inherit; width: 650.484px;&quot;&gt;&lt;img src=&quot;https://developer.qcloudimg.com/http-save/yehe-2002950/f589054f8527563e5d2913ac69608b65.jpg&quot; style=&quot;overflow-wrap: break-word; border: 0px; box-sizing: border-box; list-style: inherit; cursor: zoom-in; width: 650.484px; height: auto; display: block; margin: 0px auto; max-width: 100%; max-height: 100%; border-radius: 3px;&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;不得不说，Wordpress 在内容管理领域依然站有绝对的统治地位。&lt;/p&gt;&lt;h4 id=&quot;4a5pa&quot; name=&quot;PHP-%E5%9C%A8%E7%94%B5%E5%95%86%E9%A2%86%E5%9F%9F%E7%9A%84%E5%BA%94%E7%94%A8&quot; style=&quot;overflow-wrap: break-word; margin: 16px 0px 8px; padding: 0px; box-sizing: border-box; list-style: inherit; line-height: 24px; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;PHP 在电商领域的应用&lt;/strong&gt;&lt;/h4&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;根据 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;BuiltWith 2023 年 8 月对在线商店的报告[3]&lt;/strong&gt;，我们可以看到 PHP 在电商领域仍然占统治地位：&lt;/p&gt;&lt;ul class=&quot;ul-level-0 list-paddingleft-2&quot; style=&quot;list-style-type: none;&quot;&gt;&lt;li&gt;&lt;p&gt;使用了 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;WooCommerce 插件[4]&lt;/strong&gt;的 Wordpress 网站（全球市场份额 24%）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;Adobe Magento[5]&lt;/strong&gt;（全球市场份额 7%）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;OpenCart（全球市场份额 2%，&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;俄罗斯市场份额[6]&lt;/strong&gt; 24%）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;PrestaShop （全球市场份额 2%，&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;法国市场份额[7]&lt;/strong&gt; 14%）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;Shopware[8]&lt;/strong&gt;（全球市场份额 1%，&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;德国市场份额[9]&lt;/strong&gt; 12%）&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;figure class=&quot;&quot; style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; margin: 16px 0px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;div class=&quot;rno-markdown-img-url&quot; style=&quot;overflow-wrap: break-word; margin: 16px 0px; padding: 0px; box-sizing: border-box; text-align: center; list-style: inherit;&quot;&gt;&lt;div class=&quot;rno-markdown-img-url-inner&quot; style=&quot;overflow-wrap: break-word; margin: 0px auto; padding: 0px; box-sizing: border-box; position: relative; display: inline-block; list-style: inherit; width: 650.484px; white-space-collapse: collapse !important;&quot;&gt;&lt;div style=&quot;overflow-wrap: break-word; margin: 0px; padding: 0px; box-sizing: border-box; list-style: inherit; width: 650.484px;&quot;&gt;&lt;img src=&quot;https://developer.qcloudimg.com/http-save/yehe-2002950/897ff6d785daaa31a30ef33a59d9d7cc.jpg&quot; style=&quot;overflow-wrap: break-word; border: 0px; box-sizing: border-box; list-style: inherit; cursor: zoom-in; width: 650.484px; height: auto; display: block; margin: 0px auto; max-width: 100%; max-height: 100%; border-radius: 3px;&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/p&gt;&lt;h3 id=&quot;aiagr&quot; name=&quot;%E8%B6%A3%E9%97%BB%E8%BD%B6%E4%BA%8B&quot; style=&quot;overflow-wrap: break-word; margin: 16px 0px 8px; padding: 0px; font-size: 16px; box-sizing: border-box; list-style: inherit; line-height: 26px; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;趣闻轶事&lt;/strong&gt;&lt;/h3&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;Kinsta 发表了一篇文章[10]&lt;/strong&gt;，证明 PHP 仍然很快，仍然很活跃，仍然很流行：&lt;/p&gt;&lt;blockquote style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; margin: 0px 0px 24px; padding: 0px 15px; color: rgb(119, 119, 119); border-left: 4px solid rgb(221, 221, 221); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 0px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px;&quot;&gt;❝早在 2011 年，人们就一直在宣称 PHP 已死。但事实是，PHP 7.3 的请求处理速度是 PHP 5.6 的 2-3 倍，而 PHP 8.1 则更快。正因为 PHP 的普及，我们可以很轻松地招聘到有经验的 PHP 开发者。&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Vimeo 工程师 Matt Brown 在《&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;这不是遗留代码，而是 PHP[11]&lt;/strong&gt;》一文中表示：&lt;/p&gt;&lt;blockquote style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; margin: 0px 0px 24px; padding: 0px 15px; color: rgb(119, 119, 119); border-left: 4px solid rgb(221, 221, 221); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 0px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px;&quot;&gt;❝&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;PHP 从未停止创新&lt;/strong&gt;。尽管我们计划将 500,000 行的 PHP 代码划分为多个 [服务]，但最终这些建议都没有被采纳。
Vimeo 自 2004 年以来规模扩大了数倍，我们的 PHP 代码库也是如此。&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Ars Technica 发布了一个包含历史数据的 W3 Techs 报告，证明 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;PHP 仍然遥遥领先[12]&lt;/strong&gt;：&lt;/p&gt;&lt;blockquote style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; margin: 0px 0px 24px; padding: 0px 15px; color: rgb(119, 119, 119); border-left: 4px solid rgb(221, 221, 221); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 0px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px;&quot;&gt;❝尽管 PHP 有许多臭名昭著的怪癖，但它似乎还能活很久。从 2010 年的 72.5% 市场份额增长到今天的 78.9% 市场份额，&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;目前还没有任何明显的竞争对手能让 PHP 感到威胁&lt;/strong&gt;。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;figure class=&quot;&quot; style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; margin: 16px 0px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;div class=&quot;rno-markdown-img-url&quot; style=&quot;overflow-wrap: break-word; margin: 16px 0px; padding: 0px; box-sizing: border-box; text-align: center; list-style: inherit;&quot;&gt;&lt;div class=&quot;rno-markdown-img-url-inner&quot; style=&quot;overflow-wrap: break-word; margin: 0px auto; padding: 0px; box-sizing: border-box; position: relative; display: inline-block; list-style: inherit; width: 996px; white-space-collapse: collapse !important;&quot;&gt;&lt;div style=&quot;overflow-wrap: break-word; margin: 0px; padding: 0px; box-sizing: border-box; list-style: inherit; width: 996px;&quot;&gt;&lt;img src=&quot;https://developer.qcloudimg.com/http-save/yehe-2002950/4f674dd27b26f7c47e2ec727471f6869.jpg&quot; style=&quot;overflow-wrap: break-word; border: 0px; box-sizing: border-box; list-style: inherit; cursor: zoom-in; width: 996px; height: auto; display: block; margin: 0px auto; max-width: 100%; max-height: 100%; border-radius: 3px;&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;在&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;针对 Python 创始人 Guido van Rossum 的一个采访播客[13]&lt;/strong&gt;中，Lex Fridman 如是说：&lt;/p&gt;&lt;blockquote style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; margin: 0px 0px 24px; padding: 0px 15px; color: rgb(119, 119, 119); border-left: 4px solid rgb(221, 221, 221); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 0px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px;&quot;&gt;❝Lex: 目前互联网的大部分后端服务仍然是用 PHP 写的
Guido: 没错！&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Daniel Stenberg 在其&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;年度 Curl 用户调查[14]&lt;/strong&gt;（第 18 页）中统计了用户使用 curl 的方式。直接使用 curl 命令行的用户占比最高（78.4%），&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;用户最熟悉的方式就是在 PHP 中使用 curl&lt;/strong&gt;，自 2015 年调查开始以来一直都是这个结果。2023 年的调查报告显示有 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;19.6%&lt;/strong&gt; 的用户在 PHP 中使用 curl。&lt;/p&gt;&lt;blockquote style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; margin: 0px 0px 24px; padding: 0px 15px; color: rgb(119, 119, 119); border-left: 4px solid rgb(221, 221, 221); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 0px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px;&quot;&gt;❝curl (CLI) 78.4%, php-curl 19.6%, pycurl 13%, […], node-libcurl 4.1%.&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Ember.js 虽然起源于 Ruby 社区，但作为一个前端框架，它可以与任何后端配合使用。&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;Ember 的社区调查报告[15]&lt;/strong&gt;显示，PHP 是受访者第三喜欢的选项，仅次于 Ruby 和 &lt;span class=&quot;mod-overview__keyword&quot; style=&quot;overflow-wrap: break-word; margin: 0px 4px; cursor: pointer; color: #0052D9; padding-right: 10px; background-image: url(&amp;quot;images/icon-keyword_32a.svg&amp;quot;); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;Java&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;&lt;figure class=&quot;&quot; style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; margin: 16px 0px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;div class=&quot;rno-markdown-img-url&quot; style=&quot;overflow-wrap: break-word; margin: 16px 0px; padding: 0px; box-sizing: border-box; text-align: center; list-style: inherit;&quot;&gt;&lt;div class=&quot;rno-markdown-img-url-inner&quot; style=&quot;overflow-wrap: break-word; margin: 0px auto; padding: 0px; box-sizing: border-box; position: relative; display: inline-block; list-style: inherit; width: 996px; white-space-collapse: collapse !important;&quot;&gt;&lt;div style=&quot;overflow-wrap: break-word; margin: 0px; padding: 0px; box-sizing: border-box; list-style: inherit; width: 996px;&quot;&gt;&lt;img src=&quot;https://developer.qcloudimg.com/http-save/yehe-2002950/a3c29d6cee4579682c0df042f887b1b4.jpg&quot; style=&quot;overflow-wrap: break-word; border: 0px; box-sizing: border-box; list-style: inherit; cursor: zoom-in; width: 996px; height: auto; display: block; margin: 0px auto; max-width: 100%; max-height: 100%; border-radius: 3px;&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Ember 的调查还询问了一些通用的行业问题。例如，&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;有 24% 的受访者表示他们的基础设施都是“自托管”&lt;/strong&gt;，而不是依赖于主流的云服务提供商。虽然这项调查本身不能完全代表整个行业，但结果仍可能会让人大吃一惊，特别是对那些依赖社交媒体和会议演讲来了解商业现状的人来说更是如此。对于企业来说，现在准备好&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;云退出战略[16]&lt;/strong&gt;（例如 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;NHS[17]&lt;/strong&gt;）比以往任何时候都更加重要。你可以阅读 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;Basecamp 的文章[18]&lt;/strong&gt;了解云退出战略是如何为他们每年节省数百万美元的。&lt;/p&gt;&lt;h3 id=&quot;djmo7&quot; name=&quot;%E5%A4%A7%E8%A7%84%E6%A8%A1-PHP-%E5%BA%94%E7%94%A8&quot; style=&quot;overflow-wrap: break-word; margin: 16px 0px 8px; padding: 0px; font-size: 16px; box-sizing: border-box; list-style: inherit; line-height: 26px; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;大规模 PHP 应用&lt;/strong&gt;&lt;/h3&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;上述统计数据衡量了不同网站和公司的数量，其中绝大多数是基于 PHP 构建的。但所有这些只告诉我们它们的规模在前 1000 万名之内。那前 500 名呢？&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Jack Ellis 在《&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;Laravel 能否扩展？[19]&lt;/strong&gt;》这篇文章中指出，你不应该仅根据每秒可以处理的请求数量来做选择。大部分业务都不太可能达到那个水平，而且还会面临很多其他瓶颈。但事实证明，PHP &amp;nbsp;是可以扩展到这一水平的语言之一。&lt;/p&gt;&lt;blockquote style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; margin: 0px 0px 24px; padding: 0px 15px; color: rgb(119, 119, 119); border-left: 4px solid rgb(221, 221, 221); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 0px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px;&quot;&gt;❝当看到我们的软件（基于 Laravel 构建的 Fathom &amp;nbsp;Analytics）增长迅猛时，我们从未怀疑过“这个框架是否能够扩展？”。
我与多家企业合作过，他们利用 Laravel 支撑整个业务运营。像 Twitch、Disney、New York Times、WWE 和 &amp;nbsp;Warner Bros 这样的公司也在他们的多个项目中使用 Laravel。Laravel 能够轻松应对大规模的应用需求。&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Vimeo 工程师 Matt Brown 在《&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;这不是遗留代码，而是 PHP[20]&lt;/strong&gt;》一文中强调：&lt;/p&gt;&lt;blockquote style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; margin: 0px 0px 24px; padding: 0px 15px; color: rgb(119, 119, 119); border-left: 4px solid rgb(221, 221, 221); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 0px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px;&quot;&gt;❝可以很明确地告诉你们，&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;PHP 还是你大爷&lt;/strong&gt;。Vimeo 在 PHP 方面的持续成功就是证明，在 2020 年它仍然是快速发展的公司的绝佳工具。&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Vimeo 还以开发流行的 PHP 静态分析工具 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;Psalm[21]&lt;/strong&gt; 而闻名。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Slack 公司首席架构师 Keith Adams 在《&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;认真对待 PHP[22]&lt;/strong&gt;》一文中提到：&lt;/p&gt;&lt;blockquote style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; margin: 0px 0px 24px; padding: 0px 15px; color: rgb(119, 119, 119); border-left: 4px solid rgb(221, 221, 221); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 0px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px;&quot;&gt;❝Slack 服务端大部分应用逻辑都是由 PHP 来执行的。
相比于 PHP 的优势而言（通过故障隔离减少 bug 成本；安全并发；高吞吐量），PHP 存在的问题可以忽略不计。&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;我们再分析一下 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;W3 Techs 的报告[23]&lt;/strong&gt;，分析部分业务比较单一的公司的规模。&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;规模最大的是 WordPress&lt;/strong&gt;，它驱动着 Automattic 的 WordPress.com。&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;每月有 200 亿次页面访问[24]&lt;/strong&gt;（Alexa 全球排名 55）。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;如果我们继续往下看，来到占市场份额 0.1% 的条目，可以看到大量的网站都是靠 PHP 系统来支撑的，PHP 仍然是 10w 小网站的首选框架。&lt;/p&gt;&lt;ul class=&quot;ul-level-0 list-paddingleft-2&quot; style=&quot;list-style-type: none;&quot;&gt;&lt;li&gt;&lt;p&gt;#23 CMS: &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;Moodle[25]&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;#25 CMS: phpBB，例如 Google 的 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;Waze 社区[26]&lt;/strong&gt;, ApacheFriends 论坛，VideoLAN 论坛。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;#31 CMS: XenForo 论坛，例如 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;ArsTechnica.com[27]&lt;/strong&gt; 和 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;MacRumors.com[28]&lt;/strong&gt;。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;#33 CMS: Roundcube。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;#45 CMS: MediaWiki。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;#49 CMS: vBulletin 论坛。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;#53 CMS: IPS 社区 , 例如 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;MalwareBytes.com[29]&lt;/strong&gt;、&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;BleepingComputer[30]&lt;/strong&gt; 和 Squarespace.com 论坛。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;MediaWiki[31]&lt;/strong&gt; 是&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;维基百科背后的平台[32]&lt;/strong&gt;，每月有 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;250 亿的页面浏览量[33]&lt;/strong&gt;（Alexa 排名 12）。同时 MediaWiki 还驱动着 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;Fandom[34]&lt;/strong&gt;)（每月有 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;20 亿的页面浏览量[35]&lt;/strong&gt;，Similarweb 排名 44）和 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;WikiHow[36]&lt;/strong&gt;（每月有 1 亿访问者，Alexa 排名 215）。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;除此之外还有一大批互联网公司由 PHP 驱动，例如 Facebook（Alexa 排名 7）、Etsy（Alexa 排名 66）、Vimeo（Alexa 排名 165）和 Slack（Similarweb 排名 362）。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Etsy 之所以引人关注，是因为它有高比例的活跃会话和动态内容。这与维基百科或 WordPress 不同，后者可以从静态缓存中提供大多数页面视图。这意味着尽管规模相似，但 Etsy 的 PHP 应用程序更容易受到&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;高流量[37]&lt;/strong&gt;的影响。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Etsy 也是 PHP 创始人 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;Rasmus &amp;nbsp;Lerdorf[38]&lt;/strong&gt; 的东家。他有时会在技术分享中展示 Etsy 的代码库片段。（极客旁注：他在 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;2021 年的现代 PHP 讲座[39]&lt;/strong&gt;中解释了 Etsy 是如何使用 rsync 进行部署的，就像 Wikipedia 在过去 10 年使用 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;Scap[40]&lt;/strong&gt; 一样）。Etsy 的官方博客偶尔会提到他们对模块化 PHP 单体的工作进展，例如 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;Plural 本地化[41]&lt;/strong&gt;。有时也会放出详细的 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;Etsy 站点性能报告[42]&lt;/strong&gt;：&lt;/p&gt;&lt;blockquote style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; margin: 0px 0px 24px; padding: 0px 15px; color: rgb(119, 119, 119); border-left: 4px solid rgb(221, 221, 221); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 0px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px;&quot;&gt;❝很高兴地告诉大家，升级到 PHP7 之后，本季度整个网站的性能都得到了提高，所有页面的性能都有了显著的提升。&lt;/p&gt;&lt;/blockquote&gt;&lt;h3 id=&quot;bdfq&quot; name=&quot;%E6%88%91%E7%9A%84%E8%A7%82%E7%82%B9&quot; style=&quot;overflow-wrap: break-word; margin: 16px 0px 8px; padding: 0px; font-size: 16px; box-sizing: border-box; list-style: inherit; line-height: 26px; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;我的观点&lt;/strong&gt;&lt;/h3&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;大多数人认为，PHP 社区似乎在公共舆论中占据的空间不大。无论是 PHP 核心开发者 , 还是 PHP 软件包（例如 Laravel、Symfony、WordPress、Composer 和 PHPUnit）的作者，亦或是日常工作中使用 PHP 的普通工程师，我们很少在社交媒体上的争论中看到他们的身影。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;你也很少看到我们在会议上做演讲，宣称某个技术栈“绝对会”为你的公司带来裨益。如果你听了某些 JavaScript 框架粉丝的演讲，你可能会认为大多数公司今天都在使用他们的技术栈。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;我不是说 JavaScript 不好，而是某些人在没有考虑技术或商业需求的前提下给出了“xxx 最好”的断言。&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;这是一种过度营销&lt;/strong&gt;，你怎么知道它最好？你跟别的语言比较过了吗？&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;我也不是说 JavaScript 没有用武之地，我们要辩证地看待世间万物。你可以分享你的经验和成果，比如哪些行得通，哪些行不通。要持续探索、持续创新、持续分享，持续推动人类前进。这就是&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;自由软件[43]&lt;/strong&gt;的精神！&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;你可能看过《&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;The Market for Lemons [44]&lt;/strong&gt;》和《&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;A Historical Reference of React Criticism[45]&lt;/strong&gt;》这两篇文章，他们都指出了 JS 的问题。但是 ... &amp;nbsp;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;React 仅占有 3% 的市场份额[46]&lt;/strong&gt;。再加上其他的小框架（Vue、Angular、Svelte），这个数字才达到 5%。而基于 Node.js 的 Web 服务也仅占有 &lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;3% 的市场份额[47]&lt;/strong&gt;。这是否意味着超过 90% 的人都错过了 PHP？&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;别忘了，这 5% 代表了 50 万个主要网站，这是一个巨大的数字。Node.js 有自己的优势（实时消息流）。但是，Node.js 也有其弱点（&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;阻塞主线程[48]&lt;/strong&gt;）。另外要强调一点：&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;市场份额并不能完全反映规模&lt;/strong&gt;。你可能驱动着排名前 1% 的几个大型组织，也可能驱动着排名后 1% 的组织。或者像 WordPress 那样同时支撑排名前 1% 和其他 4000 万个网站。&lt;/p&gt;&lt;h3 id=&quot;9r5aj&quot; name=&quot;%E7%BB%93%E8%AE%BA&quot; style=&quot;overflow-wrap: break-word; margin: 16px 0px 8px; padding: 0px; font-size: 16px; box-sizing: border-box; list-style: inherit; line-height: 26px; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;结论&lt;/strong&gt;&lt;/h3&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;无论是老公司还是小公司，无论其规模大小，可能都没有使用我们在公共场所经常听到的技术栈。如果不考虑个人项目和烧钱的初创公司，其他公司的这个现象更为明显。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;对于正在成长和持续经营的企业来说，PHP 是否能够成为企业首选的前三名语言？当一个企业和其团队在扩大规模时，编程语言是否完全不重要？我们不得而知。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;我只知道如今有许多企业都在使用 PHP，而 PHP 已被证明是一种可持续的选择，它经受住了时间的考验。例如，像 Fathom 这样的新公司，在短短三年内就&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;实现了盈利[49]&lt;/strong&gt;。正如 &amp;nbsp;Fathom 的文章所说，大部分公司的业务永远达不到那种规模。不过话又说回来，&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;即使面对大规模的业务，PHP &amp;nbsp;仍然是一种经济可持续的选择&lt;/strong&gt;。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;那么问题来了，PHP 是唯一的选择吗？当然不是。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;有的语言速度更快（Rust），有的语言社区规模更大（Node.js），或者&lt;span class=&quot;mod-overview__keyword&quot; style=&quot;overflow-wrap: break-word; margin: 0px 4px; cursor: pointer; color: #0052D9; padding-right: 10px; background-image: url(&amp;quot;images/icon-keyword_32a.svg&amp;quot;); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;编译器&lt;/span&gt;更成熟（Java），但这往往会牺牲其他价值。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;PHP 达到了某种柔中取刚的平衡点。它速度很快，&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;社区规模较大[50]&lt;/strong&gt;，&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;语法现代化[51]&lt;/strong&gt;，&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;开发活跃[52]&lt;/strong&gt;，易于学习，易于扩展，并且拥有一个庞大的标准库。它可以在大规模场景下提供高效和安全的并发，而又没有异步复杂性或阻塞主线程的问题。由于平台稳定，加上社区重视兼容性和&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;低依赖性[53]&lt;/strong&gt;，它的维护成本往往较低。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;当然，每个人的需求不尽相同，但想要达到上述的这种平衡点，PHP 是少数几个能满足需求的软语言之一。除此之外还有哪个语言可以做到？&lt;/p&gt;&lt;h4 id=&quot;38m64&quot; name=&quot;%E5%BC%95%E7%94%A8%E9%93%BE%E6%8E%A5&quot; style=&quot;overflow-wrap: break-word; margin: 16px 0px 8px; padding: 0px; box-sizing: border-box; list-style: inherit; line-height: 24px; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit;&quot;&gt;引用链接&lt;/strong&gt;&lt;/h4&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[1]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;W3 Techs 对全球前 1000 万个网站使用的编程语言分析: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://w3techs.com/technologies/overview/programming_language&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[2]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;W3 Techs 对前 1000 万个网站的 CMS 使用情况调查: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://w3techs.com/technologies/overview/content_management&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[3]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;BuiltWith 2023 年 8 月对在线商店的报告: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://trends.builtwith.com/shop&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[4]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;WooCommerce 插件: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://en.wikipedia.org/wiki/WooCommerce&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[5]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Adobe Magento: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://en.wikipedia.org/wiki/Magento&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[6]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;俄罗斯市场份额: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://trends.builtwith.com/shop/country/Russia&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[7]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;法国市场份额: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://trends.builtwith.com/shop/country/France&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[8]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Shopware: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://en.wikipedia.org/wiki/Shopware&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[9]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;德国市场份额: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://www.ehi.org/presse/e-commerce-2021-zeit-des-wachstums/&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[10]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Kinsta 发表了一篇文章: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://kinsta.com/blog/is-php-dead/&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[11]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;这不是遗留代码，而是 PHP: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://medium.com/vimeo-engineering-blog/its-not-legacy-code-it-s-php-1f0ee0462580&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[12]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;PHP 仍然遥遥领先: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://arstechnica.com/gadgets/2021/09/php-maintains-an-enormous-lead-in-server-side-programming-languages/&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[13]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;针对 Python 创始人 Guido van Rossum 的一个采访播客: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://lexfridman.com/guido-van-rossum-2&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[14]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;年度 Curl 用户调查: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://daniel.haxx.se/blog/2023/06/17/curl-user-survey-2023-analysis/&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[15]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Ember 的社区调查报告: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://emberjs.com/survey/2022/&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[16]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;云退出战略: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://www.infoworld.com/article/3211374/public-cloud-consolidation-requires-an-exit-plan-even-from-the-big-guys.html&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[17]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;NHS: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://digital.nhs.uk/services/cloud-centre-of-excellence/strategy/nhs-cloud-exit-strategy&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[18]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Basecamp 的文章: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://world.hey.com/dhh/we-have-left-the-cloud-251760fb&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[19]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Laravel 能否扩展？: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://usefathom.com/blog/does-laravel-scale&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[20]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;这不是遗留代码，而是 PHP: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://medium.com/vimeo-engineering-blog/its-not-legacy-code-it-s-php-1f0ee0462580&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[21]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Psalm: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://psalm.dev/&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[22]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;认真对待 PHP: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://slack.engineering/taking-php-seriously/&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[23]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;W3 Techs 的报告: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://w3techs.com/technologies/overview/content_management&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[24]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;每月有 200 亿次页面访问: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://wordpress.com/activity/&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[25]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Moodle: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://en.wikipedia.org/wiki/Moodle&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[26]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Waze 社区: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://www.waze.com/forum/&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[27]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;ArsTechnica.com: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://arstechnica.com/civis/&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[28]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;MacRumors.com: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://forums.macrumors.com/&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[29]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;MalwareBytes.com: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://forums.malwarebytes.com/&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[30]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;BleepingComputer: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://en.wikipedia.org/wiki/Bleeping_Computer&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[31]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;MediaWiki: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://en.wikipedia.org/wiki/MediaWiki&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[32]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;维基百科背后的平台: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://wikitech.wikimedia.org/wiki/MediaWiki_at_WMF&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[33]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;250 亿的页面浏览量: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://stats.wikimedia.org/&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[34]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Fandom: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://en.wikipedia.org/wiki/Fandom&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[35]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;20 亿的页面浏览量: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://about.fandom.com/news/fandoms-2021-state-of-fandom-study-identifies-pandemic-era-consumer-behavior-trends-in-entertainment-gaming&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[36]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;WikiHow: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://en.wikipedia.org/wiki/WikiHow&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[37]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;高流量: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://www.etsy.com/codeascraft/how-etsy-prepared-for-historic-volumes-of-holiday-traffic-in-2020/&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[38]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Rasmus &amp;nbsp;Lerdorf: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://en.wikipedia.org/wiki/Rasmus_Lerdorf&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[39]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;2021 年的现代 PHP 讲座: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://www.youtube.com/watch?v=Hc4S74LCXHo&amp;amp;t=1620s&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[40]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Scap: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://wikitech.wikimedia.org/w/index.php?title=Scap&amp;amp;oldid=2007017&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[41]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Plural 本地化: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://www.etsy.com/uk/codeascraft/plurals-at-etsy&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[42]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Etsy 站点性能报告: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://www.etsy.com/uk/codeascraft/q1-2016-site-performance-report&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[43]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;自由软件: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://en.wikipedia.org/wiki/Free_software_movement&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[44]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;The Market for Lemons : &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://infrequently.org/2023/02/the-market-for-lemons/&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[45]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;A Historical Reference of React Criticism: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://www.zachleat.com/web/react-criticism/&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[46]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;React 仅占有 3% 的市场份额: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://w3techs.com/technologies/overview/javascript_library&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[47]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;3% 的市场份额: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://w3techs.com/technologies/overview/web_server&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[48]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;阻塞主线程: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://www.langton.cloud/misconception-on-cpu-node-js-vs-php-blocking-web-requests/&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[49]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;实现了盈利: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://usefathom.com/blog/spending-money&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[50]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;社区规模较大: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://packagist.org/statistics&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[51]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;语法现代化: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://stitcher.io/blog/evolution-of-a-php-object&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[52]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;开发活跃: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://wiki.php.net/RFC#implemented&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;[53]&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;低依赖性: &lt;em style=&quot;overflow-wrap: break-word; font-weight: inherit; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;https://blog.jim-nielsen.com/2023/software-crisis-dependencies/&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;转至&amp;nbsp;&lt;a href=&quot;https://cloud.tencent.com/developer/article/2328131&quot; _src=&quot;https://cloud.tencent.com/developer/article/2328131&quot;&gt;https://cloud.tencent.com/developer/article/2328131&lt;/a&gt;&lt;br/&gt;&lt;span style=&quot;color: #4B5B76; font-family: &amp;quot;Pingfang SC&amp;quot;, &amp;quot;helvetica neuepingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; text-wrap: wrap; background-color: #F4F7FB;&quot;&gt;如有侵权请联系 3035815#qq.com删除&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Wed, 16 Oct 2024 17:52:42 +0800</pubDate></item><item><title>顶级PHP大师的开发原则</title><link>http://www.hartyu.com/?id=55</link><description>&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;1. 在合适的时候使用PHP – Rasmus Lerdorf&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;没有谁比PHP的创建者Rasmus &amp;nbsp;Lerdorf明白PHP用在什么地方是更合理的，他于1995年发布了PHP这门语言，从那时起，PHP就像燎原之火，烧遍了整个开发阵营，改变了互联网的世界。可是，Rasmus并不是因此而创建PHP的。PHP是为了解决web开发者的实际问题而诞生的。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;和许多开源项目一样，PHP变得流行，流行的动机并不能用正常的哲学来进行解释，甚至流行得有些孤芳自赏。它完全可以作为一个案例，一个解决各种Web问题的工具需求所引起的案例，因此当PHP刚出现的时候，这种工具需求全部聚焦到PHP的身上。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;但是，你不能奢望PHP可以解决所有问题。Lerdorf是第一个承认PHP只是一种工具的人，并且PHP也有很多力所不能及的情况。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;根据工作的不同来选择合适的工具。我跑了很多家公司，为了说服他们部署和使用PHP，但是这并不意味着PHP对所有问题都适用。它只是可以一个解决大部分问题的front-end脚步语言。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;作为一个web开发者，尝试用PHP解决所有问题是不科学的，同时也会浪费你的时间。当PHP玩不转的时候，不要犹豫，试用一下其他的语言吧。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;2. 使用多表存储提高规模伸缩性 – Matt Mullenweg&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;没有人愿意质疑Matt Mullenweg在PHP方面的权威性，他开发了这个星球上最流行的blog系统,(依靠一个强大的社区力量支持)： &amp;nbsp;&lt;span class=&quot;mod-overview__keyword&quot; style=&quot;overflow-wrap: break-word; margin: 0px 4px; cursor: pointer; color: #0052D9; padding-right: 10px; background-image: url(&amp;quot;images/icon-keyword_32a.svg&amp;quot;); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;WordPress&lt;/span&gt;. 创建Wordpress以后，Matt和他的团队启动了WordPress.com平台，一个基于WordPress &amp;nbsp;MU的免费blog站点。现在，Wordpress.com已经拥有大约400万用户， 这些用户每天提供超过 140,000篇的日志。 &amp;nbsp;(要查看更多Wordpress.com的统计情况，请点击这里.)&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;如果有人知道如何让网站的规模伸缩自如，这个人一定是Matt Mullenweg。2006年的时候 Matt对Wordpress的&lt;span class=&quot;mod-overview__keyword&quot; style=&quot;overflow-wrap: break-word; margin: 0px 4px; cursor: pointer; color: #0052D9; padding-right: 10px; background-image: url(&amp;quot;images/icon-keyword_32a.svg&amp;quot;); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;数据结构&lt;/span&gt;进行了前瞻性的改进，并且解释了为什么Wordpress MU对每个blog使用独立的&lt;a href=&quot;https://cloud.tencent.com/product/cdb?from_column=20065&amp;from=20065&quot; target=&quot;_blank&quot; class=&quot;rno-markdown__textlink-new&quot; style=&quot;overflow-wrap: break-word; text-decoration-line: none; padding: 0px 10px 0px 0px; margin: 0px 4px; box-sizing: border-box; list-style: inherit; word-break: break-all; color: rgb(0, 82, 217); cursor: pointer; background-image: url(&amp;quot;data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9Im5vbmUiPjxwYXRoIGQ9Ik00LjMwMyA1LjAxbC0uNzA3LjcwN2ExLjUgMS41IDAgMDEtMi4xMjEtMi4xMjFsLjcwNy0uNzA3LS43MDctLjcwNy0uNzA3LjcwN2EyLjUgMi41IDAgMTAzLjUzNSAzLjUzNWwuNzA4LS43MDctLjcwOC0uNzA3ek01LjAxIDQuMzAzbC43MDguNzA3LjcwNy0uNzA3QTIuNSAyLjUgMCAwMDIuODg5Ljc2N2wtLjcwNy43MDcuNzA3LjcwOC43MDctLjcwOGExLjUgMS41IDAgMDEyLjEyMiAyLjEyMmwtLjcwNy43MDd6IiBmaWxsPSIjMDA1MkQ5Ii8+PHBhdGggZD0iTTQuMzAzIDIuMTgybC43MDguNzA3LTIuMTIyIDIuMTItLjcwNy0uNzA2IDIuMTIxLTIuMTIxeiIgZmlsbD0iIzAwNTJEOSIvPjwvc3ZnPg==&amp;quot;); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none;&quot;&gt;MYSQL&lt;/a&gt;表格， 而不是把所有的blog数据都塞进一个巨大的表格。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;我们测试过这个方法，但是发现如果要扩展它的伸缩性，代价太高。如果用一个整体的数据结构，在大流量面前，你将会面临&lt;a class=&quot;rno-markdown__textlink-new&quot; href=&quot;https://cloud.tencent.com/act/pro/promotion-cvm?from_column=20065&amp;from=20065&quot; target=&quot;_blank&quot; style=&quot;overflow-wrap: break-word; text-decoration-line: none; padding: 0px 10px 0px 0px; margin: 0px 4px; box-sizing: border-box; list-style: inherit; word-break: break-all; color: rgb(0, 82, 217); cursor: pointer; background-image: url(&amp;quot;data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9Im5vbmUiPjxwYXRoIGQ9Ik00LjMwMyA1LjAxbC0uNzA3LjcwN2ExLjUgMS41IDAgMDEtMi4xMjEtMi4xMjFsLjcwNy0uNzA3LS43MDctLjcwNy0uNzA3LjcwN2EyLjUgMi41IDAgMTAzLjUzNSAzLjUzNWwuNzA4LS43MDctLjcwOC0uNzA3ek01LjAxIDQuMzAzbC43MDguNzA3LjcwNy0uNzA3QTIuNSAyLjUgMCAwMDIuODg5Ljc2N2wtLjcwNy43MDcuNzA3LjcwOC43MDctLjcwOGExLjUgMS41IDAgMDEyLjEyMiAyLjEyMmwtLjcwNy43MDd6IiBmaWxsPSIjMDA1MkQ5Ii8+PHBhdGggZD0iTTQuMzAzIDIuMTgybC43MDguNzA3LTIuMTIyIDIuMTItLjcwNy0uNzA2IDIuMTIxLTIuMTIxeiIgZmlsbD0iIzAwNTJEOSIvPjwvc3ZnPg==&amp;quot;); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none;&quot;&gt;服务器&lt;/a&gt; 硬件的问题。在MU里面。用户们都被分布到独立的表格当中，并且可以轻易地组织起来。举个例子，WordPress.com把用户的数据分散存储到 4096个&lt;a class=&quot;rno-markdown__textlink-new&quot; href=&quot;https://cloud.tencent.com/solution/database?from_column=20065&amp;from=20065&quot; target=&quot;_blank&quot; style=&quot;overflow-wrap: break-word; text-decoration-line: none; padding: 0px 10px 0px 0px; margin: 0px 4px; box-sizing: border-box; list-style: inherit; word-break: break-all; color: rgb(0, 82, 217); cursor: pointer; background-image: url(&amp;quot;data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9Im5vbmUiPjxwYXRoIGQ9Ik00LjMwMyA1LjAxbC0uNzA3LjcwN2ExLjUgMS41IDAgMDEtMi4xMjEtMi4xMjFsLjcwNy0uNzA3LS43MDctLjcwNy0uNzA3LjcwN2EyLjUgMi41IDAgMTAzLjUzNSAzLjUzNWwuNzA4LS43MDctLjcwOC0uNzA3ek01LjAxIDQuMzAzbC43MDguNzA3LjcwNy0uNzA3QTIuNSAyLjUgMCAwMDIuODg5Ljc2N2wtLjcwNy43MDcuNzA3LjcwOC43MDctLjcwOGExLjUgMS41IDAgMDEyLjEyMiAyLjEyMmwtLjcwNy43MDd6IiBmaWxsPSIjMDA1MkQ5Ii8+PHBhdGggZD0iTTQuMzAzIDIuMTgybC43MDguNzA3LTIuMTIyIDIuMTItLjcwNy0uNzA2IDIuMTIxLTIuMTIxeiIgZmlsbD0iIzAwNTJEOSIvPjwvc3ZnPg==&amp;quot;); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none;&quot;&gt;数据库&lt;/a&gt;中，这些数据库可以分散大规模的数据访问，实现流量和压力分流。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;数据表的可迁移性让代码(blog)可以运行得更快，并且让系统具备更强的伸缩性。依靠强大的缓存策略和灵活的数据库运用策略， Matt向人们展示了时下最流行的Facebook和Wordpress.com都可以在PHP下稳定运行，并且处理惊人的访问量。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;3. 千万不要相信用户 – Dave Child&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Dave Child是Added Bytes (previously ilovejackdaniels.com) 网站的核心人物，这个网站以他出色的《cheat sheets for many programming languages》而闻名。 &amp;nbsp;Dave为很多英国的公司服务，并且已经在编程世界里树立起相当的权威。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Dave为PHP开发者提供了很多深谋远虑的建议，并总结成了《writing secure code in PHP》：千万不要相信你的用户，他们甚至可能会伤害你。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;有一条web开发的基本原则，我重复多少遍都觉得不够，那就是：千万不要相信你的用户，同时要假设你网站中的每个数据单元都是从用户那里收集来的恶意代码。很多时候，你必须用javascript在客户端检验表单提交过来的内容， &amp;nbsp;如果你习惯了如此，那么，这是一个好习惯。如果安全性对你来说很重要，这就是最重要最需要学习的原则。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Dave目前正致力于为它的《Writing Secure PHP》系列书籍整理实例，书的最后他说:&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;最后，变得偏执一点吧。除非你认为你的站点永远不会受到攻击，否则就正视所有的问题，当问题真正发生的时候，你的情况会变得很糟。你需要把每个用户都看成会带来一场攻防站的黑客，想尽一切办法来保护站点的安全，同时想好相应问题的解决方案。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;　4. 多使用PHP缓存 – Ben Balbo&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Ben Balbo开发了Site Point，一个为developers和designers提供指导的网站。他是墨尔本PHP开发和开源俱乐部的成员， 因此他对PHP有一定的了解，同时对PHP caching有一定的想法和经验。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;如果你拥有一个访问量很大，但更新并不频繁的站点(比如blog，基于某种CMS)，或许它需要进行一些改造，这些改造不会花费太多的时间，但是对性能有突出的贡献。 如果要为一个复杂/更新频率很快的站点建立缓存机制，过程可能会很曲折，但是好处也是显而易见的。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;PHP缓存技术有很多种，Ben为我们推荐了如下一些:&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;◆缓存函数的运行结果&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;◆设置过期时间&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;◆缓存IE下载的文件&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;◆模板缓存技术&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;◆Cache_Lite&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;由于PHP作为动态语言的特性，缓存机制对于更新频率并不快的站点来说非常重要。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;5. 使用&lt;/strong&gt;&lt;span class=&quot;mod-overview__keyword&quot; style=&quot;overflow-wrap: break-word; margin: 0px 4px; cursor: pointer; color: #0052D9; padding-right: 10px; background-image: url(&amp;quot;images/icon-keyword_32a.svg&amp;quot;); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;IDE&lt;/strong&gt;&lt;/span&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;, Templates和Snippets加速PHP开发 – Chad Kieffer&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;当Chad Kieffer从&lt;span class=&quot;mod-overview__keyword&quot; style=&quot;overflow-wrap: break-word; margin: 0px 4px; cursor: pointer; color: #0052D9; padding-right: 10px; background-image: url(&amp;quot;images/icon-keyword_32a.svg&amp;quot;); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;UI&lt;/span&gt;设计和&lt;span class=&quot;mod-overview__keyword&quot; style=&quot;overflow-wrap: break-word; margin: 0px 4px; cursor: pointer; color: #0052D9; padding-right: 10px; background-image: url(&amp;quot;images/icon-keyword_32a.svg&amp;quot;); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;数据库优化&lt;/span&gt;的工作中抽身出来的时候，他会在他的博客2 tablespoons上分享很多技术经验。由于Chad多方面的全面发展，他经常可以发现其他程序员不能发现的问题，并形成相关经验，尤其是他开发网站 &amp;nbsp;的方法。他参与了网站开发的各个环节，因此他的建议对于提高网站开发的大局观非常有用。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Chad认为使用&lt;span class=&quot;mod-overview__keyword&quot; style=&quot;overflow-wrap: break-word; margin: 0px 4px; cursor: pointer; color: #0052D9; padding-right: 10px; background-image: url(&amp;quot;images/icon-keyword_32a.svg&amp;quot;); background-position: right 2px; background-repeat: no-repeat; background-size: 8px 8px; box-shadow: none; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;Eclipse&lt;/span&gt; PDT(Eclipse’s PHP development package) 这样的IDE，同时使用一些模板技术和开源项目可以有效地提高PHP的开发速度。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;紧凑的计划，长长的to do lists以及deadlines让开发人员非常苦闷。不过有些功能，比如Eclipse Templates，可以有效减少编码的时间和出错的几率。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;通常来说，任何项目都可以自动化，自动化程度越高， &amp;nbsp;你完成项目的时间就越短。花时间来开发使用频率很高的框架和模板，将会节省你以后更多时间。同时，使用像Eclipse and the PDT package这样的IDE，你会发现效率得到明显提高，IDE可以自动闭合，补全分号并且可以在本地debug。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;　6. 利用好PHP的过滤函数 – Joey Sochacki&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;或许Joey Sochacki并不像Matt Mullenweg那样有名 ，但他也是一个经验丰富的开发者，并且通过他的博客Devolio分享了很多技术经验Joey发现在编写php代码的过程中有很多地方需要进行过滤，但却并没有太多的coder关注php的内置过滤函数。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;过滤数据是我们经常需要做的事情，但是很多功能丰富的PHP内置过滤函数却不为人知。使用类似filter_* 的PHP内置函数，我们几乎可以处理所有的过滤任务，包括数据类型验证/URL/email和IP地址验证/特殊字符处理等等。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;过滤是一件复杂的事情，但是我相信joey的发现会给你很多启发，让你认识到PHP强大的过滤功能。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;7. 使用PHP框架 – Josh Sharp&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;对于是否应该使用Zend, CakePHP, Code Igniter, 或者 其他PHP框架，一直存在着很多争议，但是在web开发者的心中，他们有自己衡量的标准。Josh Sharp自己创建了一家提供面包和黄油服务的网站，因此他对于使用PHP框架来开发网站有一定的经验。他认为使用一个PHP框架来进行项目开发(use a PHP framework )，可以有效地节省时间，并且减少出错的几率。为什么?因为他觉得PHP实在是太好上手了。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;PHP的易于使用有时候也有缺陷，因为并不严格的语法，经常会导致很多错误代码的诞生。但如果使用一个PHP框架，出错的几率就会大大减少。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;PHP框架可以让你的代码结构更加规范，并且节省大量时间。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;8. 不要使用PHP框架 – Rasmus Lerdorf&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;与Josh的观点恰恰相反，PHP的鼻祖Rasmus Lerdorf却认为最好不要使用PHP框架，为什么?因为不基于框架的PHP性能更好。Rasmus在Drupalcon 2008的演讲上，用“Hello World”的例子来对比了一些框架PHP和简单PHP之间的性能，结果显示框架PHP的性能要远远落后。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;9. 使用批处理 – Jack D. Herrington&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Jack Herrington对PHP世界并不陌生， 并且为大名鼎鼎的IBM developerWorks贡献过超过30篇的专搞， 同时出版过《PHP Hacks》的书，因此他是一个真正的专家。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Herrington推荐使用批处理和Cron来代替那些可以运行在后台的程序脚步，Web用户并不愿意在线等待你的处理过程，所以有些事情更适合放到后台来处理。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;诚然，在某些情况下，这有点大材小用了，但是你可以清楚地看到，使用Cron, MySQL, PHP面向对象的方法以及Pear::DB这些便捷的工具来创建一个批处理工具并不是一件复杂的事情。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;Jack认为使用cron, PHP和MySQL在后台处理一些任务，比起多进程的业务逻辑要划算得多。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;两种方法我都尝试过，我认为Cron非常符合”Keep It Simple, Stupid” (KISS) 的原则，它让后台处理变得简单。与多进程的业务逻辑相比，它没有内存溢出的风险。你可以创建一个简单的批处理脚本，并且在cron中运行，这个脚本会定时检查是否有任务需要处理，处理完之后就会自动退出，因此你不用担心是否有进程卡壳，或者陷入死循环。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;overflow-wrap: break-word; box-sizing: border-box; list-style: inherit; word-break: break-all;&quot;&gt;　10. 及时启用错误报告 – David Cummings&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;David Cummings有一个专门提供CMS软件服务的公司 ，并且获得过几次奖 ，他有非常丰富的PHP开发经验。David曾经写过《two PHP tips he wished he’d learned in the beginning》，其中一点就是：及时启用错误报告，这会节省大量的时间。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;我告诉人们，最重要的事情就是最大程度地开启PHP的错误报告，为什么?因为PHP可能会隐藏很多小问题：&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;◆变量没有预定义&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;◆在代码片段中引用了不可用的变量&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;◆使用了未定义的常量这些因素看起来并不是什么大事，除非你在使用面向对象的方法编写一些类库。通常，关闭错误报告将可能使你付出更大的成本来维护你的代码。&lt;/p&gt;&lt;p style=&quot;overflow-wrap: break-word; margin-top: 0px; margin-bottom: 8px; padding: 0px; box-sizing: border-box; list-style: inherit; min-height: 24px; color: rgb(51, 51, 51); font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);&quot;&gt;错误报告可以帮你轻易地找到代码的问题所在，如果错误报告的等级够高，细微的错误都能被立即发现，帮助你节省整体debug的时间。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;转至&lt;a href=&quot;https://cloud.tencent.com/developer/article/2328131&quot; _src=&quot;https://cloud.tencent.com/developer/article/2328131&quot;&gt;https://cloud.tencent.com/developer/article/2328131&lt;/a&gt;&lt;br/&gt; &lt;span style=&quot;color: #4B5B76; font-family: &amp;quot;Pingfang SC&amp;quot;, &amp;quot;helvetica neuepingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; text-wrap: wrap; background-color: #F4F7FB;&quot;&gt;如有侵权请联系 3035815#qq.com删除&lt;/span&gt;&lt;/p&gt;</description><pubDate>Wed, 16 Oct 2024 17:51:24 +0800</pubDate></item><item><title>nginx 目录反向代理</title><link>http://www.hartyu.com/?id=54</link><description>&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; location ^~ /xxxxxxx/ {&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_pass http://127.0.0.1:8282/;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; client_max_body_size 100M;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header Host $host;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Real-IP $remote_addr;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header REMOTE-HOST $remote_addr;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_set_header X-NginX-Proxy true;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 25 Jun 2024 18:03:24 +0800</pubDate></item><item><title>Apache配置虚拟目录</title><link>http://www.hartyu.com/?id=53</link><description>&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: medium;&quot;&gt;#配置虚拟目录　　&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: medium; white-space: normal;&quot;/&gt;&lt;span style=&quot;font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;#虚拟路径配置&lt;/p&gt;&lt;p&gt;alias /app &amp;quot;D:/wwwroot&amp;quot;&lt;/p&gt;&lt;p&gt;&amp;lt;Directory D:/wwwroot&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Options FollowSymLinks&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; AllowOverride All&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Require all granted&lt;/p&gt;&lt;p&gt;&amp;lt;/Directory&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sat, 17 Sep 2022 10:04:18 +0800</pubDate></item><item><title>Apache反向代理配置</title><link>http://www.hartyu.com/?id=52</link><description>&lt;p&gt;LoadModule proxy_module modules/mod_proxy.so&lt;/p&gt;&lt;p&gt;#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so&lt;/p&gt;&lt;p&gt;#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so&lt;/p&gt;&lt;p&gt;LoadModule proxy_connect_module modules/mod_proxy_connect.so&lt;/p&gt;&lt;p&gt;#LoadModule proxy_express_module modules/mod_proxy_express.so&lt;/p&gt;&lt;p&gt;#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so&lt;/p&gt;&lt;p&gt;#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so&lt;/p&gt;&lt;p&gt;#LoadModule proxy_html_module modules/mod_proxy_html.so&lt;/p&gt;&lt;p&gt;LoadModule proxy_http_module modules/mod_proxy_http.so&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Apache 这3个配置打开&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;然后在VirtualHost增加以下&lt;/p&gt;&lt;p&gt;&amp;nbsp;ProxyRequests&amp;nbsp; off&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Proxy *&amp;gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Proxy&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ProxyPass /123/ http://10.0.0.6:82/&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ProxyPassReverse /123/ http://10.0.0.6:82/&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;完整的&lt;/p&gt;&lt;p&gt;&amp;lt;VirtualHost _default_:99&amp;gt;&lt;/p&gt;&lt;p&gt;DocumentRoot &amp;quot;D:/wwwroot/x1&amp;quot;&lt;/p&gt;&lt;p&gt;#ServerName www.example.com:80&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ProxyRequests&amp;nbsp; off&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Proxy *&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Proxy&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ProxyPass /123/ http://10.0.0.6:82/&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ProxyPassReverse /123/ http://10.0.0.6:82/&lt;/p&gt;&lt;p&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 30 Nov 2021 11:06:27 +0800</pubDate></item><item><title>JS CryptoJS.AES.decrypt 对应 php 解密方法</title><link>http://www.hartyu.com/?id=51</link><description>&lt;p&gt;JS&amp;nbsp;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-javascript&quot;&gt;function&amp;nbsp;decrypt(word){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(isEmpty(word))&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;word;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;	console.log(CryptoJS.mode.ECB);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;key&amp;nbsp;=&amp;nbsp;CryptoJS.enc.Utf8.parse(&amp;quot;rkmiplusfighting&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;decrypt&amp;nbsp;=&amp;nbsp;CryptoJS.AES.decrypt(word,&amp;nbsp;key,&amp;nbsp;{mode:CryptoJS.mode.ECB,padding:&amp;nbsp;CryptoJS.pad.Pkcs7});
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;CryptoJS.enc.Utf8.stringify(decrypt).toString();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;catch&amp;nbsp;(e)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;console.log(e.name&amp;nbsp;+&amp;nbsp;&amp;quot;:&amp;nbsp;&amp;quot;&amp;nbsp;+&amp;nbsp;e.message);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&amp;#39;&amp;#39;;
}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;PHP&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;openssl_decrypt($crypttext,&amp;nbsp;&amp;#39;AES-128-ECB&amp;#39;,&amp;nbsp;&amp;#39;key&amp;#39;);&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Wed, 25 Aug 2021 12:46:21 +0800</pubDate></item><item><title>php解析获取图片经纬度定位信息,拍摄时间,宽高(使用高德地图接口)</title><link>http://www.hartyu.com/?id=50</link><description>&lt;blockquote&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;if(function_exists(&amp;#39;date_default_timezone_set&amp;#39;)){date_default_timezone_set(&amp;#39;Hongkong&amp;#39;);}

class&amp;nbsp;ImgHelper{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;&amp;nbsp;function&amp;nbsp;get_img_info($img_url,$gaode_key){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$exif&amp;nbsp;=&amp;nbsp;exif_read_data($img_url,&amp;nbsp;0,&amp;nbsp;true);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;($exif&amp;nbsp;===&amp;nbsp;false)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;false;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;else&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$latitude&amp;nbsp;=&amp;nbsp;$exif[&amp;#39;GPS&amp;#39;][&amp;#39;GPSLatitude&amp;#39;];&amp;nbsp;&amp;nbsp;&amp;nbsp;//纬度
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$longitude&amp;nbsp;=&amp;nbsp;$exif[&amp;#39;GPS&amp;#39;][&amp;#39;GPSLongitude&amp;#39;];&amp;nbsp;//经度
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$GPSLatitudeRef&amp;nbsp;=&amp;nbsp;$exif[&amp;#39;GPS&amp;#39;][&amp;#39;GPSLatitudeRef&amp;#39;];&amp;nbsp;//南半球&amp;nbsp;S&amp;nbsp;北半球&amp;nbsp;N
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$GPSLongitudeRef&amp;nbsp;=&amp;nbsp;$exif[&amp;#39;GPS&amp;#39;][&amp;#39;GPSLongitudeRef&amp;#39;];&amp;nbsp;//东半球&amp;nbsp;S&amp;nbsp;西半球&amp;nbsp;N
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//计算经纬度信息
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$latitude&amp;nbsp;=&amp;nbsp;self::get_gps($latitude,&amp;nbsp;$GPSLatitudeRef);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$longitude&amp;nbsp;=&amp;nbsp;self::get_gps($longitude,&amp;nbsp;$GPSLongitudeRef);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**使用高德地图提供逆向地理编码接口获取定位信息;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;需在高德申请key
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;高德接口地址:http://lbs.amap.com/api/webservice/guide/api/georegeo
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$url&amp;nbsp;=&amp;nbsp;&amp;quot;http://restapi.amap.com/v3/geocode/regeo?key=$gaode_key&amp;amp;location=$longitude,$latitude&amp;amp;poitype=&amp;amp;radius=10000&amp;amp;extensions=all&amp;amp;batch=false&amp;amp;roadlevel=0&amp;quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$res&amp;nbsp;=&amp;nbsp;file_get_contents($url);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$res&amp;nbsp;=&amp;nbsp;json_decode($res,&amp;nbsp;true);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;($res[&amp;#39;status&amp;#39;]&amp;nbsp;==&amp;nbsp;1)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$address&amp;nbsp;=&amp;nbsp;$res[&amp;#39;regeocode&amp;#39;][&amp;#39;formatted_address&amp;#39;];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$province&amp;nbsp;=&amp;nbsp;$res[&amp;#39;regeocode&amp;#39;][&amp;#39;addressComponent&amp;#39;][&amp;#39;province&amp;#39;];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$district&amp;nbsp;=&amp;nbsp;$res[&amp;#39;regeocode&amp;#39;][&amp;#39;addressComponent&amp;#39;][&amp;#39;district&amp;#39;];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$township&amp;nbsp;=&amp;nbsp;$res[&amp;#39;regeocode&amp;#39;][&amp;#39;addressComponent&amp;#39;][&amp;#39;township&amp;#39;];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$city&amp;nbsp;=&amp;nbsp;$res[&amp;#39;regeocode&amp;#39;][&amp;#39;addressComponent&amp;#39;][&amp;#39;city&amp;#39;];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$senic_spot&amp;nbsp;=&amp;nbsp;$res[&amp;#39;regeocode&amp;#39;][&amp;#39;aois&amp;#39;][0][&amp;#39;name&amp;#39;];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//图片拍摄时间
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$time&amp;nbsp;=&amp;nbsp;date(&amp;quot;Y-m-d&amp;nbsp;H:i:s&amp;quot;,&amp;nbsp;$exif[&amp;#39;FILE&amp;#39;][&amp;#39;FileDateTime&amp;#39;]);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//图片宽高
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$imgsize&amp;nbsp;=&amp;nbsp;getimagesize($img_url);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$width&amp;nbsp;=&amp;nbsp;$imgsize[0];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$height&amp;nbsp;=&amp;nbsp;$imgsize[1];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$data&amp;nbsp;=&amp;nbsp;array(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;img_time&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;$time,//图片拍摄时间
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;latitude&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;$latitude,//纬度
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;longitude&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;$longitude,//经度
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;address&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;$address,//详细地址
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;province&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;$province,//省份
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;city&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;$city,//城市
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;district&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;$district,//区
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;township&amp;#39;&amp;nbsp;=&amp;gt;&amp;nbsp;$township,//街道
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;senic_spot&amp;#39;=&amp;gt;$senic_spot,//景点名称
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;height&amp;#39;=&amp;gt;$height,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;width&amp;#39;=&amp;gt;$width
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;$data;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//计算经纬度
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;function&amp;nbsp;get_gps($exifCoord,$banqiu)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$degrees=&amp;nbsp;count($exifCoord)&amp;nbsp;&amp;gt;&amp;nbsp;0&amp;nbsp;?&amp;nbsp;self::gps2Num($exifCoord[0])&amp;nbsp;:&amp;nbsp;0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$minutes=&amp;nbsp;count($exifCoord)&amp;nbsp;&amp;gt;&amp;nbsp;1&amp;nbsp;?&amp;nbsp;self::gps2Num($exifCoord[1])&amp;nbsp;:&amp;nbsp;0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$seconds=&amp;nbsp;count($exifCoord)&amp;nbsp;&amp;gt;&amp;nbsp;2&amp;nbsp;?&amp;nbsp;self::gps2Num($exifCoord[2])&amp;nbsp;:&amp;nbsp;0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$minutes+=&amp;nbsp;60&amp;nbsp;*&amp;nbsp;($degrees-&amp;nbsp;floor($degrees));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$degrees=&amp;nbsp;floor($degrees);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$seconds+=&amp;nbsp;60&amp;nbsp;*&amp;nbsp;($minutes-&amp;nbsp;floor($minutes));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$minutes=&amp;nbsp;floor($minutes);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if($seconds&amp;gt;=&amp;nbsp;60)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$minutes+=&amp;nbsp;floor($seconds/60.0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$seconds-=&amp;nbsp;60*floor($seconds/60.0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if($minutes&amp;gt;=&amp;nbsp;60)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$degrees+=&amp;nbsp;floor($minutes/60.0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$minutes-=&amp;nbsp;60*floor($minutes/60.0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$lng_lat&amp;nbsp;=&amp;nbsp;$degrees&amp;nbsp;+&amp;nbsp;$minutes/60&amp;nbsp;+&amp;nbsp;$seconds/60/60;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(strtoupper($banqiu)&amp;nbsp;==&amp;nbsp;&amp;#39;W&amp;#39;&amp;nbsp;||&amp;nbsp;strtoupper($banqiu)&amp;nbsp;==&amp;nbsp;&amp;#39;S&amp;#39;){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//如果是南半球&amp;nbsp;或者&amp;nbsp;西半球&amp;nbsp;乘以-1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$lng_lat&amp;nbsp;=&amp;nbsp;$lng_lat&amp;nbsp;*&amp;nbsp;-1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;$lng_lat;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//return&amp;nbsp;array(&amp;#39;degrees&amp;#39;=&amp;gt;&amp;nbsp;$degrees,&amp;nbsp;&amp;#39;minutes&amp;#39;=&amp;gt;&amp;nbsp;$minutes,&amp;nbsp;&amp;#39;seconds&amp;#39;=&amp;gt;&amp;nbsp;$seconds);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;取得EXIF的內容
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;分数&amp;nbsp;转&amp;nbsp;小数
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;&amp;nbsp;function&amp;nbsp;gps2Num($coordPart)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$parts=&amp;nbsp;explode(&amp;#39;/&amp;#39;,&amp;nbsp;$coordPart);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(count($parts)&amp;nbsp;&amp;lt;=&amp;nbsp;0)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(count($parts)&amp;nbsp;==&amp;nbsp;1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;$parts[0];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;floatval($parts[0])&amp;nbsp;/&amp;nbsp;floatval($parts[1]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}
echo&amp;nbsp;&amp;#39;&amp;lt;pre&amp;gt;&amp;#39;;
print_r(ImgHelper::get_img_info(&amp;#39;111133333.jpg&amp;#39;,&amp;#39;111111222223333&amp;#39;));
echo&amp;nbsp;&amp;#39;&amp;lt;/pre&amp;gt;&amp;#39;;&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/blockquote&gt;</description><pubDate>Tue, 24 Aug 2021 13:56:44 +0800</pubDate></item><item><title>php 通过CSS文件抓取图片</title><link>http://www.hartyu.com/?id=49</link><description>&lt;p&gt;看到一个喜欢的网站，想抓点图片素材，一个一个复制盛世费劲，分析CSS发现图片元素都写在CSS里面。就不要怪我了。&lt;br/&gt;帖代码&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;把css内容复制到到&amp;nbsp;$str中&amp;nbsp;&amp;nbsp;或者&amp;nbsp;file_get_contents&amp;nbsp;&amp;nbsp;CSS的路径&amp;nbsp;也可以
$str=&amp;#39;@charset&amp;nbsp;&amp;quot;utf-8&amp;quot;;
body&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:&amp;nbsp;100%;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height:&amp;nbsp;100%;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;url(../images/bg.jpg)&amp;nbsp;no-repeat;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.......
&amp;#39;;&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;正则匹配&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;&amp;nbsp;&amp;nbsp;preg_match_all(&amp;#39;/url\((.*?)\)/u&amp;#39;,$str,$match);&lt;/pre&gt;&lt;p&gt;循环抓取&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;foreach&amp;nbsp;($match[1]&amp;nbsp;as&amp;nbsp;$key&amp;nbsp;=&amp;gt;&amp;nbsp;$value)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$value=str_replace(&amp;#39;../&amp;#39;,&amp;#39;对方网站url/&amp;#39;,$value);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$base&amp;nbsp;=&amp;nbsp;basename($value);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$urlds1=file_get_contents($value);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$nweimg1=&amp;#39;images/&amp;#39;.$base;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;write_file($nweimg1,$urlds1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;p&gt;中间用到的方法write_file&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;function&amp;nbsp;write_file($filename,$data,$method=&amp;quot;rb+&amp;quot;,$iflock=1){
&amp;nbsp;&amp;nbsp;@touch($filename);
&amp;nbsp;&amp;nbsp;$handle=@fopen($filename,$method);
&amp;nbsp;&amp;nbsp;if($iflock){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@flock($handle,LOCK_EX);
&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;@fputs($handle,$data);
&amp;nbsp;&amp;nbsp;if($method==&amp;quot;rb+&amp;quot;)&amp;nbsp;@ftruncate($handle,strlen($data));
&amp;nbsp;&amp;nbsp;@fclose($handle);
&amp;nbsp;&amp;nbsp;@chmod($filename,0777);&amp;nbsp;
&amp;nbsp;&amp;nbsp;if(&amp;nbsp;is_writable($filename)&amp;nbsp;){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;1;
&amp;nbsp;&amp;nbsp;}else{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;0;
&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 20 Aug 2021 09:05:32 +0800</pubDate></item><item><title>PHP性能优化利器：生成器 yield理解</title><link>http://www.hartyu.com/?id=48</link><description>&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;如果是做Python或者其他语言的小伙伴，对于生成器应该不陌生。但很多PHP开发者或许都不知道生成器这个功能，可能是因为生成器是PHP 5.5.0才引入的功能，也可以是生成器作用不是很明显。但是，生成器功能的确非常有用。&lt;/p&gt;&lt;h2 style=&quot;box-sizing: border-box; padding: 0px; margin: 0px 0px 10px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-weight: 500; line-height: 1.1; color: rgb(51, 51, 51); font-size: 30px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;优点&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;直接讲概念估计你听完还是一头雾水，所以我们先来说说优点，也许能勾起你的兴趣。那么生成器有哪些优点，如下：&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; padding: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;生成器会对PHP应用的性能有非常大的影响&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;PHP代码运行时节省大量的内存&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;比较适合计算大量的数据&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;那么，这些神奇的功能究竟是如何做到的？我们先来举个例子。&lt;/p&gt;&lt;h2 id=&quot;articleHeader1&quot; style=&quot;box-sizing: border-box; padding: 0px; margin: 0px 0px 10px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-weight: 500; line-height: 1.1; color: rgb(51, 51, 51); font-size: 30px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;概念引入&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;首先，放下生成器概念的包袱，来看一个简单的PHP函数：&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; padding: 9.5px; margin-top: 0px; margin-bottom: 10px; overflow: auto; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; color: rgb(51, 51, 51); word-break: break-all; overflow-wrap: break-word; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px;&quot;&gt;function&amp;nbsp;createRange($number){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$data&amp;nbsp;=&amp;nbsp;[];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for($i=0;$i&amp;lt;$number;$i++){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$data[]&amp;nbsp;=&amp;nbsp;time();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;$data;
}&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;这是一个非常常见的PHP函数，我们在处理一些数组的时候经常会使用。这里的代码也非常简单：&lt;/p&gt;&lt;ol style=&quot;box-sizing: border-box; padding: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;我们创建一个函数。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;函数内包含一个&amp;nbsp;for&amp;nbsp;循环，我们循环的把当前时间放到&lt;code style=&quot;box-sizing: border-box; padding: 2px 4px; margin: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.5px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px;&quot;&gt;$data&lt;/code&gt;里面&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code style=&quot;box-sizing: border-box; padding: 2px 4px; margin: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.5px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px;&quot;&gt;for&lt;/code&gt;循环执行完毕，把&amp;nbsp;$data&amp;nbsp;返回出去。&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;下面没完，我们继续。我们再写一个函数，把这个函数的返回值循环打印出来：&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; padding: 9.5px; margin-top: 0px; margin-bottom: 10px; overflow: auto; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; color: rgb(51, 51, 51); word-break: break-all; overflow-wrap: break-word; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px;&quot;&gt;$result&amp;nbsp;=&amp;nbsp;createRange(10);&amp;nbsp;//&amp;nbsp;这里调用上面我们创建的函数
foreach($result&amp;nbsp;as&amp;nbsp;$value){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sleep(1);//这里停顿1秒，我们后续有用
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;$value.&amp;#39;&amp;lt;br&amp;nbsp;/&amp;gt;&amp;#39;;
}&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;我们在浏览器里面看一下运行结果：&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://images2017.cnblogs.com/blog/1264945/201712/1264945-20171208233256937-1531241860.png&quot; style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; border: 0px; vertical-align: middle;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;这里非常完美，没有任何问题。（当然&amp;nbsp;sleep(1)&amp;nbsp;效果你们看不出来）&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;这里非常完美，没有任何问题。（当然&amp;nbsp;sleep(1)&amp;nbsp;效果你们看不出来）&lt;/p&gt;&lt;h2 id=&quot;articleHeader2&quot; style=&quot;box-sizing: border-box; padding: 0px; margin: 0px 0px 10px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-weight: 500; line-height: 1.1; color: rgb(51, 51, 51); font-size: 30px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;思考一个问题&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;我们注意到，在调用函数&amp;nbsp;createRange&amp;nbsp;的时候给&amp;nbsp;$number&amp;nbsp;的传值是10，一个很小的数字。假设，现在传递一个值&lt;code style=&quot;box-sizing: border-box; padding: 2px 4px; margin: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px;&quot;&gt;10000000&lt;/code&gt;（1000万）。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;那么，在函数&amp;nbsp;createRange&amp;nbsp;里面，&lt;code style=&quot;box-sizing: border-box; padding: 2px 4px; margin: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px;&quot;&gt;for&lt;/code&gt;循环就需要执行&lt;code style=&quot;box-sizing: border-box; padding: 2px 4px; margin: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px;&quot;&gt;1000&lt;/code&gt;万次。且有&lt;code style=&quot;box-sizing: border-box; padding: 2px 4px; margin: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px;&quot;&gt;1000&lt;/code&gt;万个值被放到&amp;nbsp;$data&amp;nbsp;里面，而&lt;code style=&quot;box-sizing: border-box; padding: 2px 4px; margin: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px;&quot;&gt;$data&lt;/code&gt;数组在是被放在内存内。所以，在调用函数时候会占用大量内存。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;这里，生成器就可以大显身手了。&lt;/p&gt;&lt;h2 id=&quot;articleHeader3&quot; style=&quot;box-sizing: border-box; padding: 0px; margin: 0px 0px 10px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-weight: 500; line-height: 1.1; color: rgb(51, 51, 51); font-size: 30px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;创建生成器&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;我们直接修改代码，你们注意观察：&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; padding: 9.5px; margin-top: 0px; margin-bottom: 10px; overflow: auto; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; color: rgb(51, 51, 51); word-break: break-all; overflow-wrap: break-word; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px;&quot;&gt;function&amp;nbsp;createRange($number){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for($i=0;$i&amp;lt;$number;$i++){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;yield&amp;nbsp;time();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;看下这段和刚刚很像的代码，我们删除了数组&amp;nbsp;$data&amp;nbsp;，而且也没有返回任何内容，而是在&amp;nbsp;time()&amp;nbsp;之前使用了一个关键字&lt;code style=&quot;box-sizing: border-box; padding: 2px 4px; margin: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14.4px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px;&quot;&gt;yield。&lt;/code&gt;&lt;/p&gt;&lt;h2 id=&quot;articleHeader4&quot; style=&quot;box-sizing: border-box; padding: 0px; margin: 0px 0px 10px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-weight: 500; line-height: 1.1; color: rgb(51, 51, 51); font-size: 30px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;使用生成器&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;我们再运行一下第二段代码：&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; padding: 9.5px; margin-top: 0px; margin-bottom: 10px; overflow: auto; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; color: rgb(51, 51, 51); word-break: break-all; overflow-wrap: break-word; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px;&quot;&gt;$result&amp;nbsp;=&amp;nbsp;createRange(10);&amp;nbsp;//&amp;nbsp;这里调用上面我们创建的函数
foreach($result&amp;nbsp;as&amp;nbsp;$value){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sleep(1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;$value.&amp;#39;&amp;lt;br&amp;nbsp;/&amp;gt;&amp;#39;;
}&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://images2017.cnblogs.com/blog/1264945/201712/1264945-20171208233632390-935214245.png&quot; style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; border: 0px; vertical-align: middle;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;我们奇迹般的发现了，输出的值和第一次没有使用生成器的不一样。这里的值（时间戳）中间间隔了1秒。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;这里的间隔一秒其实就是&amp;nbsp;sleep(1)&amp;nbsp;造成的后果。但是为什么第一次没有间隔？那是因为：&lt;/p&gt;&lt;ul style=&quot;box-sizing: border-box; padding: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;未使用生成器时：&amp;nbsp;createRange&amp;nbsp;函数内的&amp;nbsp;for&amp;nbsp;循环结果被很快放到&amp;nbsp;$data&amp;nbsp;中，并且立即返回。所以，&amp;nbsp;foreach&amp;nbsp;循环的是一个固定的数组。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;使用生成器时：&amp;nbsp;createRange&amp;nbsp;的值不是一次性快速生成，而是依赖于&amp;nbsp;foreach&amp;nbsp;循环。&amp;nbsp;foreach&amp;nbsp;循环一次，&amp;nbsp;for&amp;nbsp;执行一次。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;到这里，你应该对生成器有点儿头绪。&lt;/p&gt;&lt;h2 id=&quot;articleHeader5&quot; style=&quot;box-sizing: border-box; padding: 0px; margin: 0px 0px 10px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-weight: 500; line-height: 1.1; color: rgb(51, 51, 51); font-size: 30px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;深入理解生成器&lt;/h2&gt;&lt;h3 id=&quot;articleHeader6&quot; style=&quot;box-sizing: border-box; padding: 0px; margin: 0px 0px 10px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-weight: 500; line-height: 1.1; color: rgb(51, 51, 51); font-size: 24px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;代码剖析&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;下面我们来对于刚刚的代码进行剖析。&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; padding: 9.5px; margin-top: 0px; margin-bottom: 10px; overflow: auto; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; color: rgb(51, 51, 51); word-break: break-all; overflow-wrap: break-word; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px;&quot;&gt;function&amp;nbsp;createRange($number){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for($i=0;$i&amp;lt;$number;$i++){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;yield&amp;nbsp;time();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}

$result&amp;nbsp;=&amp;nbsp;createRange(10);&amp;nbsp;//&amp;nbsp;这里调用上面我们创建的函数
foreach($result&amp;nbsp;as&amp;nbsp;$value){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sleep(1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;$value.&amp;#39;&amp;lt;br&amp;nbsp;/&amp;gt;&amp;#39;;
}&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;我们来还原一下代码执行过程。&lt;/p&gt;&lt;ol style=&quot;box-sizing: border-box; padding: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;首先调用&amp;nbsp;createRange&amp;nbsp;函数，传入参数&lt;code style=&quot;box-sizing: border-box; padding: 2px 4px; margin: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.5px; color: rgb(199, 37, 78); background-color: rgb(249, 242, 244); border-radius: 4px;&quot;&gt;10&lt;/code&gt;，但是&amp;nbsp;for&amp;nbsp;值执行了一次然后停止了，并且告诉&amp;nbsp;foreach&amp;nbsp;第一次循环可以用的值。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;foreach&amp;nbsp;开始对&amp;nbsp;$result&amp;nbsp;循环，进来首先&amp;nbsp;sleep(1)&amp;nbsp;，然后开始使用&amp;nbsp;for&amp;nbsp;给的一个值执行输出。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;foreach&amp;nbsp;准备第二次循环，开始第二次循环之前，它向&amp;nbsp;for&amp;nbsp;循环又请求了一次。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;for&amp;nbsp;循环于是又执行了一次，将生成的时间戳告诉&amp;nbsp;foreach&amp;nbsp;.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;foreach&amp;nbsp;拿到第二个值，并且输出。由于&amp;nbsp;foreach&amp;nbsp;中&amp;nbsp;sleep(1)&amp;nbsp;，所以，&amp;nbsp;for&amp;nbsp;循环延迟了1秒生成当前时间&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;所以，整个代码执行中，始终只有一个记录值参与循环，内存中也只有一条信息。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;无论开始传入的&amp;nbsp;$number&amp;nbsp;有多大，由于并不会立即生成所有结果集，所以内存始终是一条循环的值。&lt;/p&gt;&lt;h3 id=&quot;articleHeader7&quot; style=&quot;box-sizing: border-box; padding: 0px; margin: 0px 0px 10px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-weight: 500; line-height: 1.1; color: rgb(51, 51, 51); font-size: 24px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;概念理解&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;到这里，你应该已经大概理解什么是生成器了。下面我们来说下生成器原理。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;首先明确一个概念：&lt;strong style=&quot;box-sizing: border-box; padding: 0px; margin: 0px;&quot;&gt;生成器yield关键字不是返回值，他的专业术语叫产出值，只是生成一个值&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;那么代码中&amp;nbsp;foreach&amp;nbsp;循环的是什么？其实是PHP在使用生成器的时候，会返回一个&amp;nbsp;Generator&amp;nbsp;类的对象。&amp;nbsp;foreach&amp;nbsp;可以对该对象进行迭代，每一次迭代，PHP会通过&amp;nbsp;Generator&amp;nbsp;实例计算出下一次需要迭代的值。这样&amp;nbsp;foreach&amp;nbsp;就知道下一次需要迭代的值了。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;而且，在运行中&amp;nbsp;for&amp;nbsp;循环执行后，会立即停止。等待&amp;nbsp;foreach&amp;nbsp;下次循环时候再次和&amp;nbsp;&amp;nbsp;for&amp;nbsp;&amp;nbsp;索要下次的值的时候，循环才会再执行一次，然后立即再次停止。直到不满足条件不执行结束。&lt;/p&gt;&lt;h2 id=&quot;articleHeader8&quot; style=&quot;box-sizing: border-box; padding: 0px; margin: 0px 0px 10px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-weight: 500; line-height: 1.1; color: rgb(51, 51, 51); font-size: 30px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;实际开发应用&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;很多PHP开发者不了解生成器，其实主要是不了解应用领域。那么，生成器在实际开发中有哪些应用？&lt;/p&gt;&lt;h3 id=&quot;articleHeader9&quot; style=&quot;box-sizing: border-box; padding: 0px; margin: 0px 0px 10px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-weight: 500; line-height: 1.1; color: rgb(51, 51, 51); font-size: 24px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;读取超大文件&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;PHP开发很多时候都要读取大文件，比如csv文件、text文件，或者一些日志文件。这些文件如果很大，比如5个G。这时，直接一次性把所有的内容读取到内存中计算不太现实。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;这里生成器就可以派上用场啦。简单看个例子：读取text文件&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://images2017.cnblogs.com/blog/1264945/201712/1264945-20171208235318968-125612710.png&quot; style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; border: 0px; vertical-align: middle;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;我们创建一个text文本文档，并在其中输入几行文字，示范读取。&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; padding: 9.5px; margin-top: 0px; margin-bottom: 10px; overflow: auto; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; color: rgb(51, 51, 51); word-break: break-all; overflow-wrap: break-word; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px;&quot;&gt;&amp;lt;?php
header(&amp;quot;content-type:text/html;charset=utf-8&amp;quot;);
function&amp;nbsp;readTxt()
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;code...
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$handle&amp;nbsp;=&amp;nbsp;fopen(&amp;quot;./test.txt&amp;quot;,&amp;nbsp;&amp;#39;rb&amp;#39;);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while&amp;nbsp;(feof($handle)===false)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;code...
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;yield&amp;nbsp;fgets($handle);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fclose($handle);
}

foreach&amp;nbsp;(readTxt()&amp;nbsp;as&amp;nbsp;$key&amp;nbsp;=&amp;gt;&amp;nbsp;$value)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;code...
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;$value.&amp;#39;&amp;lt;br&amp;nbsp;/&amp;gt;&amp;#39;;
}&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;通过上图的输出结果我们可以看出代码完全正常。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;但是，背后的代码执行规则却一点儿也不一样。使用生成器读取文件，第一次读取了第一行，第二次读取了第二行，以此类推，&lt;strong style=&quot;box-sizing: border-box; padding: 0px; margin: 0px;&quot;&gt;每次被加载到内存中的文字只有一行&lt;/strong&gt;，大大的减小了内存的使用。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;这样，即使读取上G的文本也不用担心，完全可以像读取很小文件一样编写代码。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; padding: 0px; margin: 0px;&quot;&gt;&amp;nbsp;百万级别的访问量&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;yield生成器是php5.5之后出现的，yield提供了一种更容易的方法来实现简单的迭代对象，相比较定义类实现&amp;nbsp;Iterator&amp;nbsp;接口的方式，性能开销和复杂性大大降低。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;yield生成器允许你 在 foreach 代码块中写代码来迭代一组数据而不需要在内存中创建一个数组。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;使用示例：&lt;/p&gt;&lt;ol start=&quot;1&quot; style=&quot;box-sizing: border-box; padding: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;/**&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;*&amp;nbsp;计算平方数列&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;*&amp;nbsp;@param&amp;nbsp;$start&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;*&amp;nbsp;@param&amp;nbsp;$stop&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;*&amp;nbsp;@return&amp;nbsp;Generator&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;*/&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;function&amp;nbsp;squares($start,&amp;nbsp;$stop)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;($start&amp;nbsp;&amp;lt;&amp;nbsp;$stop)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;($i&amp;nbsp;=&amp;nbsp;$start;&amp;nbsp;$i&amp;nbsp;&amp;lt;=&amp;nbsp;$stop;&amp;nbsp;$i++)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;yield&amp;nbsp;$i&amp;nbsp;=&amp;gt;&amp;nbsp;$i&amp;nbsp;*&amp;nbsp;$i;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;($i&amp;nbsp;=&amp;nbsp;$start;&amp;nbsp;$i&amp;nbsp;&amp;gt;=&amp;nbsp;$stop;&amp;nbsp;$i--)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;yield&amp;nbsp;$i&amp;nbsp;=&amp;gt;&amp;nbsp;$i&amp;nbsp;*&amp;nbsp;$i;&amp;nbsp;//迭代生成数组：&amp;nbsp;键=》值&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;}&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;foreach&amp;nbsp;(squares(3,&amp;nbsp;15)&amp;nbsp;as&amp;nbsp;$n&amp;nbsp;=&amp;gt;&amp;nbsp;$square)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;$n&amp;nbsp;.&amp;nbsp;‘squared&amp;nbsp;is‘&amp;nbsp;.&amp;nbsp;$square&amp;nbsp;.&amp;nbsp;‘&amp;lt;br&amp;gt;‘;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;}&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;输出：&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;squared&amp;nbsp;is&amp;nbsp;9&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;squared&amp;nbsp;is&amp;nbsp;16&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;squared&amp;nbsp;is&amp;nbsp;25&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;示例2：&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; padding: 0px; margin-top: 0px; margin-bottom: 10px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;ol start=&quot;1&quot; style=&quot;box-sizing: border-box; padding: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; white-space: normal; background-color: rgb(255, 255, 255);&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;/对某一数组进行加权处理&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;$numbers&amp;nbsp;=&amp;nbsp;array(‘nike‘&amp;nbsp;=&amp;gt;&amp;nbsp;200,&amp;nbsp;‘jordan‘&amp;nbsp;=&amp;gt;&amp;nbsp;500,&amp;nbsp;‘adiads‘&amp;nbsp;=&amp;gt;&amp;nbsp;800);&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;//通常方法，如果是百万级别的访问量，这种方法会占用极大内存&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;function&amp;nbsp;rand_weight($numbers)&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;{&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$total&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach&amp;nbsp;($numbers&amp;nbsp;as&amp;nbsp;$number&amp;nbsp;=&amp;gt;&amp;nbsp;$weight)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$total&amp;nbsp;+=&amp;nbsp;$weight;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$distribution[$number]&amp;nbsp;=&amp;nbsp;$total;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$rand&amp;nbsp;=&amp;nbsp;mt_rand(0,&amp;nbsp;$total-1);&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach&amp;nbsp;($distribution&amp;nbsp;as&amp;nbsp;$num&amp;nbsp;=&amp;gt;&amp;nbsp;$weight)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;($rand&amp;nbsp;&amp;lt;&amp;nbsp;$weight)&amp;nbsp;return&amp;nbsp;$num;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;}&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;//改用yield生成器&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;function&amp;nbsp;mt_rand_weight($numbers)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$total&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach&amp;nbsp;($numbers&amp;nbsp;as&amp;nbsp;$number&amp;nbsp;=&amp;gt;&amp;nbsp;$weight)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$total&amp;nbsp;+=&amp;nbsp;$weight;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;yield&amp;nbsp;$number&amp;nbsp;=&amp;gt;&amp;nbsp;$total;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;}&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;function&amp;nbsp;mt_rand_generator($numbers)&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;{&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$total&amp;nbsp;=&amp;nbsp;array_sum($numbers);&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$rand&amp;nbsp;=&amp;nbsp;mt_rand(0,&amp;nbsp;$total&amp;nbsp;-1);&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach&amp;nbsp;(mt_rand_weight($numbers)&amp;nbsp;as&amp;nbsp;$num&amp;nbsp;=&amp;gt;&amp;nbsp;$weight)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;($rand&amp;nbsp;&amp;lt;&amp;nbsp;$weight)&amp;nbsp;return&amp;nbsp;$num;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;}&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 17 Aug 2021 20:07:02 +0800</pubDate></item><item><title>常用的移动端的meta属性设置</title><link>http://www.hartyu.com/?id=47</link><description>&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;link rel=&amp;quot;apple-touch-startup-image&amp;quot; href=&amp;quot;/splash-screen-320x480.png&amp;quot;/&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;!-- iPhone/iPod Touch 竖屏 320x480 (标准分辨率) --&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;link rel=&amp;quot;apple-touch-startup-image&amp;quot; sizes=&amp;quot;640x960&amp;quot; href=&amp;quot;/splash-screen-640x960.png&amp;quot;/&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;!-- iPhone/iPod Touch 竖屏 640x960 (Retina) --&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;link rel=&amp;quot;apple-touch-startup-image&amp;quot; sizes=&amp;quot;640x1136&amp;quot; href=&amp;quot;/splash-screen-640x1136.png&amp;quot;/&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;!-- iPhone 5/iPod Touch 5 竖屏 640x1136 (Retina) --&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;!-- iOS 启动画面 end --&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;!-- iOS 设备 end --&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;meta name=&amp;quot;msapplication-TileColor&amp;quot; content=&amp;quot;#000&amp;quot;/&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;!-- Windows 8 磁贴颜色 --&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;meta name=&amp;quot;msapplication-TileImage&amp;quot; content=&amp;quot;icon.png&amp;quot;/&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;!-- Windows 8 磁贴图标 --&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;link rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/rss+xml&amp;quot; title=&amp;quot;RSS&amp;quot; href=&amp;quot;/rss.xml&amp;quot;/&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;!-- 添加 RSS 订阅 --&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; type=&amp;quot;image/ico&amp;quot; href=&amp;quot;/favicon.ico&amp;quot;/&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;!-- 添加 favicon icon --&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;!-- sns 社交标签 begin --&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;!-- 参考微博API --&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;meta property=&amp;quot;og:type&amp;quot; content=&amp;quot;类型&amp;quot; /&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;meta property=&amp;quot;og:url&amp;quot; content=&amp;quot;URL地址&amp;quot; /&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;meta property=&amp;quot;og:title&amp;quot; content=&amp;quot;标题&amp;quot; /&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;meta property=&amp;quot;og:image&amp;quot; content=&amp;quot;图片&amp;quot; /&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;meta property=&amp;quot;og:description&amp;quot; content=&amp;quot;描述&amp;quot; /&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;!-- sns 社交标签 end --&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;title&amp;gt;标题&amp;lt;/title&amp;gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; white-space: normal; background-color: rgb(255, 255, 255);&quot;/&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-indent: 32px; background-color: #FFFFFF;&quot;&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;/p&gt;</description><pubDate>Tue, 17 Aug 2021 20:04:35 +0800</pubDate></item></channel></rss>