整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

短短两年使用率下滑 40%!曾经风靡全球的 PHP 为何逐渐失去优势?

者 | Richard MacManus

译者 | 核子可乐

策划 | Tina


根据 WordPress 联合创始人 Matt Mullenweg 的说法,PHP 的受众比例急剧下降,疑似受到 WordPress“JavaScript 优先”主张的影响。


TIOBE 编程语言人气指数发布更新,并提出“PHP 的魔力是否正在消散?”的灵魂拷问。今年 4 月,PHP 在 TIOBE 编程语言指数榜上仅位列第 17,“成为其有史以来的最低排位”。


暴露 PHP 人气急剧下滑的还不只是 TIOBE 榜单。在年度 Stack Overflow 开发者调查报告中,PHP 的市场占比也从 2018 年的 30.7%(即受访者当中使用 PHP 的百分比)下降至 2023 年的 18.58%。JetBrains 开发者生态系统调查同样观察到类似的趋势,PHP 占比从 2017 年的 30%下降至 2023 年的 18%。而且最后一项数据尤其值得关注,因为 JetBrains(以及 WordPress 托管厂商 Automattic)正是 PHP 的最大赞助方之一。


JetBrains 公布的开发者调查结果




这种下滑趋势在 BuiltWith 上体现得尤其明显,自 2020 年底以来 PHP 的流行度增长线开始断崖式跌落。


BuiltWith 公布的 PHP 趋势图



截至 2021 年 11 月的一项调查显示,PHP 在互联网前百万个网站中的占比仍在 3 万以上。但如今两年多过去,其占比已经下滑至 1.5 万左右。而且截至本文撰稿之时,BuiltWith Quotes 公布的实际占比数字为 18.19%。18%这个比例与 Stack Overflow 及 JetBrains 的调查发现高度吻合,因此我们可以基本确定,PHP 在开发者中的受欢迎程度已经从之前的约 30%萎缩至现在的 18%。换言之,在短短两年之间下降了 40%。


所以结论是什么?在过去几年里到底发生了什么样的变化,才导致 PHP 在 Web 编程语言的竞争当中迅速落败?

WordPress 高调宣布“JavaScript 优化”

可以说,PHP 衰落的最大原因就是 WordPress(迄今为止最具人气的 Web 内容管理系统)正在从 PHP 转向 JavaScript。WordPress 联合创始人兼 Automattic 公司 CEO Matt Mullenweg 在上月于中国台湾召开的 WordCamp Asia 2024 大会上也就此做出论述。


他在回答观众提问时表示,“我觉得 WordPress 中的大部分新代码现在都是由 JavaScript 编写而成,而且这种趋势已经持续了一段时间。因此从方方面面来讲,如今的 Gutenberg 已经转化成了一个 JavaScript 优先的项目。”


大家绝没看错:Matt Mullenweg 直言现在的 WordPress 就是个“JavaScript 优先的项目”。而他所提到的 Gutenberg,其实是该公司备受争议的全新用户界面,同时也是推动 JavaScript 全面替代 PHP 的主要原因。当然,他也承认从 PHP 转向 JavaScript“并不容易”。


WordPress 联合创始人 Matt Mullenweg 在 WordCamp Asia 2024 大会上




这倒不是说 WordPress 不再依赖于 PHP。毕竟在撰写本文时,我恰好就是在 WordPress 中以“/wp-admin/post-new.php”结尾的 URL 输入这篇文章。但只能说目前如此,未来的 WordPress 已经确定要走向另一条道路。


Mullenweg 还谈到,他希望能在 WordPress 中看到进一步改进——令人惊讶的是,他已经开始从 JavaScript 的视角出发看待这些变化。比如说,PHP 是一种服务器端脚本语言(意味着代码通常在 Web 服务器上处理),而 Mullenweg 希望 WordPress 能使用 JavaScript 把更多操作交由客户端执行。


他意味深长地表示,“我真心觉得我们应该把更多处理任务留在客户端。比如对于正在编辑的内容,这部分处理就可以交给客户端。这种在浏览器运行 JavaScript 的速度可能会更快,因为现在虚拟机和性能极强的处理器已经相当普遍。”


在演讲即将结束之时,有观众向 Mullenweg 询问他对 Gutenberg 项目的感受,以及开发人员为其做出贡献时遭遇到哪些困难。提出这个问题的开发者还希望“降低 Gutenberg 的抽象级别”。


Mullenweg 回应称,“说实施,我觉得大家必须适应这种发展态势。我认为 Gutenberg 的开发方式和 JavaScript 优先理念才是大部分 Web 开发工作的未来方向。顺带一提,其实我也得重新学习,这些东西跟我当初熟悉的方式也有区别。也许我们可以把某些抽象调整得更简单一点,但总体而言,我会选择深入研究一下。”


他还补充称,Gutenberg 项目、包括向 JavaScript 语言的转变,目前还远未完成。“在启动 Gutenberg 项目时,我们就知道这可能是个为期 10 年的项目。目前我们才刚刚完成 60%到 70%的工作。”


与此同时,在 PHP 基金会这边……

不得不承认,WordPress 项目(也是 PHP 能够在 Web 领域保持流行的最大动因)正坚定向着 JavaScript 世界迈进。这几乎必然会阻止更多年轻开发者选择 PHP,同时迫使其他开发人员(例如那些致力于服务 WordPress 客户的开发人员)从 PHP 转向 JavaScript。


但好消息是,仍然有相当一部分开发者群体会继续使用 PHP——毕竟两轮大规模开发者调查中的这 18%对应着相当体量的从业受众。而 PHP 基金会将继续为他们提供支持。


PHP 基金会于 2021 年 11 月正式成立,希望以非营利组织的身份承担起 PHP 项目的管理职责。PHP 基金会是由 JetBrains 领导的企业联盟所建立,其中包括 Automattic、Zend、Laravel 以及 Acquia(Drupal 的托管商)等。JetBrains 工程师 Roman Pronskiy 则出任项目负责人,目前在基金会网站上的头衔为“运营主管”。


在今年 2 月的 Laravel 会议上,Pronskiy 主要探讨了技术问题,同时也承认“PHP 基金会目前最艰巨的任务,就是扭转 PHP 在公众心目中的形象。”虽然他没有具体说明是哪些原因导致 PHP 的公众形象下降,但 Matt Mullenweg 在解释 WordPress 转向“JavaScript 优先”的理由时已经基本给出了答案。无论如何,Pronskiy 正快速投身于 PHP 项目的后续开发,并为其组织起由 10 名有偿开发者组成的全职团队。


PHP 基金会团队




总而言之,2024 年的 PHP 几乎成了 Web 开发领域爹不疼、娘不爱的“孤儿”,而 JavaScript 则是在家、在校都备受关注的宠儿。对 PHP 来说更加可悲的是,目前的这种人气下滑趋势短时间内恐怕无法停止——毕竟 WordPress 那边的开发团队还在积极适应新的 JavaScript 规范。但至少 PHP 基金会还在为此而努力,也许这股颓势能够逐渐迎来转机。

原文链接:短短两年使用率下滑40%!曾经风靡全球的PHP为何逐渐失去优势?_编程语言_Richard MacManus_InfoQ精选文章

、原因

1.编码原因。在用GD库输出中文字符串时,要使用imagettftext()函数。但如果PHP编译时启用–enable-gd-jis-conv选项的话,那么非ASCII字符(例如汉字、拼音、希腊文和箭头) 会被当成EUC-JP编码 (phpinfo中美其名曰“支持JIS编码的字体”), 从而导致乱码(由于西文字体没有假名或汉字,一般表现为全部是方框)。

2.没有选择正确的TTF字体文件。使用gd库时如果要输出中文字符,需要选择正确的TTF字体文件。




二、解决方法

1.建议整站使用UTF8编码,如果你已使用的是GB2312或GBK编码,请使用iconv或自定义的gb2312与utf8转换函数进行字符编码转换。

2.如果你是刚进行php环境搭建,建议将Apache配置文件中的默认字符集修改为UTF8,即AddDefaultCharset UTF8。

3.如果上述方法还不行,请检查你在编译gd库时是否添加了“–enable-gd-jis-conv”选项,此选项是为了让gd库支持日文编码的字库,请取消此选项并重新编译。此方法本人已验证过,Linux系统下安装配置nginx+php环境,搭建Zabbix服务时碰到,添加了“–enable-gd-jis-conv”选项,Zabbix使用中文界面,更换字体文件前后,查看主机监控图标信息都会出现乱码。

4.使用php gd库产生中文乱码的另一个原因是没有选择正确的TTF字体,你需要选择支持中文的字体,常用的中文字体文件是simsun.ttc和simhei.ttf。

按照上述方法,基本上使用php gd库产生中文乱码时都能够解决。只要仔细排查其实gd库的中文乱码解决起来非常方便。



参考:

https://www.php.cn/php-ask-456070.html

https://blog.csdn.net/lizhenjian521/article/details/51038547

为PHP编程领域的专家,我深知从网页中提取HTML元素的益处。以下是几种有效可行的技术手段,帮助您轻松应对网页数据处理挑战!

利用file_get_contents函数获取网页文档。

首要之事,file_get_contents函数在索取网页源代码方面具备极其重要的应用价值。借助此功能,我们得以轻松便捷地将文档内容储存在特定变量之中,从而大大提高后续流程的效率和灵活度。

2.使用正则表达式匹配HTML元素

接下来,如何利用正则表达式实现对HTML元素的精细而高效的查找?我们借助这个实用工具,便可迅速定位并获取所需对象信息了。

3.使用preg_match_all函数提取所有匹配结果

利用PREG_MATCH_ALL功能,便能顺利检索出所有HTML元素,进而将其转化为易于后续操作的数组格式进行处理。

4.使用foreach循环遍历匹配结果

处理匹配结果时,利用for each循环对所有HTML元素进行精细处理,确保无疏漏。

5.使用strip_tags函数去除HTML标签

在某些特殊情况下,只需关注HTML代码内的文本内容,无需保留其他标签信息。此时,运用strip_tags函数便可便捷地消除所有HTML标签,从而显示出纯正文信息。

6.使用getAttribute方法获取元素属性

对于特定HTML参数的解析,我们推荐使用getAttribute技巧。此方法简易方便,能快速提供详细属性信息。

7.使用XPath进行高级定位

除了常规的正则表达式, Xpath是一种更具灵活性的XML节点选择工具。这是一种专业且精准的分析XML路径语言的算法。

8.使用DOMDocument类进行DOM操作

借助DOMDocument类,可以精确高效地理清并实现网页功能,如元素编辑,删除及添加等。其丰富的方法属性使其在解决DOM树操控方面更具优势。

9.使用CURL库模拟浏览器请求

在特定环境下,网页会设立防爬虫保护措施以避免数据被扒取。然而,依托于CURL库及其模拟浏览器请求的技术,这类限制已得以有效规避。

10.不断学习和实践才能掌握技巧

启示强调,深入理解HTML元素,对于熟练应用于各类实战项目绝非易事,唯有持之以恒地深化学习与实践才得实现。

希望今日的分享能助您深化对PHP获取及操作HTML页面元素的理解掌握。立志者终成功,坚持努力定将成就卓越PHP工程师之荣光。预祝您在技术领域百尺竿头,再创新篇章!