????优质资源分享????
???? 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,搜索顺序如下:
也可以用process.php.cgiPath明确指定路径,例如:
process.php.cgiPath = "~libphp.dllphp-cgi.exe"
至于下面的代码会返回访问“/res/test.php”的HTTP地址:
var url = process.php("/res/test.php");
如果软件自带PHP组件,在aardio中占击「发布」生成EXE——可点击「转换为独立EXE」按钮生成单EXE程序:
▶嵌入PHP
aardio提供了php扩展库可以直接调用PHP的解释器。
aardio嵌入式调用PHP示例:
import php;
import console;
//PHP代码
var phpcode =/*
$a="我是PHP中的变量a";
function main(){
global $a;
return $a." 这是main()函数的返回值";
};
*/
//运行 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语法对比
要注意PHP2默认编码为GBK,而aardio默认编码为UTF-8编码。
PHP的注释语法与aardio一样,
PHP语句也以分号结束,并且分号不能象aardio那样省略
PHP中的所有变量必须以$符号开始。$号是变量的修饰前缀,但不是变量名称的一部分
在PHP中函数内部变量默认为局部变量,使用global语句引入或声明全局变量
PHP单引号中是纯文本,类似 这样的转义符不起作用,而双引号中可以使用转义符,aardio中也有类似的机制,不过规则正好相反。aardio中双引号中才是普通文本,单引号中支持转义符。
▶PHP调用aardio
aardio调用PHP,PHP再回调aardio代码:
import php;
import console;
//PHP代码
var phpCode =/*
$ret = aardio("
import win;
import web.json;
win.msgbox("我是 aardio 代码");
return web.json.stringify({a=123;b=456});
")
*/
//运行PHP代码,返回表达式的值
var ret = php.eval(phpCode)
console.log( ret );
console.pause();
注意:aardio返回给PHP的值都是字符串类型,PHP调用的aardio代码使用return语句返回值。
▶嵌入PHP:自定义PHP输出
为了方便测试,首先用下面的aardio代码生成测试PHP文件:
phpcode = /*
php
echo "<pHello World";
phpinfo(INFO\_ALL);
?>
*/
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代码编写。
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点