`
skyfen
  • 浏览: 179386 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

PHP开发Windows桌面应用程序实例

阅读更多


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.1GTK 2.6 PEAR 。 简单的点几下鼠标你就可以安装完成!

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

手工安装

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

你需要 php.exeCLI 版本)和 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) ,也算是脚本编程语言,为phpwindow 下的开发提供用户界面UI ,它负责调用windowAPI 接口。其运行 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


 

2 next


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



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


 

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


 

6 next



 
 7 install


 

8 、等待


 

 

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

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


 

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


这里要讲解几个问题
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 文件,你可以不作任何的配置就可以使用,但是他只默认支持mysqlsqlite 这两个库,如果你 希望使用其他的库例如gd 那么就需要修改D:\WinBinder\binaries\php51\ 下的php.ini 文件,然后把对应的库文件( 例如 php_gd.dll) 放到D:\WinBinder\binaries\php51\ext 下。

  • 大小: 11.7 KB
  • 大小: 14.7 KB
  • 大小: 10.7 KB
  • 大小: 14.1 KB
  • 大小: 14.8 KB
  • 大小: 13 KB
  • 大小: 16.1 KB
  • 大小: 13 KB
  • 大小: 20 KB
  • 大小: 4.6 KB
分享到:
评论
16 楼 renzhen 2011-04-22  
leero 写道
maplechenda 写道
不够费劲的,.net点几下就出来的东西你得费多大劲,没啥实际意义!



这个不是费劲不费劲的问题,如果一个只搞php的人,他根本不懂.net,也没必要再学习.net,还是用自己熟悉的东西更好

如果他只搞php开发web应用,的确没必要再学习.net,如果想开发windows客户端,我还是推荐他再学习.net,结果远比学习GTK类库的简单有效。这个当兴趣不错,用处的确鸡肋。
15 楼 leero 2011-04-18  
maplechenda 写道
不够费劲的,.net点几下就出来的东西你得费多大劲,没啥实际意义!



这个不是费劲不费劲的问题,如果一个只搞php的人,他根本不懂.net,也没必要再学习.net,还是用自己熟悉的东西更好
14 楼 billgui 2011-03-31  
做Windows GUI程序用RAD工具快速得多,比方,Delphi、VB等,开源的仿Delphi的有Lazarus什么的,可以跨平台。
13 楼 mathgl 2011-03-26  
不知道现在php能不能变成binary code。。。要是和以前差不多,那么发布估计会有些
麻烦。。。用php作这个玩玩可以,真要用在产品上要走的路还很长,可能长到都走不下去
12 楼 xiaoyangok 2011-03-14  
还不成熟,这是致命的缺点。。。。
11 楼 zk1878 2011-03-10  
没想到php也能做桌面,不错
10 楼 ray_linn 2011-03-08  
就别浪费时间在这种边角料上了,要嘛就直接用GTK,要嘛就上WPF或者.NET.

边角料只是浪费有限的生命而已
9 楼 maplechenda 2011-03-08  
不够费劲的,.net点几下就出来的东西你得费多大劲,没啥实际意义!
8 楼 tonyseek 2011-03-03  
Unmi 写道
我觉得不错的,可能还是看你擅长 php 还是 python,或者 php 还是 python 是你的工作语言。

我觉得 PHP 似乎更适合做 Web 这类“无状态”通讯,因为请求结束可以回收所有资源。
PHP 虽然和 Python 一样使用引用计数器管理内存,但是之前一直没有特殊的 gc 方法处理引用计数器会引起泄漏的问题,例如引用自身的类。这方面 Python 明显比 PHP 强。而PHP没有跨请求解决方案和这也有很大关系。
这一点直到 5.3 分支才有所举措,不过我觉得是很难和 Python 比了吧。
这个应该只是其中的一个原因。
7 楼 Unmi 2011-03-03  
我觉得不错的,可能还是看你擅长 php 还是 python,或者 php 还是 python 是你的工作语言。
6 楼 xuby 2011-03-03  
用 pyqt 不好吗?
5 楼 jancy 2011-03-03  
非常感谢楼主的分享
但http://www.gnope.org/download.php无法访问
还望楼主不吝赐解。
4 楼 iminto 2011-03-03  
php搞这个就是蛋疼,没有任何优势
3 楼 xieye 2011-03-03  
mathgl 写道
和python比较有什么优点吗???


没有优点
2 楼 blue_halo 2011-03-02  
和楼上有同样的疑惑。。。。。
1 楼 mathgl 2011-02-22  
和python比较有什么优点吗???

相关推荐

    web 桌面 php mysql版本

    qWikiOfficeCN的出现,不仅展示了PHP和MySQL结合的强大潜力,也为开发者提供了一个学习和探索Web桌面技术的实例。 **Web桌面的核心技术** 1. **PHP(Hypertext Preprocessor)**: PHP是一种开源的服务器端脚本语言...

    Gnope php窗口程序开发工具

    Gnope是一款专为PHP开发者设计的窗口应用程序开发工具,它基于PHP GTK库,允许开发者利用PHP语言创建原生的图形用户界面(GUI)应用程序。PHP GTK是PHP的一个扩展,它为PHP提供了与GTK+库的接口,GTK+是一个用于构建...

    PHP实例开发源码-MyWebSQL php数据库管理.zip

    【PHP实例开发源码-MyWebSQL php数据库管理.zip】是一个包含PHP源代码的压缩包,主要用于实现基于Web的MySQL数据库管理系统。...这对于想要从事PHP开发或构建类似Web应用的人来说,是一个宝贵的资源。

    PHP实例开发源码—eyeOS 多国语言.zip

    综上所述,这个压缩包提供了eyeOS的多国语言版本源代码,对于学习PHP开发、了解Web桌面环境和开源项目管理的开发者来说,是一个宝贵的资源。同时,它也展示了如何通过PHP实现复杂的Web应用和国际化功能。

    C#开发实战1200例(第Ⅰ卷) 第一部分.pdf

    Windows窗体编程是本书的另一个重点内容,作者详细介绍了如何使用C#进行桌面应用程序的开发。这部分内容涵盖了窗口设计、控件布局、事件处理等,旨在帮助开发者快速掌握Windows应用程序的开发流程。 控件应用部分则...

    PHP经典实例

    JavaSE和JavaEE是Java平台的两个主要版本,分别用于桌面应用程序和企业级服务端应用程序的开发。通过视频教程、官方文档和实践项目,可以深入了解Java的核心概念、API使用以及最佳实践。 #### .Net技术 .Net框架是...

    Javaweb开发 JavaScript php SQLServer2005 VisualBasic 编程技术文档1

    总的来说,这些技术的组合涵盖了Web开发的多个层面,从前端交互到后端逻辑,再到数据库管理和桌面应用开发。无论是初学者还是经验丰富的开发者,都可以从这些文档中学习到宝贵的知识,提升自己的技能水平。

    php mysql linux apache 讲义 讲解

    3. 编写桌面应用程序:虽然不如前两者常见,但PHP也能用来开发桌面应用程序,尤其是与Web接口相关的应用。 【PHP的历史】 PHP的起源可以追溯到1995年,由Rasmus Lerdorf创建的PHP/FI项目。随着时间的发展,PHP经历...

    PHP编程一百例与案例图示

    总的来说,这个压缩包提供了一个全面的PHP学习资源,包括了实践案例、扩展应用、学习指南以及运行环境,对于希望提升PHP技能或者准备进入PHP开发领域的人来说,是一份非常实用的学习资料。通过这些实例和图示,学习...

    php gtk 手册

    《PHP GTK手册》是针对PHP开发图形用户界面(GUI)应用程序的重要参考资料,它详细阐述了如何利用PHP GTK库来创建丰富的桌面应用。PHP通常被用于Web开发,但通过GTK扩展,PHP可以跨越到桌面领域,提供与Python、Perl...

    python学习源码和开发应用技术

    - **python_win32api操作**:专门讲解如何利用Python调用Windows API,这对于开发Windows平台下的应用程序尤为重要。 - **Python界面程序开发应用技术**:介绍了如何使用Python开发图形用户界面(GUI),适合希望...

    php7 图形用户界面GUI 开发示例

    - 对于需要复杂GUI的桌面应用程序,可能需要考虑使用专门的编程语言和框架。 通过这些知识点的介绍,我们能够对PHP7使用php_ui扩展实现GUI开发有了一个基本的了解。需要注意的是,GUI开发通常不推荐使用PHP,而...

    阿里云ESC-windows service 2008 r2-apache-php-mysql操作指南.docx

    这个环境包括Apache Web服务器、PHP解释器以及MySQL数据库,是开发和部署PHP应用的常见组合。 首先,你需要访问阿里云的官方网站进行备案,确保你的网站符合法律法规要求。备案参考地址为http://beian.aliyun.com/...

    C#winform调用PHP_Webservices例子

    在IT行业中,C#是一种广泛使用的面向对象的编程语言,主要应用于Windows桌面应用程序开发,而PHP则是一种服务器端脚本语言,主要用于Web开发。当需要在C#的WinForm应用程序中与PHP Web服务进行交互时,可以利用Web...

    php-gtk

    **PHP-GTK** 是一个PHP扩展,允许开发者使用PHP语言创建图形用户界面(GUI)应用程序。这个扩展基于GTK+库,GTK+是一个广泛使用的开源GUI工具包,主要应用于Linux和其他Unix-like操作系统,但也可在Windows上运行。...

    c#程序例子vs2008

    5. **Windows Forms**:用于创建桌面应用程序的UI界面,包括控件的使用、事件处理等。 6. **WPF (Windows Presentation Foundation)**:更现代的用户界面框架,支持丰富的图形和媒体功能。 7. **ADO.NET**:用于...

    美国证交所XBRL实例文档查看软件

    在这款软件中,C#可能用于构建桌面应用程序的主体功能,如文件I/O、数据解析和用户交互,而PHP可能用于后台处理,如数据处理、服务器通信或与Web服务集成。 "secviewer_rr_src_2008-05-14"这个压缩包文件名可能代表...

    计算机毕业设计贴吧.docx

    - **Delphi类项目**:文档中未列出具体项目名称,但Delphi常用于开发桌面应用程序,特别是在Windows平台上。 - **Java类项目**:虽然文档中未详细列举,但Java是一种广泛应用于Web应用和企业级系统的语言。 - **JSP...

    Microsoft® ODBC Driver 11 for SQL Server® - Windows

    ODBC(Open Database Connectivity)驱动程序是用于在各种操作系统上连接到数据库的一种标准接口,而Microsoft ODBC Driver 11 for SQL Server则是微软为Windows平台提供的一个特定版本,旨在允许应用程序通过ODBC与...

Global site tag (gtag.js) - Google Analytics