PHP网页编程之用PHP开辟GUI
学会了PHP,那么学其他的语言,肯定速成,反过来也一样,如果你之前学过其他的语言,那么学PHP肯定快。 情况:W2k+php4.3.1+php/gtk0.5.2一个复杂的记事本(只可以翻开文件停止修正)
<?php
set_time_limit (0); // 设置运转工夫
if (!class_exists ("gtk")) // 判别是不是有GTK模块
if (strtoupper (substr ($_SERVER["OS"], 0, 3)) == "WIN")
dl ("php_gtk.dll");
else
dl ("php_gtk.so");
$window = &new GtkWindow (); // 建一个窗口
$window->set_uposition (100, 100); //窗口呈现地位
$window->set_usize ((gdk::screen_width()-200), (gdk::screen_height()-150));// 窗口巨细
$window->set_title ("WINDOWS"); // 设置窗口题目
$window->connect_object ('destroy', array ('gtk', 'main_quit')); // 注册窗口的事务
$vbox = &new GtkVBox ();
$hbox = &new GtkHBox ();
$window->add ($vbox);
$menuBar = &new GtkMenuBar (); // 创立菜单
$vbox->pack_start ($menuBar, false, false, 0);
$file = &new GtkMenuItem ("File");
$menuBar->append ($file);
$fileMenu = &new GtkMenu ();
$open = &new GtkMenuItem ("Open");
$save = &new GtkMenuItem ("Save");
$line = &new GtkMenuItem ();
$line->set_sensitive (true);
$exit = &new GtkMenuItem ("Exit");
$fileMenu->append ($open);
$open->connect_object ('activate', 'showFileSelection');
$fileMenu->append ($save);
$save->connect_object ('activate', 'saveFile');
$fileMenu->append ($line);
$fileMenu->append ($exit);
$exit->connect_object ('activate', array ('gtk', 'main_quit'));
$file->set_submenu ($fileMenu);
$scroll = &new GtkScrolledWindow ();
$scroll->set_border_width (8);
$scroll->set_policy (GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
$hbox->pack_start ($scroll, true, true, 0);
$vbox->pack_start ($hbox, true, true, 1);
$text = &new GtkText ();
$text->set_editable (true);
$text->set_word_wrap (true);
$scroll->add ($text);
function showFileSelection () // 文件选择函数
{
$file = &new GtkFileSelection ("File Selection");
$ok_button = $file->ok_button;
$ok_button->connect ('clicked', 'openFile', $file);
$ok_button->connect_object ('clicked', array ($file, 'destroy'));
$cancel_button = $file->cancel_button;
$cancel_button->connect_object ('clicked', array ($file, 'destroy'));
$file->show ();
}
$filePath = null;
function openFile ($button, $f) // 翻开文件的函数
{
GLOBAL $text, $save, $filePath;
$filePath = $f->get_filename ();
if (is_file ($filePath))
{
$fp = fopen ($filePath, 'r');
while (!feof ($fp))
$str .= fgets ($fp, 1024);
$text->insert (null, null, null, $str);
fclose ($fp);
return $filePath;
}
}
function saveFile () // 保留文件的函数
{
GLOBAL $filePath, $text;
if (is_file ($filePath))
{
$str = $text->get_chars (0, -1);
$fp = fopen ($filePath, 'w');
fwrite ($fp, $str);
fclose ($fp);
}
return;
}
$window->show_all (); // 显示窗体内的一切控件
gtk::main (); // 最主要的一句,不成少的
?>
附:php/gtk设置装备摆设
实战PHP/GTK(转载)
刁馋 宣布于 2002-2-19 15:25 PHP编程 ←前往版面
之前PHP被以为只能用来编写办事器真个CGI法式,假如说PHP可以开辟Windows下的GUI(图形用户界面)法式,你信任吗?比来,PHP的开辟小构成功开辟出了绑缚GTK+的PHP,那末就能够开辟Windows下的GUI法式了。
1、创立PHP/GTK运转情况:
其实GUI法式和通俗的PHPCGI法式没有甚么区分,不外是PHP/GTK法式由GTK的类来生成GUI界面罢了,他们一样是开放源代码,靠PHP来解析创立窗口。假如你已创立好了PHP的调试情况,那末装置PHP/GTK情况对照复杂:
1、下载php_gtk.dll(这个dll文件用于解析PHP源法式外面的GTK代码),下载后将其解压到PHP的扩大(extension)目次中;
2、下载其他PHP/GTK的dll文件(一共6个),将他们解紧缩到Windows的system32目次外面;
3、翻开php.ini,在扩大设置局部“Windows Extensions”最上面到场“extension=php_gtk.dll”的语句,建议先备份php.ini,防止修正掉败使得创立好的PHP运转情况作废;
如今就创立好了PHP/GTK的运转情况了。固然,你也能够不作第二步,而改成在每一个PHP/GTK法式源代码的第一行到场“dl('php_gtk.dll')”来静态加载GTK的撑持。
假如你还没有创立PHP运转情况,那末装置要加倍复杂:
1、下载全部PHP/GTK的绑缚撑持包,然后将他们解紧缩到c盘的PHP4目次上面;
2、将winnt目次上面的dll文件拷贝到Windows的system32目次中,将php.ini文件拷贝到Windows的目次中;
创立好了PHP/GTK的运转后,可以用号令行形式的PHP来运转一个PHP/GTK法式:在运转中输出“c:\php4\php -q gtkprogrampath”,个中“c:\php4\php”改成PHP.EXE的途径,“gtkprogrampath”就是PHP/GTK法式的途径。好比:“c:\php4\php -q c:\php4\samples\hello.php”将会运转PHP/GTK运转包中附带的例子“hello world”法式。
2、编译PHP/GTK法式:
假如你作出一个PHP/GTK的使用法式,还需求对方的电脑创立PHP的运转情况而且利用PHP号令行形式来解析才可以履行的话,那就过于庞杂了。那末怎样才可以编译一个PHP/GTK的法式呢?经由一番搜刮,笔者发明了PHPCompiler这个软件。
PHPCompiler由www.deskcode.com开辟(http://www.deskcode.com/phpcompiler),可以将PHP编译成为EXE可履行文件,内置了PHP的撑持,假如你要编译一个PHP/GTK法式,必需创立PHP/GTK的运转情况(参照后面的步调)。要编译一个PHP/GTK法式的步调以下:
1、翻开PHPCompiler(如图),在“Script to”选择但愿编译的PHP法式源代码,在“Destination”处选择编译胜利后的EXE文件的途径;
2、点击“Compile”按钮,会弹出一个对话框扣问利用的编译形式(假如是PHP/GTK法式就选择no,是纯真的PHPCGI法式就选择yes);
3、然后又会弹出一个对话框扣问是不是拷贝php4ts.dll文件到编译后的EXE文件的目次,选择yes。
经由下面的步调,一个PHP/GTK法式就胜利编译了,然而关于编译PHP/GTK法式还有几个需求注重的中央:
1、编译完成后的可履行文件假如需求履行,PC机下面必需具有GTK运转情况所需的几个dll文件(就是后面下载的那几个),假如需求作成使用法式,可以在装置的时分将几个dll文件拷贝到system32目次中(不外如许子法式也就不是“绿色软件”了^_^)。
2、PHPCompiler自己关于PHP的撑持十分好,然而有些人试过用一些需求扩大撑持的函数,好比“gzopen”等等,在编译之前还好好的,编译终了后就不克不及用了。其实编译完成后的可履行文件,相当于了只要默许的PHP撑持(连GTK撑持都没有了),所以假如在法式中使用了任何需求扩大撑持的函数,都必需静态的加载撑持函数的dll文件,好比“dl('php_gtk.dll')”,如许子编译完成后才不会失足。
3、运转一个编译后的可履行文件,城市先弹出一个DOS窗口,然后主动封闭,由于每一个GUI窗口都是经由过程GTK来“绘制”出来的,所以必需会有谁人窗口。
4、也许之前PHP还不克不及说是真实的OOP(面向对象法式)言语,然而到了PHP/GTK,任何一个窗口都由GTK对象来“绘制”,假如没有过硬的OOP功底,是很难写出GUI法式的。
3、PHP/GTK资本:
1、http://gtk.php.net:PHP/GTK的官方网站;固然说是官方网站,然而确粗陋的很,出了一个FAQ和邮件列表,几近找不就任何有效的器材了,
2、http://www.phpgtk.com:一个界面对照好的PHP/GTK网站,有最新的版本信息。
3、http://developer.gnome.org/doc/API/gtk/gtkobjects.html:PHP/GTK函数和类的大全/手册网站,外面有非常丰厚的PHP/GTK材料。
4、http://www.phpuk.org/gtk/:非官方版本的GTK手册网站,复杂易懂。
假如人人以为E文对照好看,也能够来zphp.com下载最新的PHP/GTK运转情况和撑持包。
在相册系统的开发上,因为采用的是团队分工合作方式,更让我明白了在一个团队之中,团队成员之间的交流沟通的重要性,如果没有很好的沟通交流,成员之间的任务没有分配好。 最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。 首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。 php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会) 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, 对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。 基础有没有对学习php没有太大区别,关键是兴趣。 其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎 我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能: 小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。 遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。 对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。 首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。 Ps:以上纯属原创,如有雷同,纯属巧合 首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。 建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。 先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
页:
[1]
2