您可以通过向窗口添加"拆分器",在 Dreamweaver 中设计您自己的框架集。
用Dreamweaver为网页设计框架集
您可以通过向窗口添加"拆分器",在 Dreamweaver 中设计您自己的框架集。
提示在创建框架集或使用框架前,通过选择"查看">"可视化助理">"框架边框",使框架边框在"文档"窗口的"设计"视图中可见。
若要创建框架集,请执行以下操作:
- 选择"修改">"框架集",然后从子菜单选择拆分项(例如"拆分左框架"或"拆分右框架")。
Dreamweaver 将窗口拆分成几个框架。如果打开一个现有的文档,它将出现在其中一个框架中。
要将一个框架拆分成几个更小的框架,请执行以下操作:
- 要拆分插入点所在的框架,从"修改">"框架集"子菜单选择拆分项。
- 要以垂直或水平方式拆分一个框架或一组框架,请将框架边框从"设计"视图的边缘拖入"设计"视图的中间。
- 要使用不在"设计"视图边缘的框架边框拆分一个框架,请在按住 Alt 键的同时拖动框架边框 (Windows) 或在按住 Option 键的同时拖动框架边框 (Macintosh)。
- 要将一个框架拆分成四个框架,请将框架边框从"设计"视图一角拖入框架的中间。
提示若要创建三个框架,请首先创建两个框架,然后拆分其中一个框架。不编辑框架集代码是很难合并两个相邻框架的,所以将四个框架转换成三个框架要比将两个框架转换成三个框架更难。
若要删除一个框架,请执行以下操作:
如果要删除的框架中的文档有未保存的内容,则 Dreamweaver 将提示您保存该文档。
注意您不能通过拖动边框完全删除一个框架集。要删除一个框架集,请关闭显示它的"文档"窗口。如果该框架集文件已保存,则删除该文件。
若要调整框架的大小,请执行以下操作之一:
- 若要设置框架的粗略大小,请在"文档"窗口的"设计"视图中拖动框架边框。
- 若要指定准确大小,并指定当浏览器窗口大小不允许框架以全大小显示时,浏览器分配给框架的行或列的大小,可使用"属性"检查器。
posted @
2008-05-16 15:42 caihaibo 阅读(209) |
评论 (0) |
编辑 收藏
Apache下的安装:
我们这次采用的是Apache的一个全新版本Apache2,以前在Apache下安装PHP记得还比较麻烦,现在在Apache2平台下,我们可以方便的以模块化的方式安装PHP,前提是PHP版本必须是4.0以上的。
当然,现在还在用PHP3的已经很少了。所以这次我们只介绍如何以模块化的方式在Apache下安装PHP,如果你想了解在Apache下如何以Cgi的方式加载php,可以参考本站的另一篇文章"PHP+Apache在Win9x下的安装和配置"(http://www.hooday.com/?n=ReadArticle&a=34)。好了,闲话少说,让我们一起来领略模块化安装PHP的风采吧。
1.运行你下载的Apache2安装文件,安装Apache,安装过程中会提示你输入主机名,管理员信箱等信箱,这些信息在你安装完以后是可以修改的,所以可以放心的输入。在选择安装路径时,笔者建议你把安装路径也选成C盘的根目录。在一步步的"Next"后,你会发现Apache很容易就安装好了。
现在再看你的任务栏的右侧,应该有一个类似于这个小图标的图标,这就是Apache2的服务管理器,也是Apache1.X版本所没有的。注意这个图片的状态,如果有一个绿色的小三角,说明你的服务器已经安装成功,如果是红色的,则说明你的Apache没有安装成功,你需要进一步去找一下失败的根源。
一般最常见的错误就是端口有冲突,Apache默认的端口是80,如果你的80端口被另一个程序(如IIS)占用了的话,就会出现无法启动的情况。出现这种情况,你可以按照下面的方法来修改:点击"开始->程序->Apache HTTP Server 2.0.40->Configure Apache Server->Edit the Apache httpd.conf Configuration File"会打开一个Apache的配置文件,你可以用文本编辑器来打开它。
然后在这个文件的第120行左右,你会发现类似于"Listen 80"的字样。现在只要把这个80改成你想要的端口即可,当然在你用浏览器浏览的时候也不要忘了加上端口哦。
到了这里,你的Apache应该已经亮起绿灯了吧,下面我们来测试一下它是否在工作。打开你的浏览器,在地址栏上输入"http://localhost/"(如果你的端口不是80,需要在后面加上":端口号"),不知道你是否看到了Apache的欢迎页,笔者在这一步并没有看到,不知道什么缘故,Apache2版本好像没有默认的引导页面。如果你也没有看到,可以试着在后面加上一个文件名"index.html.en",如果能出现下面类似的页面,则说明Apache已经工作正常了。
2.好了,Apache已经安装OK了,接下来就是看如何跟PHP结合起来了。
最开始的两步和上边介绍的IIS步骤是相同的,也是解压后复制到C盘根目录,然后改名,再把PHP.ini复制到系统文件夹,如果有必要的话,修改一下"extension_dir"和"doc_root"这两项的值。上边已经说得很清楚,不再多说。
接着便是最重要的一步了,也是模块化安装的核心步骤了,可要看仔细了。
打开Apache2的配置文件(http.conf),可以通过点击"开始->程序->Apache HTTP Server 2.0.40->Configure Apache Server->Edit the Apache httpd.conf Configuration File"打开.
或者打开你的Apache安装目录下的Conf目录,你会发现一个名为http.conf的文件,就是它了,你可以用任一个文本编辑器来打开它。在这个文件的第121行左右,你应该能找到"LoadModule"字样,然后后面是一串路径,这就是Apache默认要加载的模块了,同样,咱们也可以在其后加上一句,让他来加载PHP模块。
其实,就是这么简单,你只要加上这么一句"LoadModule php4_module C:/php/sapi/php4apache2.dll",这里要解释一下"php4_module"是模块的名称,后面跟的路径则随你的PHP安装目录而变,这三个字串之间是用空格符分隔的。
接下来,还有一步工作,也是很多安装失败的朋友所忽略的,刚开始笔者也是无论如何加入上边的那一句后Apache就启动不起来了。后来经过几次试验,才发现,你的PHP安装目录下的"php4ts.dll"必须要复制到windows系统的system32目录下,否则,就不可能启动起来。
现在再试一下,是不是一切都正常了。好了,再来回顾一下我们在Apache下安装的过程。
(1)添加"LoadModule php4_module C:/php/sapi/php4apache2.dll".
(2)复制"php4ts.dll"到system32目录.
是的,就是这么简单,PHP已经运行在你的机器上了。你可以通过双击任务栏的Apache服务器图标来看到这一点。
3.再来测试一下吧。
把下面的代码保存成info.php文件放在你的Apache安装目录下的htdocs目录下。
然后在浏览器中敲入http://localhost/info.php(如果你的端口不是80,请在localhost/后加上":端口号"),是不是看到了类似下面的屏幕所显示的。如果是,恭喜,你已经成功的以模块化方式安装了PHP
以上在Apache部分所讲述的东西对不太熟悉Apache配置的朋友可能有一点不太明白,不过只要你按我上面所说的一步步的来,应该都不会出现什么大的毛病。如果万一不知道自己改的哪一个部分使Apache启动不起来了,你可以切换到Apache安装目录下的Conf文件夹,将http.conf文件删除掉,再将Apache的默认配置文件httpd.default.conf改名成http.conf即可。如果你想进一步的了解Apache的配置。
posted @
2008-05-16 11:52 caihaibo 阅读(772) |
评论 (0) |
编辑 收藏
前期准备:
Windows XP SP2 (其实系统只要是 98 以上都可以遵循这样的方法我认为)
Apache 2本例中我选用了 2.2.2 for Win32 ……)
http://archive.apache.org/dist/httpd/
PHP 5 (虽然版本数有点不吉利…… 但我还是毅然选择了 5.1.4 for Win32 Zip 版……)
http://www.php.net/downloads.php
MySQL 5 (5.1 尚不稳定…… 我们姑且还是选择 MySQL 5.0.22 for Win32 Zip 版……)
http://www.mysql.com/
本方案并不涉及系统文件夹…… 所以我们大可选择其它分区的某个文件夹来方便日后的伺服器维护…… 本为以 X:\Server 为例…… 注意:文件夹名称最好不要包含空格或其它非英文字符…… 否则某些情况下容易造成伺服器崩溃……
========================================
安装 Apache:
运行 apache_2.2.2-win32-x86-no_ssl.msi …… 一路 Next 下来…… 到选择安装方式的时候,选择 “Custom” 自定义方式…… 然后 Next 选择安装路径…… 定位到 X:\Server\Apache (当然,你选择其它路径也可以,甚至选择 Complete 安装都没问题…… 我只是习惯讲所有服伺服器相关软体集中到一起而已)
本来不准备写 IIS 与 Apache 的共存配置…… 想一想还是带一笔吧…… 提示填写 Server Information 时…… 最下方会让你选择端口…… 如果你安装了 IIS 伺服器…… 这里就选择第二项 “only for the current user, on Port 8080, when started manually.”…… 也就是说 Apache 将占用 8080 端口…… 如果你没安装 IIS …… 无视之……
继续 Next …… 弹出几个 CMD 窗口安装 Windows 服务以后…… 安装就完成了…… 右下角将出现 Apache 粉红色的羽毛 Icon,不出意外图标上应该显示绿灯(表示 HTTP 伺服已经正常启动)…… 你可以访问 http://www.quchao.com/ 来试试,如果屏幕出现 “It Works” 就表示安装成功…… (我记得以前的版本不是这样的,而是一个挺花哨的页面…… 所以只要不出现找不到页面的提示…… Apache 伺服就安装成功了)当然了…… 如果亮起红灯…… 配置肯定错误…… 回头查查吧……
Apache 伺服器就安装完毕了……
=======================================
安装 PHP :
解压 PHP-5.1.4-Win32.zip …… 并放置到 X:\Server\PHP 之下……
接下来为 PHP 的安装目录添加环境变量…… 在我的电脑图标上点击滑鼠右键…… 查看‘属性’…… 然后切换到‘高级’选项卡…… 点击‘环境变量’按钮(快捷键:Alt+N)…… 在弹出的‘系统变量’域中找到‘Path’变量…… 双击编辑并在变量值的最后添加 ‘;X:\Server\PHP’ (注意有个分号,用来分隔之前的值)……
重启电脑…… 为啥? 让环境变量生效呗……
至此 PHP 就安装完毕了…… 当然,现在还未与 Apache 关联…… 而且未作任何设置…… 不要急…… 后面我会写……
=======================================
配置 Apache:
尤为重要的一步:如果你跟我一样选择了当前最新的 PHP 稳定版本 5.1.4…… 官方下载来的源码包中的模块化支援 PHP5apache2.dll 是不适用于 Apache 2.2.2 的…… 据查需要重新编译 PHP …… 不过PHP5 研究室提供了解决方法:
下载这个压缩包(http://www.phpv.net/php5apache2.dll-php5.1.x.rar)…… 解压后将 PHP5apache2.dll 扔进 X:\Server\PHP 覆盖原文件…… 将 httpd.exe.manifest 扔进 X:\Server\Apache\Bin 文件夹…… 最后运行 vcredist_x86.exe (如果你安装有 .Net FrameWork 就无需安装此文件)……
当然,如果你选择比较旧的版本则可略过此步。
下面开始修改 Apache 配置文件: X:/Server/Apache/conf/httpd.conf
修改文档发布路径……
搜索:
DocumentRoot “X:/Server/Apache/htdocs”
将值修改成你想要的发布路径,比如:
DocumentRoot “X:/Server/WWW”
然后还有一处也需要修改…… 否则将无权访问……
搜索:
Directory “X:/Server/Apache/htdocs”
修改为:
Directory “X:/Server/WWW”
修改默认脚本:
搜索:
DirectoryIndex index.html
添加你想要的默认脚本名称,用空格分隔,注意前后有优先顺序,比如:
DirectoryIndex index.PHP index.html index.htm
针对 PHP 5 的配置:
在文档的最下方加入以下字符:
# 调用 PHP 5 模块
LoadModule PHP5_module “X:/Server/PHP/PHP5apache2.dll”
# 添加 Mime 类型…… 亦可以修改 mime.types 文件
AddType application/x-httpd-PHP .PHP
AddType application/x-httpd-PHP-source .phps
# 添加默认字符集…… utf8才是王道……
AddDefaultCharset UTF8
# 设置 PHP.ini 目录
PHPIniDir “X:/Server/PHP”
至此,Apache 已经可以支持 PHP 了…… 当然…… 本文仅介绍如何进行基本安装…… 将不涉及详细的配置以及优化…… 各位可以自行参阅手册进行配置……
'www.knowsky.com
=======================================
安装 MySQL:
解压 MySQL-noinstall-5.0.22-win32.zip …… 并放置到 X:\Server\MySQL 之下……
接下来安装 MySQL 服务…… 打开 cmd.exe …… 然后进入 X:\Server\MySQL\bin 目录……(虾米?你不会?那我还是写清楚吧)
开始->运行->cmd->回车……
然后进入 X:\Server\MySQL\bin 目录:
>cd /d X:\Server\MySQL\bin 回车
(如果你的文件夹带有空格,别忘了在路径外添加双引号)
然后运行 MySQL 服务安装脚本:
>mysqld-nt -install
显示 MySQL service installed successfully,表示安装成功……
接下来为 MySQL 的安装目录也添加一个环境变量…… 在我的电脑图标上点击滑鼠右键…… 查看‘属性’…… 然后切换到‘高级’选项卡…… 点击‘环境变量’按钮(快捷键:Alt+N)…… 在弹出的‘系统变量’域中找到‘Path’变量…… 双击编辑并在变量值的最后添加 ‘;X:\Server\MySQL’ (注意有个分号,用来分隔之前的值)……
重启电脑…… 为啥? 还是让环境变量生效……
(我靠…… 安装 PHP 的时候为什么不一起说…… 害我还得重启一遍……)
这个嘛…… 我忘了……
然后配置 MySQL …… 来到 X:\Server\MySQL …… 里头应该有若干个 ini 文件…… 我们根据自己的需要任取一个(大同小异…… 仅仅是默认配置不同…… 你也可以自行修改的)…… 由于我仅仅为了本地的开发调试,所以选择了 my-small.ini …… 将其复制一份…… 命名为 my.ini…… 用文本编辑器打开它:
搜索:
[mysqld]
在下方加入以下字符行:
#MySQL 安装目录
basedir=X:/Server/MySQL
#MySQL 默认数据目录
datadir=X:/Server/MySQL/data
# 默认字符集…… 设置为 UTF8 吧
default-character-set=utf8
# 默认储存引擎…… 还是回到 MyISAM 时代吧…… InnoDB 被甲骨文买了…… 虽然开源…… 但……
default-storage-engine=MyISAM
再在文档最下方加入:
[WinMySQLAdmin]
Server=X:/Server/MySQL/bin/mysqld-nt.exe
MySQL 配置完成…… 下面可以启动试试…… 打开 cmd.exe…… 输入:
net start MySQL
若显示‘MySQL服务已经启动成功’…… 则表示…… 则表示这句话说得没错…… 否则请回头检查……
服务器启动了…… 我们就可以登录试试了……
>cd /d X:\Server\MySQL\bin 回车
接着登陆
>MySQL -u root -p
由于 root 初始状态无密码,提示 Enter Password 时直接回车即可……
然后命令行进入 MySQL Shell 状态即表示‘入侵’成功……
如果你不想别人也用空密码入侵你,最好给 root 设置一个牛叉点儿的密码……
MySQL>set password for ‘root’@’localhost’ = old_password(’Password_for_root‘);
(这是 MySQL 5 的新命令,之前的版本请将 old_password 改成 password)
将其中 Passwor_for_root 更换为你自个儿的密码吧…… 别太简单……
提示 ‘Query Ok’ 表明修改成功。
不信?你可以 exit; 出去再登录试试……
至此…… MySQL 的安装工作完毕…… 详细的优化配置请参阅手册…… 至于 MySQL 与 PHP 的关联下面将提到……
=====================================
'www.knowsky.com
配置 PHP:
进入 X:\Server\PHP …… 将 PHP.ini-recommend 更名为 PHP.ini 并用文本编辑器打开……
修改错误报告级别…… 运行一些书写不规范的程序…… 你会发现满屏的‘错误’……
搜索:
error_reporting = E_ALL
修改为:
error_reporting = error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
由于是本地调试,我当然希望错误被输出供我调试……
搜索:
display_errors = Off
修改为:
display_errors = On
对于本地开发者,记录错误似乎没有必要……
搜索:
log_errors = On
修改为:
log_errors = Off
设置扩展库的路径是很必要的……
搜索:
extension_dir = “./”
修改为:
extension_dir = “X:/Server/PHP/ext”
PHP 5 默认是不开启对 MySQL 的支持的……
搜索:
;extension=PHP_MySQL.dll
去掉前面的分号:
extension=PHP_MySQL.dll
另外,vBulletin 早已启用了对 Mysqli 的支持…… 所以这里我们引入 MySQL 扩展库……
搜索:
extension=PHP_MySQL.dll
在下方加入:
extension=PHP_mysqli.dll
当然,为了更好的使用 vBulletin 的一些图象相关功能,我们需要启用 GD2 库……
搜索:
;extension=PHP_gd2.dll
去掉前面的分号:
extension=PHP_gd2.dll
我们还希望对一些较常用的库进行调用,比如 PHP_mbstring.dll 、 PHP_curl.dll 、 PHP_sockets.dll 、 PHP_xmlrpc.dll 等等…… 开启方法同上……
(这里仅启用了常用扩展…… 其它的扩展请自行根据需要定夺……)
虽然 vBulletin 使用了其内建 Session 机制,但 PHP 的 Session 机制在很多程序中是必备的……
搜索:
;session.save_path = “/tmp”
修改为一个存在的路径里……
或者到发布目录下建立一个 tmp 目录……
这里我们选用前一种方法…… 先建立这样一个目录 X:\Session ……
然后修改为:
session.save_path = “X:/Session”
到这里基本就设置完毕了…… PHP 也能正常支持 MySQL 了…… 更详细的设置大家还是去翻手册了……
====================================
结语:
最基本的 WAMP 环境就配置完毕了…… 接下来我还配置了 Zend Optimizer 和 Subversion……由于不是标配…… 这里就不做介绍了……
其实 Apache 服务器也可以不用安装…… 可惜我未找到 2.2.2 的 ZIP 版本…… 而用 SRC 文件进行编译又太繁琐…… 所以干脆执行了安装程序…… 等我下一次重装系统时…… Apache 就变成绿色的了…… 让我们一起期待…… (大概两年后?)
呃……………… 想到甚么再补充进来吧……
posted @
2008-05-16 09:59 caihaibo 阅读(215) |
评论 (0) |
编辑 收藏
假设:系统盘为 c:/
假设:把所有的东西安装在D盘下的php目录下
假设:安装好后目录状态会是这样子:
apache-------------------------> d:/php/apache
mysql---------------------------> d:/php/mysql
php-----------------------------> d:/php/php
网页文件------------------------> d:/php/www
以上这些是我的喜好,你可以改成你喜欢的
第一步 安装mysql4.1.10a( 本文章的配置适用于mysql4.1 和 mysql5.0版本 )
将下载的的mysql压缩包,直接解压到指定目录(d:phpmysql)就可以了
然后双击 D:phpmysqlbinwinmysqladmin.exe 这个文件,请输入winmysqladmin的初始用户、密码 (注:这不是mysql里的用户、密码)随便填不必在意.确定之后你的右下角任务的启动栏会出现一个红绿灯的图标(绿灯),红灯亮代表服务停止,绿灯亮代表服务正常
(如果不是绿灯,就左击这个图标->winnt->install the service 安装此服务
再左击这个图标->winnt->start the service 启动mysql服务)
修改mysql数据库的root密码
开始->运行,输入cmd 然后cd 到d:mysqlbin 执行以下命令
D:mysqlbin>mysql
进入mysql后接着执行:
(将root密码设置为easy)
下面一步是让PHP可以连接到mysql4.1以上版本的,一定不可以省略。具体可参考http://www.phpv.net/article.php/288
密码请根据你需要换成别的
如果你下载的是进制安装包,解压到任意目录后就直接双击setup.exe 文件,按照你安装软件的习惯装好它,记得到路径选择那一步时请写d:phpmysql 装好后打开d:phpmysqlbin文件夹,双击winmysqladmin.exe文件,会弹出一个窗口,要求设置你的mysql服务的管理员用户名密码.自己定吧
两种方法区别一看就明了.
第二步: 安装apache 并配置支持PHP
双击安装文件apache_2.0.53-win32-x86-no_ssl.msi
将apache安装在 D:phpapache 目录下
还会有输入框,提示输入域名呀管理员信箱,随便填就是了.
+-----------------------------------------------------
| 注: 安装完后会自动安装并启动apache的服务,如在此处出现问题:
|“(OS 10048)通常每个套接字地址 (协议/网络地址/端口) 只允许使用一次:
| make_sock: could not bind to address 0.0.0.0:80...” 一般是IIS占用了80端口引起的
| 解决方法: 打开 控制面板->服务 找到 IIS admin 的服务 关闭并禁用
| 然后用CMD进入命令行模式 进入你安装apache的目录 /apache2/bin
| 输入
| apache -k install
| apache -k start
| 如果成功的话,再接着做下面的!
+--------------------------------------------------------------
将php-5.0.3-Win32.zip 里内容解压到 D:phpphp 里
找到 php目录里的 php.ini-dist (似乎这是一个习惯,其实我更喜欢用php.ini-recommended)重命名为 php.ini 并拷到 windows系统目录下(特殊情况:win2k系统目录为winnt)
如我的php.ini是拷到 c:windows目录
再将php目录里的 php5ts.dll,libmysql.dll 拷到 系统目录系统目录如我的是c:windows 里(也可以是c:windowssystem32)
最后到D:phpphpext下将php_gd2.dll php_mysql.dll这两个文件复制到system/system32如我的是c:windowssystem里
配置apache里的httpd.conf
打开 D:phpApacheconfhttpd.conf 这个文件
找到 AddDefaultCharset ISO-8859-1 将其改为
AddDefaultCharset GB2312 (让默认语言编码为简体中文)
找到 DocumentRoot "D:/php/Apache2/htdocs" 将其改为你的WEB目录,如我的为
DocumentRoot "D:/php/www"
找到 DirectoryIndex index.html index.html.var 在后面加入 index.htm index.php (默认index.php为首页文件)
--------------模块化安装PHP----------------------------------------
找到 #LoadModule ssl_module modules/mod_ssl.so 这行,在此行后加入一行
LoadModule php5_module d:/php/php/php5apache2.dll
其中d:/php/php/php5apache2.dll 为你php目录中php5apache2.dll所在的位置
再找到 AddType application/x-gzip .gz .tgz 这行,在此行后加入一行
AddType application/x-httpd-php .php
(其实:上面两行红色的,你可以直接加在httpd.conf文件的最后面也可以的)
--------------------------------------------------------------------
此时PHP环境基本已经配置成功
在WEB根目录(如我的D:phpwww)里建一个名为test.php (提示:用记事本的朋友,请避免文件为test.php.txt) ,的文件内容如下
PHP代码:
<? echo phpinfo(); ?>
三、配置php.ini并测试mysql、GD2(php.ini为 c:windows下的 php.ini)
找到
;extension=php_mysql.dll
将';'去掉改为.
extension=php_mysql.dll
找到
;extension=php_gd2.dll 去掉前面的; 以便支持GD库.如
extension=php_gd2.dll
找到
;session.save_path = "/tmp"
将';'去掉.设置你保存session的目录,如
session.save_path = "C:WINDOWSTemp";
重启apache服务
在Web根目录下(如 D:phpwww)建立testdb.php文件内容如下:
PHP代码:
<?php
$link=mysql_connect('localhost','root','123456'); //这里的root和123456是MYSQL的用户和密码,请根据你自己的情况改好
if(!$link) echo "fail";
else echo "success";
mysql_close();
?>
用浏览器打开
http://localhost/testdb.php 如果输出success就OK了
四、phpmyadmin的安装配置
将phpMyAdmin-2.6.1.zip解压到WEB根目录(d:phpwww中去),重命名文件夹为phpmyadmin或其它
打开phpmyadmin 目录中的 config.inc.php
找到以下这些(以下我已改好):
$cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin'; //假设是有域名的服务器,可改成http://域名/phpmyadmin
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'easy; //分别填上你mysql的用户和密码即可
$cfg['Servers'][$i]['auth_type'] = 'http'; // 这里也可以改为cookie
改好了保存,在浏览器打开
http://localhost/phpmyadmin 输入你的用户名和密码,便可以管理mysql了
差不多了,如果你想让你的PHP代码执行得更快,就再装个Zend Optimizer.
方法是:下载后双击,选择路径安装.问PHP.INI路径就填 c:/windows
装好重启apache服务.再看
http://localhost/test.php 时应该看到会多一些东西
with Zend Extension Manager v1.0.3, Copyright (c) 2003-2004, by Zend Technologies
with Zend Optimizer v2.5.7, Copyright (c) 1998-2004, by Zend Technologies
posted @
2008-05-16 09:45 caihaibo 阅读(180) |
评论 (0) |
编辑 收藏
假设:系统盘为 c:/
假设:把所有的东西安装在D盘下的php目录下
假设:安装好后目录状态会是这样子:
apache-------------------------> d:/php/apache
mysql---------------------------> d:/php/mysql
php-----------------------------> d:/php/php
网页文件------------------------> d:/php/www
以上这些是我的喜好,你可以改成你喜欢的
第一步 安装mysql4.1.10a( 本文章的配置适用于mysql4.1 和 mysql5.0版本 )
将下载的的mysql压缩包,直接解压到指定目录(d:phpmysql)就可以了
然后双击 D:phpmysqlbinwinmysqladmin.exe 这个文件,请输入winmysqladmin的初始用户、密码 (注:这不是mysql里的用户、密码)随便填不必在意.确定之后你的右下角任务的启动栏会出现一个红绿灯的图标(绿灯),红灯亮代表服务停止,绿灯亮代表服务正常
(如果不是绿灯,就左击这个图标->winnt->install the service 安装此服务
再左击这个图标->winnt->start the service 启动mysql服务)
修改mysql数据库的root密码
开始->运行,输入cmd 然后cd 到d:mysqlbin 执行以下命令
D:mysqlbin>mysql
进入mysql后接着执行:
(将root密码设置为easy)
下面一步是让PHP可以连接到mysql4.1以上版本的,一定不可以省略。具体可参考http://www.phpv.net/article.php/288
密码请根据你需要换成别的
如果你下载的是进制安装包,解压到任意目录后就直接双击setup.exe 文件,按照你安装软件的习惯装好它,记得到路径选择那一步时请写d:phpmysql 装好后打开d:phpmysqlbin文件夹,双击winmysqladmin.exe文件,会弹出一个窗口,要求设置你的mysql服务的管理员用户名密码.自己定吧
两种方法区别一看就明了.
第二步: 安装apache 并配置支持PHP
双击安装文件apache_2.0.53-win32-x86-no_ssl.msi
将apache安装在 D:phpapache 目录下
还会有输入框,提示输入域名呀管理员信箱,随便填就是了.
+-----------------------------------------------------
| 注: 安装完后会自动安装并启动apache的服务,如在此处出现问题:
|“(OS 10048)通常每个套接字地址 (协议/网络地址/端口) 只允许使用一次:
| make_sock: could not bind to address 0.0.0.0:80...” 一般是IIS占用了80端口引起的
| 解决方法: 打开 控制面板->服务 找到 IIS admin 的服务 关闭并禁用
| 然后用CMD进入命令行模式 进入你安装apache的目录 /apache2/bin
| 输入
| apache -k install
| apache -k start
| 如果成功的话,再接着做下面的!
+--------------------------------------------------------------
将php-5.0.3-Win32.zip 里内容解压到 D:phpphp 里
找到 php目录里的 php.ini-dist (似乎这是一个习惯,其实我更喜欢用php.ini-recommended)重命名为 php.ini 并拷到 windows系统目录下(特殊情况:win2k系统目录为winnt)
如我的php.ini是拷到 c:windows目录
再将php目录里的 php5ts.dll,libmysql.dll 拷到 系统目录系统目录如我的是c:windows 里(也可以是c:windowssystem32)
最后到D:phpphpext下将php_gd2.dll php_mysql.dll这两个文件复制到system/system32如我的是c:windowssystem里
配置apache里的httpd.conf
打开 D:phpApacheconfhttpd.conf 这个文件
找到 AddDefaultCharset ISO-8859-1 将其改为
AddDefaultCharset GB2312 (让默认语言编码为简体中文)
找到 DocumentRoot "D:/php/Apache2/htdocs" 将其改为你的WEB目录,如我的为
DocumentRoot "D:/php/www"
找到 DirectoryIndex index.html index.html.var 在后面加入 index.htm index.php (默认index.php为首页文件)
--------------模块化安装PHP----------------------------------------
找到 #LoadModule ssl_module modules/mod_ssl.so 这行,在此行后加入一行
LoadModule php5_module d:/php/php/php5apache2.dll
其中d:/php/php/php5apache2.dll 为你php目录中php5apache2.dll所在的位置
再找到 AddType application/x-gzip .gz .tgz 这行,在此行后加入一行
AddType application/x-httpd-php .php
(其实:上面两行红色的,你可以直接加在httpd.conf文件的最后面也可以的)
--------------------------------------------------------------------
此时PHP环境基本已经配置成功
在WEB根目录(如我的D:phpwww)里建一个名为test.php (提示:用记事本的朋友,请避免文件为test.php.txt) ,的文件内容如下
PHP代码:
<? echo phpinfo(); ?>
三、配置php.ini并测试mysql、GD2(php.ini为 c:windows下的 php.ini)
找到
;extension=php_mysql.dll
将';'去掉改为.
extension=php_mysql.dll
找到
;extension=php_gd2.dll 去掉前面的; 以便支持GD库.如
extension=php_gd2.dll
找到
;session.save_path = "/tmp"
将';'去掉.设置你保存session的目录,如
session.save_path = "C:WINDOWSTemp";
重启apache服务
在Web根目录下(如 D:phpwww)建立testdb.php文件内容如下:
PHP代码:
<?php
$link=mysql_connect('localhost','root','123456'); //这里的root和123456是MYSQL的用户和密码,请根据你自己的情况改好
if(!$link) echo "fail";
else echo "success";
mysql_close();
?>
用浏览器打开
http://localhost/testdb.php 如果输出success就OK了
四、phpmyadmin的安装配置
将phpMyAdmin-2.6.1.zip解压到WEB根目录(d:phpwww中去),重命名文件夹为phpmyadmin或其它
打开phpmyadmin 目录中的 config.inc.php
找到以下这些(以下我已改好):
$cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin'; //假设是有域名的服务器,可改成http://域名/phpmyadmin
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'easy; //分别填上你mysql的用户和密码即可
$cfg['Servers'][$i]['auth_type'] = 'http'; // 这里也可以改为cookie
改好了保存,在浏览器打开
http://localhost/phpmyadmin 输入你的用户名和密码,便可以管理mysql了
差不多了,如果你想让你的PHP代码执行得更快,就再装个Zend Optimizer.
方法是:下载后双击,选择路径安装.问PHP.INI路径就填 c:/windows
装好重启apache服务.再看
http://localhost/test.php 时应该看到会多一些东西
with Zend Extension Manager v1.0.3, Copyright (c) 2003-2004, by Zend Technologies
with Zend Optimizer v2.5.7, Copyright (c) 1998-2004, by Zend Technologies
posted @
2008-05-16 09:45 caihaibo 阅读(122) |
评论 (0) |
编辑 收藏
/s$/ 匹配以字母"s"结尾的字符串
正则表达式语法通过反斜杠(\)开头的转义序列支持某些非字母的字符如"\n"为直接量换行符
常用的
\o NUL字符
\t 制表符
\n 换行符
\v 垂直制表符
\f 换页符
\r 回车
\xnn 十六进制指定的拉丁字符
\uxxxx
\cX
/[abc]/ 和字母"a","b","c"中的任何一个字母都匹配.
/[^abc]/和除字母"a","b","c"之外的所有字符匹配.
/[a-z]/ 匹配英文小写字母
/[a-zA-Z0-9]/ 匹配拉丁字母集中任何字母数字以及字符.
\w 任何ascii单字字符,等价于[a-zA-Z0-9_]
\W 任何ascii非单字字符,等价于[^a-zA-Z0-9_]
\s 匹配的是空格符(非Unicode空白符)
\S 任何非Unicode空白符,注意\w和\S不同
\d 任何ascii数字,等价于[0-9]
\D 除了ascii数字之外的任何字符,等价于[^0-9]
/[\b]/ 退格符
方框号内也可以用这些字符转义如
/[\s\d] 等同于任意的空白符或数字
/a-/ 匹配一个或多个字符 与aaa都配
/a+?/ 匹配一个或多个必要的字母a.该模式只匹配第一个字母a
/ab| cd| ef/ 匹配的是字符串"ab",或者是字符串"cd",又或者是字符串
"ef"
/\d{3}|[a-z]{4}/ 匹配的是三位数字或四个小写字母
注意,选项是从左到右考虑,直到发现了匹配项,如果左边的选择项匹配
,就忽略了右边的匹配项.即使它产生更好的匹配.所以 /a|ab/ 就用到
"ab"上时,它只匹配第一个字符
/java(script)?/ 匹配的是字符串"java",后面既可以有"script",也可以没有
/(ab|cd)+|ef)/ 既可以是字符串"ef",也可以是字符串"ab"或者"cd"的
一次或多次重复
| 选择.匹配的是该符号左边的子表达式或右边的子表达式
(...) 组合.将几个项目组合为一个单元.
例:匹配"JavaScript"可以使用/^JavaScript$/
如想检索"Java" 可以使用 /\sJava\s/ 要求在单字Java之前和之后都有空格
但这样有两个问题:1.如果Java位于开头或结尾时,不匹配
2.当找到与之匹配的字符串时,它返回的匹配字符串的前端和后端都有空格
因则我们可以:/\bJava\b/
元字符
+ 元字符规定其前导字符必须在目标.对象中连续出现一次或多次
* 元字符规定其前导字符必须在目标对象中出现零次或连续多次
? 规定其前导对象必须在目标对象中连续出现零次或一次
/fo+/
因为上述正则表达式中包含“+”元字符,表示可以与目标对象中的 “fool”, “fo”, 或者
“football”等在字母f 后面连续出现一个或多个字母o 的字符串相匹配。
/eg*/
因为上述正则表达式中包含“*”元字符,表示可以与目标对象中的 “easy”, “ego”, 或者 “egg”
等在字母e 后面连续出现零个或多个字母g 的字符串相匹配
/Wil?/
因为上述正则表达式中包含“?”元字符,表示可以与目标对象中的 “Win”, 或者 “Wilson”,等在字
母i 后面连续出现零个或一个字母l 的字符串相匹配。
/jim{2,6}/
上述正则表达式规定字符m 可以在匹配对象中连续出现2-6 次,因此,上述正则表达式可以同jimmy 或
jimmmmmy 等字符串相匹配。
“^”定位符规定匹配模式必须出现在目标字符串的开头
“$”定位符规定匹配模式必须出现在目标对象的结尾
,\b 定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一
“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾
/^hell/
因为上述正则表达式中包含“^”定位符,所以可以与目标对象中以 “hell”, “hello”或
“hellhound”开头的字符串相匹配
/ar$/
因为上述正则表达式中包含“$”定位符,所以可以与目标对象中以 “car”, “bar”或 “ar” 结尾的
字符串相匹配。
/\bbom/
因为上述正则表达式模式以“\b”定位符开头,所以可以与目标对象中以 “bomb”, 或 “bom”开头的
字符串相匹配。
/man\b/
因为上述正则表达式模式以“\b”定位符结尾,所以可以与目标对象中以 “human”, “woman”或
“man”结尾的字符串相匹配。
我们可以使用正则表达式的test 或者search 方法来发现字符中是否符合某个模式。比如:
var ResultFlag = forms[0].UserName.value.search(/[a-z]|[A-Z]/);
if (ResultFlag==-1){alert(表单中的UserName 没有包含任何字符!)};
工作中的新用法::
如:密码中不要包含三位重复的字符
if(document.forms[0].cipher1.value.search(/(\S)\1{2}/) != -1)
{
alert("密码中请不要包含三位重复的字符");
bool=false;
return bool;
}
后面跟的\1是向后引用,就是引用前面括号内的内容
这个非常实用哦
posted @
2008-05-15 15:38 caihaibo 阅读(469) |
评论 (0) |
编辑 收藏
extjs中文解决方案/Eclipse下的js和ext开发
中文化问题,在 ext-all.js 后面,挂上 ext-lang-zh_CN.js :
1. <script type="text/javascript" src="<%=contextPath%>/public/js/ext-base.js"></script>
2. <script type="text/javascript" src="<%=contextPath%>/public/js/ext-all.js"></script>
3. <script type="text/javascript" src="<%=contextPath%>/public/js/ext-lang-zh_CN.js"></script>
注:ext-lang-zh_CN.js文件存放在 ext-2.0-rc1\source\locale 目录下
对中文字体,要对默认的 css 加上修正,例如:
<LINK rel="stylesheet" href="public/css/ext-all.css">
<LINK rel="stylesheet" href="public/css/ext-all-patch.css">
来自:javaEye论坛 http://www.javaeye.com/topic/134418
==================
步骤一:建立eclipse环境(基于项目组目前的环境设置)
步骤二:下载并安装jsEclipse http://www.adobe.com/cfusion/entitlement/index.cfm?e=labs_jseclipse
步骤三:配置文件关联方式: window-preference-general-editors:file association,找到*.js,将jseclipse设为default。
步骤四:打开任意一个js文件(为了出现JSEclipse导航菜单),在JSEclipse菜单下,选择Add Library,导航到ext-all-debug.js(直接输入文件名,默认只能导入XML文件),引入该库,然后在菜单下:refresh code completion library即可,这将会在D:\workspace\.metadata\.plugins\ com.interaktonline.jseclipse\library\YourProject下生成插件xml文档。
如此设置后,在js文件中将会得到智能感知和自动完成的功能了,包括js固有的对象,还有第四步引入的ext库。
来自:JavaEye论坛 http://www.javaeye.com/topic/133392
JSEclipse的安装及中文乱码问题和解决办法:
看到一篇写的很详细的JSEclipse的安装与配置教程,还有关于中文乱码问题。
被 Adobe 收购的 Eclipse 下的 JavaScript 编辑工具 最先进的JavaScript编辑器之一。JSEclipse是针对Eclipse开发平台的免费插件。它支持的功能有:代码完成、大纲浏览、错误报告、代码换行,等等。
先到这里:http://labs.adobe.com/technologies/jseclipse/下载最新版本的JSEclipse
一、jseclipse的安装
1.打开Eclipse工作区(Workbench)
2.利用更新管理器安装JSEclipse,在主目录中找到:Help > Software Updates ->Find and Install
3.在弹出的界面中先择Search for new features to install.
4.在下一步中选择搜索地址,如果这是第一次从Adobe System安装揷件,则需要新建远程站点(New remote Site),如果不是,则请直接跳至第七步.
5.要定义新的搜索地址,单击New remote Site按钮.
6.弹出如下对话框,其中的两处内容都必须填写:
Name:用于显示的标签,填入"JSEclipse from Adobe Labs"或者其他相似的名称.
URL:包含插件地址,这里填入"http://www.interaktonline.com/".
填写完毕后单击确定应用更改,新的选项将出现在Sites to include in search一栏中.
7.选中新填加的项目:JSEclipse from Adobe Labs.
8.单击Finish开始搜索新软件,Eclipse会出现如下窗口显示搜索过程.
9.搜索完成后,过程站点上的可用插件将以列表的形式给出.
10.选中要安装的插件,单击下一步.
11.在这一步会出现要安装插件的license agreement,肯定是必须接受的.选中I accept the terms in the license agreement按钮,单击下一步.
12.下面选择安装路径,一般默认的路径是很合理的,我们直接单击完成开始安装.
13.如果你的系统要求在安装插件时必须检查数字签名(digital signature),这时还会出现一个警告界面,提示你要安装的插件是没有经过数字签名的,这里直接单击Install或Install All开始安装.
14.安装完成后系统弹出界面询问是不是要重启Eclipse,虽然不重启新安装的许多功能也能生效,但这里还是建议你重启IDE.选择Yes.
15.最后一句也是很重要的话:JSEclipse has been installed.
二、jseclipse的中文问题
解决方案:
打开eclipse的windows-->preference-->genral-->content type,选择text-->javascript ,将对应的ISO8859-1 改为GBK,按update。
三、注意事项
JSEclipse需要Java 1.5或更高版本。
怎么样,o(∩_∩)o...哈哈
[JSEclipse的安装及中文乱码问题和解决办法本文版权归 呆森博客www.Dai3.cn 所有]
|
|
|
posted @
2008-05-15 12:22 caihaibo 阅读(1701) |
评论 (0) |
编辑 收藏
摘要: 无论你是Ext库的新手,抑或是想了解Ext的人,本篇文章的内容都适合你。本文将简单地介绍Ext的几个基本概念,和如何快速地做出一个动态的页面并运行起来,假设读者已具备了一些JavaScript经验和初级了解HTML Dom。
目錄
• 1 下载Ext
• 2 开始!
• 3 Element:Ext的核心
• 4 获取多个DOM的节...
阅读全文
posted @
2008-05-14 14:43 caihaibo 阅读(1632) |
评论 (0) |
编辑 收藏
Ext.MasterTemplate是一个功能蛮不错的类,早在今年年头左右的时间就推出了,但使用的人不是很多。
Ext.MasterTemplate的用处在于,能够创建单个模板,在这个模板下带有多个子模板。
这些子模板可将一组对象阵列(arrays of objects )轻松地“填入”到子模板中,自然地也支持循环。定义子模板的地方
你须创建一个'tpl'的标签在模板装饰中(makeup)。
这个例子:
- var iconArray = [{img: 'images/icons/cog_orange.png', desc: 'Active Order'},
- {img: 'images/icons/stop.png', desc: 'Cancelled Order'},
- {img: 'images/icons/tick.png', desc: 'Completed Order'}];
- var iconTpl = new <SPAN class=hilite1><SPAN class=hilite1>Ext</SPAN></SPAN>.MasterTemplate('<fieldset><legend>{title}</legend><tpl><img src="{img}"
-
- width="16" height="16" /> {desc}<br/></tpl></fieldset>');
- iconTpl.compile();
- iconTpl.fill(iconArray);
- iconTpl.append(document.body, {title: 'SAMPLE'});
var iconArray = [{img: 'images/icons/cog_orange.png', desc: 'Active Order'},
{img: 'images/icons/stop.png', desc: 'Cancelled Order'},
{img: 'images/icons/tick.png', desc: 'Completed Order'}];
var iconTpl = new Ext.MasterTemplate('<fieldset><legend>{title}</legend><tpl><img src="{img}"
width="16" height="16" /> {desc}<br/></tpl></fieldset>');
iconTpl.compile();
iconTpl.fill(iconArray);
iconTpl.append(document.body, {title: 'SAMPLE'});
现在我们就可以轻松地用几行代码创建icon标签的容器了。fill()的第二个参数(布尔值)指的是是否允许对子模板复位,
像这样:
- iconTpl.fill(iconArray, true);
iconTpl.fill(iconArray, true);
如果你不复位子模板,它会一直 增加、追加新数组的值。注意该类所也支持模板变量,当然只适用于MasterTemplate。
本例中,title变量属于这种变量,不包含在tpl标签中。
MasterTemplates亦支持创建表格,配合tpl标签不断循环tr.
这是一个用户登陆表的实例:
- var userArray = [{username: 'aconran', userid: 1, password: '@#jkas(*}'},
- {username: 'jarred.nicholls', userid: 2, password: 'pIZh4cKm3'},
- {username: 'djliquidice', userid: 3, password: 'sajkfjhasir'}];
- var userTpl = new <SPAN class=hilite1><SPAN class=hilite1>Ext</SPAN></SPAN>.MasterTemplate('<table>',
- '<tr bgcolor="#c0c0c0">',
- '<td>UserID</td>',
- '<td>UserName</td>',
- '<td>Password</td>',
- '</tr>',
- '<tpl>',
- '<tr>',
- '<td>{userid}</td>',
- '<td>{username}</td>',
- '<td>{password}</td>',
- '</tr>',
- '</tpl>',
- '</table>');
- userTpl.compile();
- userTpl.fill(userArray);
- userTpl.add({username: 'jack.slocum', userid: 4, password: '#Cru$hin'});
- userTpl.append(document.body);
var userArray = [{username: 'aconran', userid: 1, password: '@#jkas(*}'},
{username: 'jarred.nicholls', userid: 2, password: 'pIZh4cKm3'},
{username: 'djliquidice', userid: 3, password: 'sajkfjhasir'}];
var userTpl = new Ext.MasterTemplate('<table>',
'<tr bgcolor="#c0c0c0">',
'<td>UserID</td>',
'<td>UserName</td>',
'<td>Password</td>',
'</tr>',
'<tpl>',
'<tr>',
'<td>{userid}</td>',
'<td>{username}</td>',
'<td>{password}</td>',
'</tr>',
'</tpl>',
'</table>');
userTpl.compile();
userTpl.fill(userArray);
userTpl.add({username: 'jack.slocum', userid: 4, password: '#Cru$hin'});
userTpl.append(document.body);
子模板可分配名字(name属性),以便在同一个MasterTemplates中处理多个子模板。可在add()/fill()中指定哪个子模
板要去填充。下列代码是从Jack那里来的:(http://extjs.com/forum/showthread.php?t=1618)
- var t = new <SPAN class=hilite1><SPAN class=hilite1>Ext</SPAN></SPAN>.MasterTemplate(
- '<div id="{id}">',
- '<div class="right"><tpl name="right"><span>{stuff}</span></tpl></div>',
- '<div class="left"><tpl name="left"><span>{otherStuff}</span></tpl></div>',
- '</div>'
- );
- t.add('right', {stuff: 'foo'});
- t.add('left', {otherStuff: 'bar'});
- t.fill('right', arrayOfStuff);
var t = new Ext.MasterTemplate(
'<div id="{id}">',
'<div class="right"><tpl name="right"><span>{stuff}</span></tpl></div>',
'<div class="left"><tpl name="left"><span>{otherStuff}</span></tpl></div>',
'</div>'
);
t.add('right', {stuff: 'foo'});
t.add('left', {otherStuff: 'bar'});
t.fill('right', arrayOfStuff);
Ext.MasterTemplate 构建器可从三个方面创建:
插入多个参数的装饰(makeup);
传入构建器的字符串数组;
单行字符串;
所有格式化功能同样可以应用在MasterTemplates中。您可参阅之前的教程"教程:学习利用模板(Templates)的格式化功能"
http://www.ajaxjs.com/yuicn/article.asp?id=20072919
***********下面的部分专业性过于强,,应用层面可能不多。小弟我就不译了**************
The last thing I'd like to touch on is how to utilize the Member formatting functions within Templates. By adding methods to the instance of your class or by subclassing as we will do here you can create your own custom formatting functions. We will add a column called Revoked to our user table and will be returning a 0 or 1 to represent whether or not this user has been revoked. To make this more user friendly we will create a formatting function called yesNoFormat similar to ColdFusions function which converts 'truthy' values to the word "Yes" and 'falsey' values to the word "No". We simply prepend "this." in front of our new formatting function and use the same syntax that is used for native Ext formatting functions.
- var UserTemplate = function() {
- var userTableHTML = ['<table>',
- '<tr bgcolor="#c0c0c0">',
- '<td>UserID</td>',
- '<td>UserName</td>',
- '<td>Password</td>',
- '<td>Revoked</td>',
- '</tr>',
- '<tpl>',
- '<tr>',
- '<td>{userid}</td>',
- '<td>{username}</td>',
- '<td>{password}</td>',
- '<td>{isrevoked:this.yesNoFormat}</td>',
- '</tr>',
- '</tpl>',
- '</table>'];
- UserTemplate.superclass.constructor.call(this, userTableHTML);
- this.compile();
- };
- <SPAN class=hilite1><SPAN class=hilite1>Ext</SPAN></SPAN>.<SPAN class=hilite1><SPAN class=hilite1>ext</SPAN></SPAN>end(UserTemplate, <SPAN class=hilite1><SPAN class=hilite1>Ext</SPAN></SPAN>.MasterTemplate, {
- yesNoFormat: function(value) {
- return value ? 'Yes' : 'No';
- }
- });
-
- <SPAN class=hilite1><SPAN class=hilite1>Ext</SPAN></SPAN>.onReady(function() {
- var userArray = [{username: 'aconran', userid: 1, password: '@#jkas(*}', isrevoked: 1},
- {username: 'jarred.nicholls', userid: 2, password: 'pIZh4cKm3', isrevoked: 0},
- {username: 'djliquidice', userid: 3, password: 'sajkfjhasir', isrevoked: 0}];
- var userTpl = new UserTemplate();
- userTpl.fill(userArray);
- userTpl.add({username: 'jack.slocum', userid: 4, password: '#Cru$hin', isrevoked: 0});
- userTpl.append(document.body);
- });
var UserTemplate = function() {
var userTableHTML = ['<table>',
'<tr bgcolor="#c0c0c0">',
'<td>UserID</td>',
'<td>UserName</td>',
'<td>Password</td>',
'<td>Revoked</td>',
'</tr>',
'<tpl>',
'<tr>',
'<td>{userid}</td>',
'<td>{username}</td>',
'<td>{password}</td>',
'<td>{isrevoked:this.yesNoFormat}</td>',
'</tr>',
'</tpl>',
'</table>'];
UserTemplate.superclass.constructor.call(this, userTableHTML);
this.compile();
};
Ext.extend(UserTemplate, Ext.MasterTemplate, {
yesNoFormat: function(value) {
return value ? 'Yes' : 'No';
}
});
Ext.onReady(function() {
var userArray = [{username: 'aconran', userid: 1, password: '@#jkas(*}', isrevoked: 1},
{username: 'jarred.nicholls', userid: 2, password: 'pIZh4cKm3', isrevoked: 0},
{username: 'djliquidice', userid: 3, password: 'sajkfjhasir', isrevoked: 0}];
var userTpl = new UserTemplate();
userTpl.fill(userArray);
userTpl.add({username: 'jack.slocum', userid: 4, password: '#Cru$hin', isrevoked: 0});
userTpl.append(document.body);
});
Note that this example uses the array format of calling the constructor and that we have seen all 3 ways to instantiate a Template. (single liner, multiple args and an array of strings).
posted @
2008-05-14 14:41 caihaibo 阅读(216) |
评论 (0) |
编辑 收藏
入门导向
Ext的新手用户可以通过下列不同的途径获取学习资源:API文档、维基百科全书、日益丰富的教程、论坛、IRC频道等等(参阅Learn ),关于这些各个方面在EXT官网上都有。但最重要的可用资源,可以说是Ext源代码本身。可以这样方便地学习源代码(Ext的项目毕竟是开源的),不仅能助你体验Ext,而且还能让你接触到大量的Javascript高级技巧和最佳实践,进一步提升自身的编码水平。
揭示源代码
Javascript是一门解释型的语言,意味着在运行之前代码是没有经过编译的。按照这种理论,在你网站上所发播的Ext代码是我们看的懂的(human-readible)。我这里说“理论上”,是因为实际情况中,很多源代码是经过某些自动化步骤的处理,生成很小几行的文件最终发布的,通过剔除空白符号和注释,或混淆等的方法,以减小文件大小。
仔细看看EXT标准源码ext-core.js,你会发现这是一段超长的源码。这是刚才提及的自动化步骤生成的结果--对浏览器来说不错!可是对于我们是难以阅读的。
ext-core.js
/*
* Ext JS Library 1.1
* Copyright(c) 2006-2007, Ext JS, LLC.
* licensing@extjs.com
*
* http://www.extjs.com/license
*/
Ext.DomHelper=function(){var _1=null;var _2=/^(?:br|frame...
Ext.Template=function(_1){if(_1 instanceof Array){_1...
...
接着看下去的是ext-core-debug.js (注意在文件名后面加上-debug的JS文件), 我会发现是全部已格式化好的源代码。这个文件是配合调时器所使用的,像Firebug的工具能够可以让你一步一步地、一行一行地调试代码。你也会发现文件的体积将近大了一倍之多,这便是没有压缩或混淆的缘故。
ext-core-debug.js
/*
* Ext JS Library 1.1
* Copyright(c) 2006-2007, Ext JS, LLC.
* licensing@extjs.com
*
* http://www.extjs.com/license
*/
Ext.DomHelper = function(){
var tempTableEl = null;
var emptyTags = /^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i;
var tableRe = /^table|tbody|tr|td$/i;
...
该调试版本可以在调试阶段方便地检查EXT库运行到哪一步,但是你还是会错过一个有价值的...代码注释!要完整地看到代码,就要阅读真正的原始代码!
发布Ext源码时的一些细节
你在download得到的压缩文档,包含在这些文件夹之中的,有一source的子目录。在这个文件夹里面,正如所料,是全部的EXT的源文件,遵从Lesser GNU (LGPL) 开源的协议。对于EXT开发者来说应该非常适合。
用你日常使用文本编辑器打开源代码的任意一个文件(推荐有高亮显示的编辑器,或是在这里full-featured IDE看看),便可以开始我们的探险!
我应该从哪里开始?
Ext代码库里面包含了许多各种各样的文件,甚至令人觉得有点望而生畏。好在,Ext是一个通过充分考虑后而设计的JavaScript库,--在底层的代码为各项应用提供稳健的基础如跨浏览器的各种DOM操控,使得在上层的类classes运行于一个较高级的抽象层面(class 一术语与我们已习惯的Java和C++语言稍微有所不同,但一些概念如继承则可是如此类推去理解的--有关面向对象的JavaScript的更多资料,请参见Introduction to object-oriented (OO) JavaScript)。
这意味着,当浏览源码的时候,采取“自顶向下(bottom-up)”还是“自下向顶(top-down)”的方式,都是无关紧要的。你所熟悉API里面的代码已经是属于最高的抽象层面的范畴,你可以根据你的兴趣,顺着这些你熟悉的API逐步深入。但是你若赞同我的看法,并打算深入了解其个中原理,最理想的地方是从底层代码开始。
适配器Adapters
浏览器读取第一个源文件,当中的一个任务就是创建Ext对象本身。 Ext.js
Ext = {};
Ext成型于YahooUI的Javascript库的扩展。在当时,Ext须依赖YUI的底层代码来处理跨浏览器的问题。现在ExtJS已经是独立、免依赖的库了(standalone ),你可将YUI替换为另外你所选择javascript库,如prototype、jQuery、或者是这些之中的最佳选择,-Ext自带的底层库。 负责将这些库(包括Ext自带的底层库)映射为Ext底层库的这部分代码,我们称之为适配器(Adapters)。这部分源码位于source/adapter的子目录。当项目引入Ext的时候便需要选择好你准备使用的适配器。
核心Core
source/core中的文件是构建于适配器API之上的“相对”最底层的源码。有些的源码甚至“底层”到直接为独立库的代码直接使用。这意味着应先了解和学习这整个库,再学习剩余的部分也不迟。要了解Ext的各种“Magic”和核心层面,就应该把重点放在source/core目录下的各个源代码。
posted @
2008-05-14 14:16 caihaibo 阅读(203) |
评论 (0) |
编辑 收藏