PHP能不能写一个类似计算器桌面应用

简介: 小马也是无意中心血来潮,想着PHP能不能也写个类似计算器一样的桌面应用。比如,桌面有个“计算器.exe”,点开后就是计算器界面,重要的是这个玩意是用PHP写的,对,你没看错,就是PHP。

小马也是无意中心血来潮,想着PHP能不能也写个类似计算器一样的桌面应用。比如,桌面有个“计算器.exe”,点开后就是计算器界面,重要的是这个玩意是用PHP写的,对,你没看错,就是PHP。

CLI(命令行运行 / Command Line Interface)模式

首先,我们要知道PHP有哪些运行模式。

1)CGI(通用网关接口/ Common Gateway Interface)

2)FastCGI(常驻型CGI / Long-Live CGI)

3)CLI(命令行运行 / Command Line Interface)

4)ISAPI(Internet Server Application Program Interface)

我们经常看到的PHP是跑在Apache或者NGINX的web服务器上,也就是CGI,FastCGI模式上,需要借助于web服务器,那么我们的访问也必须借助于浏览器。有的同学说了我写个计算器的html前端页面,然后web服务器上放PHP后端计算逻辑,使用的时打开浏览器不就搞定了。没错,是很完美,但是小马想要的是桌面应用呢。

于是cli模式登场了。这个模式很低调,乃至很多开发了PHP很多年的老手都不知道还有这玩意。所有的PHP发行版,不论是编译自源代码的版本还是预创建的版本,都在默认情况下带有一个PHP可执行文件。这个可执行文件可以被用来运行命令行的PHP程序。(参考原文)

要在你的系统上找到这个可执行文件,就要遵照下面的步骤:

    Windows :放在PHP主安装目录下,文件名是php.exe或者(在老版本的PHP里)是php-cli.exe。

    Linux : 保存在PHP安装目录的bin/子目录下。

需要注意的是CLI模式和CGI模式运行时用的PHP.INI并非同一套配置,需要单独配置。

也就是如果是window 你只要cmd 窗口 php.exe your.php就可以执行你的PHP代码了,直接甩开web服务器。好了,我们似乎解决了需要依赖web服务器和浏览器的尴尬了。

像swoole也是使用了cli运行模式。

PHP-GTK编写一个windows桌面应用程序

那么另一个问题来了,不借助浏览器怎么渲染图形界面呢?智慧的PHPer当然不会束手无策了。于是PHP-GTK诞生了,我们暂且叫它为图形界面开发框架吧。这玩意诞生在很早之前了,已经很少维护了,估计是使用价值不大吧。像与其同类的也还有好多。

于是小马下载了这个框架,下载地址这里。我们可以看到最新的维护时间停留在了2015。
image.png

解压后我们注意到很多相关拓展。

image.png

小马打开了几个demo,大多都继承了GTK。
image.png

运行效果类似:
image.png

嗯,似乎一切还算顺利。还有一个问题没解决,那就是,我要的.exe呢?难道每次都要命令行敲php.exe your.php吗?小机灵鬼出现了,我把这个命令写成.cmd或者.bat批处理(比如下图),每次只要点击一个这个文件就可以了。小马已经语塞。
image.png

php文件编译成exe可执行文件工具

小马又找到了一款工具bamcompile。可以把PHP文件编译成EXE。很多人说这种编译只不过是把PHP解析器和PHP代码一起打包而已。

类似的工具还有:Peachpie、Phalanger、Bambalam PHP EXE编译器/嵌入器、ZZEE PHPExe、PHP扩展bcompiler、WinBinder开源扩展、PHP Desktop、PHP Nightrain。

我们怎么用GO写一个exe文件呢?Walk ,GO语言的图形界面。参考这里。

好了,似乎今天的文章没有啥用处,而且PHP的很多GUI项目也已经GG了。因为很少有人用PHP来写桌面图形界面应用,但如果有人和你杆起来PHP是不是世界上最好的语言的时候,你就还可以抛出这招。

这次的分享就到这了。水平有限,不到之处欢迎指正。
image.png

相关文章
|
2月前
|
数据处理 PHP 开发者
PHP中实现简易计算器功能
【8月更文挑战第31天】在编程的世界里,将理论应用到实践是检验知识掌握程度的试金石。本文将通过一个简单的PHP项目——构建一个简易计算器,引导你理解PHP的基本语法及其在实际应用中的运用。我们将从零开始,逐步搭建起这个计算器,并在过程中加深对PHP数据处理和函数使用的理解。无论你是初学者还是希望温故而知新的开发者,这篇文章都将为你提供一次愉快的编程之旅。
|
2月前
|
Cloud Native PHP Docker
PHP中实现简易计算器功能
【8月更文挑战第31天】本文深入浅出地介绍了云原生技术中的一个重要组成部分—Docker容器。通过实际案例,我们将一起探索如何将应用容器化,并部署到云端。文章不仅涵盖了Docker的基本操作和概念,还提供了详细的代码示例,帮助初学者快速上手。让我们一起开启云原生技术的奇妙旅程吧!
|
前端开发 PHP
实训项目:PHP计算器功能程序实现
  设计一个网页,让用户输人一个运算式,采用下拉列表提供“加、减、乘、除、模(%)”至少4种运算符。当用户单击“求值”按钮时,自动计算结果并显示出提示信息(可以是弹框显示结果,也可以是在浏览器的页面显示结果。
145 0
实训项目:PHP计算器功能程序实现
|
14天前
|
安全 关系型数据库 MySQL
PHP与MySQL交互:从入门到实践
【9月更文挑战第20天】在数字时代的浪潮中,掌握PHP与MySQL的互动成为了开发动态网站和应用程序的关键。本文将通过简明的语言和实例,引导你理解PHP如何与MySQL数据库进行对话,开启你的编程之旅。我们将从连接数据库开始,逐步深入到执行查询、处理结果,以及应对常见的挑战。无论你是初学者还是希望提升技能的开发者,这篇文章都将为你提供实用的知识和技巧。让我们一起探索PHP与MySQL交互的世界,解锁数据的力量!
|
25天前
|
NoSQL 关系型数据库 MySQL
不是 PHP 不行了,而是 MySQL 数据库扛不住啊
【9月更文挑战第8天】这段内容讨论了MySQL在某些场景下面临的挑战及其原因,并指出这些问题不能完全归咎于MySQL本身。高并发读写压力、数据量增长以及复杂查询和事务处理都可能导致性能瓶颈。然而,应用程序设计不合理、系统架构不佳以及其他数据库选择和优化策略不足也是重要因素。综合考虑这些方面才能有效解决性能问题,而MySQL通过不断改进和优化,仍然是许多应用场景中的可靠选择。
|
2月前
|
存储 SQL 关系型数据库
PHP与MySQL交互的奥秘
【8月更文挑战第29天】在编程的世界里,PHP和MySQL就像是一对默契的舞伴,共同演绎着数据的交响曲。本文将带你探索它们之间的互动,从连接数据库到执行查询,再到处理结果,每一步都充满了节奏与和谐。我们将一起走进这段代码的旅程,感受数据流动的魅力。
|
2月前
|
SQL 关系型数据库 MySQL
PHP与MySQL交互之基础教程
【8月更文挑战第31天】 在数字世界中,数据是推动一切的核心力量。本文将引导你探索PHP与MySQL的协同工作,通过实际代码示例,展示如何建立连接、执行查询以及处理结果集。无论你是初学者还是希望巩固知识的开发者,这篇文章都将为你提供宝贵的实践知识。
|
3月前
|
数据库
基于PHP+MYSQL开发制作的趣味测试网站源码
基于PHP+MYSQL开发制作的趣味测试网站源码。可在后台提前设置好缘分, 自己手动在数据库里修改数据,数据库里有就会优先查询数据库的信息, 没设置的话第一次查询缘分都是非常好的 95-99,第二次查就比较差 , 所以如果要你女朋友查询你的名字觉得很好 那就得是她第一反应是查和你的缘分, 如果查的是别人,那不好意思,第二个可能是你。
53 3