设为首页 收藏本站
查看: 840|回复: 0

[经验分享] PHP开发Windows桌面应用程序实例

[复制链接]

尚未签到

发表于 2017-3-27 11:46:51 | 显示全部楼层 |阅读模式
  

PHP_GTK2.0 开发桌面应用程序


php gtk 官方网站


http://gtk.php.net/


官方有gtk的中文手册 具体安装请参见 手册


更简单的方法是用另外一款软件 名字叫做gnope


下载地址:http://www.gnope.org/download.php


安装过程很简单 安装好之后 在桌面会有个PHP-Gtk2 Applications 的快捷方式图标


双击该图标 会出现一个php的桌面程序 里面列出了所有的demo 有控件演示 还有游戏(前提是安装时选择了安装游戏)


应用详细讲解:

http://www.16ec.com/tp15/site/index.php和http://blog.csdn.net/zhangking/archive/2010/08/20/5825416.aspx


看过这些程序 你是不迫不及待要自己莱写一个桌面应用程序了啊


下面就给出一个简单的登陆程序:

<?php
if (!class_exists(‘gtk’)) {
die("lease load the php-gtk2 module in your php.ini\r\n");
}
function login(GtkWindow $wnd, GtkEntry $txtUsername, GtkEntry $txtPassword)
{
$strUsername = $txtUsername->get_text();
$strPassword = $txtPassword->get_text();
$errors = null;
if (strlen($strUsername) == 0) {
$errors .= "Username is missing.\r\n";
}
if (strlen($strPassword) == 0) {
$errors .= "No password given.\r\n";
}
if ($errors !== null) {
$dialog = new GtkMessageDialog($wnd, Gtk::DIALOG_MODAL,
Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, $errors);
$dialog->set_markup(
"The following errors occured:\r\n"
. "<span foreground=’red’>" . $errors . "</span>"
);
$dialog->run();
$dialog->destroy();
}
else {
$wnd->destroy();
}
}
$wnd = new GtkWindow();
$wnd->set_title(‘Login’);
$wnd->connect_simple(‘destroy’, array(‘gtk’, ‘main_quit’));
$txtUsername = new GtkEntry();
$txtPassword = new GtkEntry();
$lblUsername = new GtkLabel(‘_Username’,true);
$lblPassword = new GtkLabel(‘_Password’,true);
$btnLogin = new GtkButton(‘_Login’);
$btnCancel = new GtkButton(‘_Cancel’);
$lblUsername->set_mnemonic_widget($txtUsername);
$lblPassword->set_mnemonic_widget($txtPassword);
$btnCancel->connect_simple(‘clicked’,array($wnd,’destroy’));
$btnLogin->connect_simple(‘clicked’,'login’,$wnd,$txtUsername,$txtPassword);
$tbl = new GtkTable(3,2);
$tbl->attach($lblCredit,0,2,0,1);
$tbl->attach($lblUsername,0,1,1,2);
$tbl->attach($txtUsername,1,2,1,2);
$tbl->attach($lblPassword,0,1,2,3);
$tbl->attach($txtPassword,1,2,2,3);
$bbox = new GtkHButtonBox();
$bbox->set_layout(Gtk::BUTTONBOX_EDGE);
$bbox->add($btnLogin);
$bbox->add($btnCancel);
$vbox = new GtkVBox();
$vbox->pack_start($tbl);
$vbox->pack_start($bbox);
$wnd->add($vbox);
//$lblHello = new GtkLabel("This is my first php talbe application\nhaha");
//$wnd->add($lblHello);
$wnd->show_all();
Gtk::main();
?>

在 Windows
上安装使用 Gnope



使用 Gnope
在 Windows
上安装和维护 PHP-GTK 2
已经被证明几乎是最简单的方法。 Gnope
是全功能的 PHP-GTK 2
安装包,包含 PHP 5.1
、GTK 2.6
和 PEAR
。 简单的点几下鼠标你就可以安装完成!

只要从 gnope.org

下载安装包,并跟随屏幕上的指引。 Gnope
也拥有它自己的 PEAR
自动安装频道, 那里你可以下载 PHP-GTK 2
程序添加到官方的 PEAR
包中。 例如从 Gtk2 category



手工安装



PHP-GTK 2 下载


页面下载
PHP-GTK 2
的针对 Windows
的 Alpha
版本二进制发行包。解压缩文件到指定目录。
一个名为 php-gtk
的目录将会创建,并包含发行版的所有内容。

你需要 php.exe
(CLI
版本)和
php5ts.dll
,这两个都可从 PHP 5

Windows
发行版中获得, 并且放置到 php-gtk
目录。如果你希望使用这个 php.exe
的其他扩展,请确保你已经存放二进制文件于此。

之后,你必须设置环境变量 PATH
包含发行包中的 gtk+2.6.9

目录。 你也可以让批处理文件 gtkpath.bat
在运行时设置适当的 PATH
变量用于当前命令行会话中。

从 CVS
编译


这里仅仅包含在 Windows
上安装 PHP-GTK 2
最主要的步骤。如果你希望了解更多内容,
请从 CVS
上获取 win32/README.win32.txt
并阅读。

from: http://gtk.php.net/manual/zh_cn/html/tutorials/tutorials.installation.windows.html

=============
WinBinder

让phper
可以在window
系统开发桌面软件


WinBinder
是一种开源的 PHP
动态扩展(.dll)
,也算是脚本编程语言,为php
在window
下的开发提供用户界面UI
,它负责调用window
的API
接口。其运行 PHP

程序员轻松地使用 PHP
创建 Windows
应用程序。当然,这个只能在 Windows
下运行。本身是一个软件,php
程序员可以通过这个软件开发界面。官方网站说得很不错,无须编译php.
只要保存文件扩展为.phpw
,然后用 php.exe
打开就可以运行。具体开发感受如何,要试验一下才知道。初步感觉不会比php-gtk
差。

可以在此处下载到 WinBinder

的包


, 下那个 .zip
包,一般不需要用 .exe
的。下完之后解压缩,将 winbinder_xxx\PHP\PHP4\ext

目录下的(如果用的是 PHP5
则复制 PHP5
目录下的) php_winbinder.dll
复制到 PHP
扩展目录下,一般在 C:\php\extensions
,然后修改 php.ini
文件,加上:

extension=php_winbinder.dll

然后到打开命令行(cmd
),进入到 winbinder_xxx\Code\Samples
目录下,运行:

C:phpcliphp.exe manytests_main.phpw

这样就可以看到 Windows
窗口了,测试用的例子很多,可以都试试。我试了一下中文,还是支持得不错的,想想也是,WinBinder
是通过扩展的方式,加载到 PHP
中,其调用的都是 Windows
的 APIs
。实际上可以将 WinBinder
分为两层,一层是底层,叫 API
层,作为 PHP
扩展直接连接 Windows
的 API
,并为第二层(高层,叫 PHP
层)提供统一的调用接口。

Hello, world

代码示例


<?php

include("../inc/winbinder.php");                               
//
包含 WinBinder PHP
库文件

wb_create_window(NULL, PopupWindow, "Hello world!", 480, 320); //
创建 Windows
应用程序

wb_main_loop();                                                
//
进入消息循环

?>


 

winbinder
的安装版的安装与配置


首先去http://winbinder.org/files/WinBinder-0.46.0.exe

下载winbinder
,这是一个安装版的,下载后双击安装。


  
1
、next


  
DSC0000.gif
  2
、next



DSC0001.gif

 
3
、选择安装路径然后next
,这里我选择的是d;/winbinder


  
DSC0002.gif

 
4
、选择php
的版本,我这里的是php5.1




DSC0003.gif
  5
、选择下载的服务器,选择台湾比较快(
又只有台湾的选项而没有中国的,气愤)



  
DSC0004.gif
  6
、next


  
DSC0005.gif

 

 7
、install




DSC0006.gif
  8
、等待




DSC0007.gif
9
、安装完成后点确认就行了。可以做第10步了。  



  
10
、安装好后打开D:\WinBinder\phpcode\examples
,任找一个.phpw
扩展名的文件,选择打开方式为D:\WinBinder\binaries\php51\php-win.exe


  

 
DSC0008.gif
  现在已经可以运行以.phpw
为扩展名的文件了。例如

  
DSC0009.gif
这里要讲解几个问题

1:
我们可以选择的打开方式有三种,分别是php.exe php-win.exe php-cgi.exe
如果打开方式选择的是php-cgi.exe

那么在运行的时候,就会有一个命令提示符窗口出现,在实际应用中这个窗口也许看来很多余,但是在调试的时候可是很有用的哦

他能够提示你程序中有哪些错误。

2:
刚才我们选择的打开方式为D:\WinBinder\binaries\php51\
下的.exe
文件,可能有朋友要问了,为什么不能选择本机中已经 安装好的php(
假设是D:/php)
文件夹下的.exe
文件呢?其实是可以的,但是这里有一个问题,如果选择php
文件夹下的.exe
文件,那么它使用 的是c:\windows
下的php.ini
配置文件,这样的话winbinder
运行时加载的.dll
文件,实际上是D:/php/ext/
文件夹中的 文件。所以这个时候需要把php.ini
中的extension_dir
设置为./ext
因为ext
文件夹是和.exe
文件在同一文件夹中的(
即 D:\php
文件夹)
。然后还需要把D:\WinBinder\binaries\php51\ext
中的php_winbinder.dll
文件放到 D:\php\ext
中,然后相应的在c:\windows
下的php.ini
文件中加上extension=php_winbinder.dll
。另外
如果需要使用相应的库文件的话,需要在php.ini
中对应的文件名前的;
号去掉,这个我想大家都知道吧。

如果选择打开方式为D:\WinBinder\binaries\php51\
下的.exe
文件则就没有这么麻烦,它使用的是D:\WinBinder \binaries\php51\
下的php.ini
文件,你可以不作任何的配置就可以使用,但是他只默认支持mysql
和sqlite
这两个库,如果你 希望使用其他的库例如gd
那么就需要修改D:\WinBinder\binaries\php51\
下的php.ini
文件,然后把对应的库文件(
例如 php_gd.dll)
放到D:\WinBinder\binaries\php51\ext
下。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-356100-1-1.html 上篇帖子: php 5.4 APC invalid pointer报错的解决办法 下篇帖子: 关于PHP开发编码规范
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表