我的编程空间,编程开发者的网络收藏夹
学习永远不晚

aardio + PHP 可视化快速开发独立 EXE 桌面程序

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

aardio + PHP 可视化快速开发独立 EXE 桌面程序

🚀 优质资源分享 🚀

学习路线指引(点击解锁)知识定位人群定位
🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

aardio 支持与很多编程语言混合开发。网络上大家分享的 aardio + Python 混合开发的文章很多,aardio + PHP 的文章却很少。

其实 aardio 与 PHP 混合开发是真的简单 !

▶ CGI 调用 PHP

aardio 虽然很小,但自带嵌入式 HTTP 服务器,通过 CGI 调用 PHP 也非常简单。

这种方式就跟平时用 PHP 写网站基本一样了,而且兼容所有 PHP 版本。下面我们直接看 aardio 代码示例:

import win.ui;var winform = win.form(text="PHP\_CGI 服务器");import web.form;var wb = web.form( winform);//启动 PHP CGI 服务端import process.php;//获取 PHP 页面网址var url = process.php("/res/test.php");//调用浏览器组件显示网页wb.go(url);winform.show();win.loopMessage();

是不是非常简单?

这就是一个完整的 aardio + PHP 程序。

上面短短几句代码包含了:图形界面、浏览器组件、PHP 服务端、HTTP 服务器。

aardio 把所有需要操心的事都默默地做好了,例如 HTTP 服务器会自动分配空闲端口,不同程序不会相互冲突。在需要时会自动启动 HTTP 服务端线程,在界面线程退出时 —— 自动退出 HTTP 服务端,全部都自动处理好。

process.php 会自动搜索 php-cgi.exe,搜索顺序如下:

1、\php\php-cgi.exe 2、环境变量 PHP\_CGI\_EXE\_PATH 指定的位置3、path 环境变量指定的目录下查找 php-cgi.exe4、自注册表搜索5、C:\Program Files\PHP 目录下搜索6、ardio 中 PHP 扩展库自带的  ~\lib\php\.dll\php-cgi.exe

也可以用 process.php.cgiPath 明确指定路径,例如:

process.php.cgiPath = "~\lib\php\.dll\php-cgi.exe"

至于下面的代码会返回访问 “/res/test.php” 的 HTTP 地址:

var url = process.php("/res/test.php");

支持内嵌资源目录下的文件路径:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kzVwTkVS-1664340075443)(https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/8b6db71212e84b6e86c902a8f93976a4~noop.image?_iz=58558&from=article.pc_detail&x-expires=1664940379&x-signature=ftQj48JWAD1KtqKtUvgfSRsvgd8%3D)]

如果软件自带 PHP 组件,在 aardio 中占击「发布」生成 EXE —— 可点击「转换为独立 EXE」按钮生成单 EXE 程序:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SteL0VDS-1664340075445)(https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/95d7db8b2bf64a66b8fa7b08b7e20063~noop.image?_iz=58558&from=article.pc_detail&x-expires=1664940379&x-signature=3MaAufCUpeRSZGOMlZbEgfpbb5w%3D)]

▶ 嵌入 PHP

aardio 提供了 php 扩展库可以直接调用 PHP 的解释器。

php 扩展库自带的 PHP 版本为 v5.2 ,这个版本的好处是体积非常小,兼容到 XP,不需要额外再安装其他 C++ 运行库。其实用来写一般的桌面程序够用了。如果您希望使用高版本 PHP —— 请改用前面讲的 CGI 方式调用。

aardio 嵌入式调用 PHP 示例:

import php;import console;  //PHP代码var phpcode = //运行 PHP 代码 php.exec(phpcode) //运行 PHP 代码,调用 PHP 函数返回值 var ret = php.eval("main()") console.log( ret ); //运行 PHP 代码,返回表达式的值var ret = php.eval("8899") console.log( ret );//再用 eval 函数访问 PHP 中的变量var ret = php.eval("$a") console.log( ret );//更简单一些,直接读 PHP 中的变量,注意去掉变量前面的$符号console.log("直接读取PHP中的变量", php.a ) //同上,也可以直接修改 PHP 中的变量 php.global\_abc = 2011 //请注意: PHP返回给aardio的值都是字符串类型console.pause();

▶ aardio 与 PHP 语法对比

请参考:aardio 编程语言快速入门——语法速览

要注意 PHP 5.2 默认编码为 GBK,而 aardio 默认编码为 UTF-8 编码。

PHP 的注释语法与 aardio 一样,

PHP 语句也以分号结束,并且分号不能象 aardio 那样省略

PHP 中的所有变量必须以 $ 符号开始。 $号是变量的修饰前缀,但不是变量名称的一部分

在PHP中函数内部变量默认为局部变量(这与aardio,Javascript正好相反),使用 global 语句引入或声明全局变量

PHP单引号中是纯文本,类似 \n 这样的转义符不起作用,而双引号中可以使用转义符,aardio中也有类似的机制,不过规则正好相反。aardio中双引号中才是普通文本,单引号中支持转义符。

更多语法对比请参考:aardio 范例 > 调用其他语言 > PHP > 语法比较

▶ PHP 调用 aardio

aardio 调用 PHP,PHP 再回调 aardio 代码:

import php;import console; //PHP代码var phpCode = //运行PHP代码,返回表达式的值var ret = php.eval(phpCode) console.log( ret );console.pause();

注意: aardio 返回给PHP的值都是字符串类型, PHP 调用的 aardio 代码使用 return 语句返回值。

▶ 嵌入PHP:自定义 PHP 输出

为了方便测试,首先用下面的 aardio 代码生成测试 PHP 文件:

phpcode = string.save("/test.php",phpcode )

然后用 aardio 调用上面的 test.php :

import php;php.print = function( msg ) {  import console; console.log(msg); console.more();}//执行 PHP 文件php.dofile("/test.php")

在 aardio 中只要简单的定义 php.print 函数,就可以捕获 PHP 的输出数据了。

▶ 嵌入 PHP:重置 PHP 解释器

下面直接看 aardio 代码如何重置 PHP 解释器:

import php;import console;//打开控制台console.open();//重置 PHP 解释器php.begin() php.eval("$a=123"); console.log( php.a ); php.end()//重置 PHP 解释器php.begin() php.eval("$b=456");  //注意这里PHP中的变量$a已经失效 console.log( php.a,php.b ); php.end()console.pause(); 

▶ 混合不同编程语言只是可选项

aardio 虽然可以方便地混合很多编程语言,但混合编程仅仅是可选项。下面这些很受欢迎的桌面软件 —— 都是使用纯 aardio 代码编写。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wvxtnlsc-1664340075447)(https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/e59bf824d76449c0b941b9e4eaf1cca6~noop.image?_iz=58558&from=article.pc_detail&x-expires=1664940379&x-signature=QWSlTggsGdgKvao%2BxYsNfJ0HaZ4%3D)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZMKwN6Uc-1664340075448)(https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/45a5a4e8e33b47c8a274c63316f3bd98~noop.image?_iz=58558&from=article.pc_detail&x-expires=1664940379&x-signature=BCxB3guICqtHcZk7ZYcCVy8S0z0%3D)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hi0fRwLb-1664340075449)(https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/210ba816d08e4591a2f1ecc4f7c9ec7f~noop.image?_iz=58558&from=article.pc_detail&x-expires=1664940379&x-signature=RBuwPAOChuWjYJpElzaaWfJYdg0%3D)]

来源地址:https://blog.csdn.net/qq_43479892/article/details/127087265

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

aardio + PHP 可视化快速开发独立 EXE 桌面程序

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录