新手奥比岛的奇乐园在哪哪

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
引文来源&&
阅读(721)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_087067',
blogTitle:'VC中CUIntArray作为参数,怎么老是编译不通过? C/C++ / 新手乐园 - CSDN社区 community.csdn.net',
blogAbstract:'
VC中CUIntArray作为参数,怎么老是编译不通过?
定义一个函数: & & CString & CHotKeyView::Array2String(CUIntArray & * & array) & & { & & & & CString & strR & & & & //将所有项作组装成一个字符串返回 & & & & return & strR & & } & & & & 调用其的代码为: & & CUIntArray & arrI & & unsigned & int & & & for & ( & ;idx & & & 5000 & ; & ) & ',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:2,
publishTime:7,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}梦想世界新手乐园使者怎么找不到_百度知道
梦想世界新手乐园使者怎么找不到
我有更好的答案
已经从清风换到明月镇帮派学徒指导人旁边
现在不在清风村了,在明月镇,15级后才能转国
可能就出来了。。。。
为您推荐:
其他类似问题
梦想世界的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。PHPer7_文档资料库
封面 卷首语卷首语web2.0 网站发展和趋势作为开源软件产品, Discuz! 在代码质量,运行效率,负载能力,安全等级,功能可操 控性和权限严密性等方面都在广大用户中有良好的口碑.凭借 Discuz! 开发组长期积累的丰 富的 WEB 开发及数据库经验,和强于创新,追求完美的设计理念,使得 Discuz! 在很短时 间内以其鲜明的个性特色从国内外同类产品中脱颖而出.经过了效率最优化和负载能力最佳 化设计的 Discuz! ,已获得业内越来越多专家和权威企业的认可.卓越的访问速度和负载能 力 Discuz! 从创立之初即以提高产品效率为突破口,随着编译模板,语法生成内核,数据缓 存和自动更新机制等独创或独有技术的应用,和坚固的数据结构及最少化数据库查询设计, 使得 Discuz! 可以在极为繁忙的服务器环境下快速稳定的运行,切实节约企业成本,提升企 业形象.强大而完善的功能除了一般论坛所具有的功能外, Discuz! 还提供了很大限度的个 性化设定.众多功能在后台预留开关,可按企业需要启用.前台全部采用编译模板技术构建, 更换界面易如反掌.完善的权限设定,使管理员可控制到每个用户,每个组及所在每个分论 坛的各种权限.国际化和标准化的产品架构. 对于绝大多数网站而言,利用 Discuz! 均能够在最短的时间内,花费最低的费用,采用 最少的人力架设一个性能优异,功能全面,安全稳定的社区论坛平台;而对于网民而言,注 册任何一个由 Discuz! 软件系统建立的网站/论坛,将能方便,快捷地享受到论坛带来的互动 体验,进行发/回贴,添加/修改资料,站内短信,社区搜索等数百项基本论坛操作,以及进行 wap 访问,社区交易,论坛悬赏等数十项高级社区应用. 论坛是中国互联网社区最主流的应用表现形式, web2.0 社区由于拥有自主化,个性化, 自组织等特点,激发用户的贡献欲望.随着中国经济的不断增长,人们的需求也有所不同. 这就是和穿衣一样,有的人喜欢高档的,有的人喜欢朴实的.这就和我们做网站的一样,没 有实质性的东西别人不喜欢,网站风格不漂亮的别人不喜欢,功能不强大的不喜欢(实用, 从用户角度出发) ,娱乐性不好不喜欢,这样就给我们的站长带来了难度,为什么呢?有的网 站是一个人,有的是公司,有的是团队.那么那些弱势群体(个人站长)就相应的增加了难 度, 感觉很累. 所以许多站长最终选择了 Discuz! 社区论坛系统. 2007 年步入 web2.0 时 从 代,我们应该在为我们论坛带来更多人气的同时,要更好的应用 web2.0 . 随着 Discuz!6.0 的发布, 出现许多新的功能. 为了便于大家的了解, 使用以及二次开发, 我们这期邀请 Discuz! 开发组的成员撰写了相关文章,从 Discuz! 性能优化,页面缓存机制 到插件的开发以及安全等方面进行了全面的介绍. 希望对于大家的学习和使用能够有所提高. 让更多的站长建立起更加专业,个性的 web2.0 网站!刘昊网站:http://www.phpchina.com投稿:《PHPer》 2/96 PHPer 贡献者名单PHPer 贡献者名单2007 年 11 月 1 日 主管:PHPChina.com 主办:PHPChina 网站会员 网址:http://www.phpchina.com 总编:PHPChina 副总编:廖宇雷 卷首语:刘 昊 新闻:haitao 活动:雷 锋 就业:肥同小可 应 用 新手乐园:xiaojia 代码分析:童 虎 模版和引擎:僭燮水 / 赵高欣 PHP企业解决方案:haitao 开源项目介绍:张径舟 知识库 LAMP大讲堂:文 风 教程连载:hosander / 文 锋 / 洪建家 编程技巧:Heyond / 乔 聪 / 流 年 PHP 百家谈:廖宇雷 博客推荐:梅化雪 校验排版: Richard 梅化雪 后期制作: 兔石尾 Richard 另外,欢迎广大PHP 程序员踊跃投稿! 第 7 期请将稿件发送至
请注明所投栏目,并附上作者简介. PHP 中国开源社区感谢您的参与!网站:http://www.phpchina.com投稿:《PHPer》 3/96 目录目录封面 ........................................................................................................................................................................... 1 卷首语 ....................................................................................................................................................................... 2 PHPer 贡献者名单.................................................................................................................................................. 3 目录 ........................................................................................................................................................................... 4 新闻 ........................................................................................................................................................................... 6 PHP5.2.5 发布.................................................................................................................................................. 6 新闻摘要 ........................................................................................................................................................... 7 产品评论: Zend Studio for Eclipse ............................................................................................................... 8 第一次接触――总览 ............................................................................................................................... 8 代码编辑器 ............................................................................................................................................... 9 调试器 ..................................................................................................................................................... 10 参数选择 ................................................................................................................................................. 11 SQL 连接 .................................................................................................................................................. 11 代码库 ..................................................................................................................................................... 12 摘要 ......................................................................................................................................................... 12 大学生的就业之路 ......................................................................................................................................... 14 《 2007 年中国网络社区研究简版报告》发布.......................................................................................... 18 活动 ......................................................................................................................................................................... 19 PEA 如何可持续性发展 ................................................................................................................................ 19 一,PEA 校园 ........................................................................................................................................ 19 二,成立新的城市 PEA 分会 .............................................................................................................. 19 三,已成立城市 PEA 分会的管理 ...................................................................................................... 19 新手乐园 ................................................................................................................................................................. 23 Discuz! 论坛如何添加配置选项 ................................................................................................................... 23 代码分析 ................................................................................................................................................................. 27 人人皆可做插件 ― ― Discuz! 插件开发讲解 ............................................................................................ 27 PHP 企业解决方案 .................................................................................................................................................. 34 Zend Platform 3 性能管理―综合管理―企业可扩展性 ............................................................................. 34 Zend Platform 3 总览 ......................................................................................................................... 34 产品概述 ................................................................................................................................................. 34 Zend Platform PS 特性........................................................................................................................... 35 Zend Platform IS 特性............................................................................................................................ 36 Zend Platform ES 特性 ....................................................................................................................... 37 系统配置要求 ......................................................................................................................................... 37 将 PHP 引入企业 .................................................................................................................................. 38 模板和引擎技术 ..................................................................................................................................................... 39 从 PHP 的模板引擎看 Discuz! 模板机制.................................................................................................. 39 一,关于模板引擎的前言 ..................................................................................................................... 39 二,程序处理的分析 ............................................................................................................................. 39 三,模板源文件的语法 ......................................................................................................................... 40 四,Discuz!模板处理机制 ................................................................................................................... 40 五,总结 ................................................................................................................................................. 41 Zend Framework 源码剖析之 MVC............................................................................................................. 42 【开篇】 ................................................................................................................................................. 42 【结构】 ................................................................................................................................................. 42 【后记】 ................................................................................................................................................. 46 开源项目介绍 ......................................................................................................................................................... 47 Thinkphp 入门初探及简单文章实例演示 .................................................................................................... 47 一, 创建目录结构(如有问题请参看附件目录结构)........................................................................ 47 二, 创建数据库 ................................................................................................................................... 48 三, Thinkphp 应用配置...................................................................................................................... 48 四, 创建应用 ....................................................................................................................................... 49 网站:http://www.phpchina.com 投稿: 《PHPer》 4/96 目录 五, 总结 ............................................................................................................................................... 51 LAMP 大讲堂 ............................................................................................................................................................ 52 LAMP 网站搭建与优化技巧 ........................................................................................................................ 52 LAMP 网站搭建 ....................................................................................................................................... 52 LAMP 优化技巧 .................................................................................................................................... 56 教程连载 ................................................................................................................................................................. 61 如何用 AJAX 实现聊天功能(四) ........................................................................................................... 61 增加 MessageAction() ......................................................................................................................... 61 使用 Zend_Json 对 JSON 进行编码................................................................................................... 64 把新的信息编码成 JSON...................................................................................................................... 64 更新的 IndexController ...................................................................................................................... 65 深入浅出 PHP 面向对象与设计模式(二) .............................................................................................. 69 四,仅此一件--单件模式 ..................................................................................................................... 69 五,时光倒转--备忘模式 ..................................................................................................................... 71 PHP 做为命令行脚本应用(一) ................................................................................................................ 75 PHP CLI 与 PHP CGI 区别.................................................................................................................. 75 PHP-ClI 优点.......................................................................................................................................... 75 编程技巧 ................................................................................................................................................................. 79 Discuz! 页面缓存机制................................................................................................................................... 79 概述 ......................................................................................................................................................... 79 实现原理 ................................................................................................................................................. 79 相关代码分析 ......................................................................................................................................... 80 使用 Zend_Db 类库进行多表关系处理 .............................................................................................................. 83 关于数据库分表的应用层设计 ..................................................................................................................... 91 引子 ......................................................................................................................................................... 91 原理 ......................................................................................................................................................... 91 实现 ......................................................................................................................................................... 91 缺点 ......................................................................................................................................................... 93 PHP 百家谈 ............................................................................................................................................................ 94 廖宇雷_访谈录 ............................................................................................................................................... 94 博客推荐 ................................................................................................................................................................. 97 《PHPer》读者调查表.......................................................................................................................................... 98 封底 ......................................................................................................................................................................... 99网站:http://www.phpchina.com投稿:《PHPer》 5/96 头条新闻: PHP5.2.5 发布新闻PHP5.2.5 发布PHPChina 消息, PHP 开发小组将要发布最新的 PHP5.2.5 .这个版本通过修正了超过 60 个 bug ,主要改善了 PHP5.2.x 系列的稳定性,其中的一些 bug 与安全相关.我们鼓励所 有的 PHP 用户升级到这个版本. 关于 PHP5.2.5 发布的更多细节可以在 5.2.5 的发布公告中看到,更改的完整列表会在 PHP5 更改日志中. PHP5.2.5 中的安全提升和修正: 修正了 dl() 函数只能接受文件名的 bug . 修正了 dl() 函数针对 MAXPATHLEN 的字段大小限制的 bug . 修正了 htmlentities/htmlspecialchars 不接受局部的多字节序列的 bug . 修正了 glibc 中执行 fnmatch() , setlocale() 和 glob() 函数可能触发缓存溢出的 bug . 修正了 &mail.force_extra_parameters&php.ini 的路径没有在 .htaccess 中更改导致的安全 隐患. 修正了 bug #42869 (自动插入 session id ,添加到非本地格式). 修正了 bug #41561(在 http.conf 中 php_admin_* 设置的值可以被 ini_set() 重写) . 网站:http://www.phpchina.com投稿:《PHPer》 6/96 新闻摘要新闻摘要2007 最佳开源 PHP CMS 系统评选结 http://www.phpchina.com/viewnews_16546.html 果揭晓 最新出炉的 2007 年度最佳开源 CMS (内容管理)系统名单已经发布. Joomla 不 负三众望再次获得第一,并不意外,它的系统效率很高,虽然初次上手有些繁琐,可 熟悉后,是非常强大的.… PHP 再获巨头支持甲骨文向开源社区捐 http://www.phpchina.com/viewnews_15952.html 献 OCIB 2007 年 10 月 19 日,甲骨文公司在美国总部推出了其面向 PHP 语言,增强型 的 Oracle 呼叫界面( Oracle Call Interface ,简称 OCIB )数据库驱动的预览版软件, 并宣布把它捐献给开源社区.… Zend 将 Windows 引入 PHPhttp://www.phpchina.com/viewnews_15950.htmlPHP 厂商 Zend 在 Zend 年会上发布了一系列声明,使这个开源的开发语言对于 微软公司 Windows 平台的用户更具吸引力.…http://www.phpchina.com/viewnews_15618.html 强强联合 Zend 推动 PHP 发展! 2007 年 10 月 9 日 , 伴 随 着 第 三 届 Zend 暨 PHP 年 会 在 加 利 福 尼 亚 州 Cupertino 的举行, Zend 公司不仅宣布继续加强与 IBM 公司, 微软公司和 Oracle 公 司的深层次合作,同时还发布了一系列最新的产品.…Oracle 和微软公开支持 PHPhttp://www.phpchina.com/viewnews_15528.htmlPHP 开源脚本语言得到了现有的企业级 IT 厂商的更多支持.同时 PHP 是一个 流行的开源脚本语言,用于世界上数百万的网站.…网站:http://www.phpchina.com投稿:《PHPer》 7/96 Zend c 产品:产品评论--Zend Studio for Eclipse产品评论: Zend Studio for Eclipse翻译整理: haitao Zend Studio 专业版目前是测试版本,正在被全世界超过 800 个用户和 PHP 开发者测 试使用. 在我多年的程序开发中――到现在将近二十年,我用过无数的综合开发环境( IDE ) . 从简单的文本编辑器到 Sybase , IBM 和 Oracle 等公司使用的终极 IDE ,我都使用过. 近年来我开始投入开源运动,尤其是 WEB 环境下的程序开发.我选择的 WEB 开发编程语 言是 PHP ,这也是我一直在寻找一个好的,适合 PHP 开发的 IDE 的原因.像许多其他开 发者一样,我也走过了为 PHP 寻找顶尖 IDE 之路.我开始使用基本的文本编辑器,紧接着 换到了带代码高亮显示的文本编辑器,然后是基于开发环境的项目,最后是一个完整的强大 的 IDE . 我最近使用过的一个就是 Zend 公司的 Studio 专业版, 我现在已经用了一些年了. Zend 公司已经决定加入 Eclipse 社区,这个社区是多年前由 IBM 公司建立的,我认为 加入 Eclipse 是一个不错的主意.加入到 Eclipse 社区的价值是巨大的.从 Eclipse 首先作 为一个 Java 开发环境被创建开始,通过扩展库的方式,它已经有了飞跃发展,成为一个流 行的领域. Zend 公司认识到这是一个很大的优势, 于是一年多后开发了一个 PDT 环境 (今 年早先时候已经发布)的专业版本. PDT 版本是一个 IDE 编辑器的开源自由软件版本,这 个 IDE 基于 Eclipse 基金会. 这篇文章将尝试向你介绍即将发布的专业版.第一次接触――总览获得该软件后你要做的第一件事情自然是安装.Zend 确保 Zend Studio for Eclipse 可以 运行在所有主流的操作系统上,这篇文章主要是在 Windows 平台上的操作.安装过程非常 简单,使用了一种安装向导的方式.图示 1 Studio 安装向导截图之一图示 1 显示了初始化安装界面中的一个,这是让你选择一些内置的附加工具选项.一旦网站:http://www.phpchina.com 投稿: 《PHPer》 8/96 Zend c 产品:产品评论--Zend Studio for Eclipse安装完成,启动应用程序,将呈现出默认的 PHP 视图.图示 2 Studio 默认的 PHP 图示请花些时间来看图示 2 让自己熟悉这个界面. 那些经验丰富的 Eclipse 使用者不应该觉 得很惊讶,仅仅是内容和背景不同.初始的视图中有一些&视窗& ,这是为了帮助开发者进行 PHP 代码开发. 你看到的第一个视窗是在图示顶部的左上角.这是 PHP 项目管理器.你可在这里管理 与单个项目相关的所有文件和关联.这个视窗的优点是你可以同时管理多个项目,因此可以 使用其它项目中使用的代码或技术.另一个我非常喜欢的是项目视窗工具栏中的 &Link with Editor& 开关.开发者可以使用它将文本编辑器与项目中的任何文件关联,所以一旦你关注 项目管理器中的某个文件,它会自动在左边的代码编辑器里打开.正如我提到的,它是一个 开关,因此它可以在开发者判断选项中打开或关闭.代码编辑器在图示 2 中,同样值的关注的是前面提到的代码编辑器.这里是你进行大量代码开发的 地方.代码编辑器视窗有很多越来越有价值的细小功能.它是一个标签界面,因此你可以高 效的操作多个你需要的代码文件.一些有价值的功能有:代码高亮显示,代码折叠和语法检 查.在上图中你可以在看到这个代码高亮显示是什么, HTML 标记用绿色显示, PHP 函数 显示为蓝色, PHP 变量显示为红色等等.如果一个变量名称缺失或函数拼错的话,这可以 帮助开发者清晰的看到这个错误.我提到的第二个功能是代码折叠.你可以注意到函数定义 和主要的 HTML 标记,例如 &Table& 和 &Body& 左侧有小的加和减的按钮.点击它们可以 控制收缩和展开代码.这样可临时将代码&移出视窗& ,使你可以专注于其它的部分.它并不 会删除代码,仅仅是折叠.最后是语法检查, Studio 可以检查你所写的代码,让你有完整的 代码&思维& .让你了解哪里出现了搭配错误,函数调用错误,变量名称缺失等等.同样,代 码检查的一部分会在界面底端的一系列小的窗口中预先生成.其它标签界面有代码问题的信 息,这些问题是哪种类型,出现在哪一行.这个标签也可以在图示 2 中的 &Problem& 中 看到. Zend Studio for Eclipse 还提供了一些其它的功能.我最喜欢的一个是代码补全.编辑器 会自动建议你补全你所写的代码.当你键入代码的时候可以看到这个功能,而且它非常直观.网站:http://www.phpchina.com 投稿: 《PHPer》 9/96 Zend c 产品:产品评论--Zend Studio for Eclipse如图示 3 中所示,我正在键入 MySQL 相关的 PHP 函数,但是当我键入 &mysql_& ,弹 出窗口会显示 studio 所知道的需要补全的函数,敲击回车键你会选择建议列表里的第一个, 并且帮你插入到编辑器中.你可以使用鼠标双击选择列表中提供的其它函数并插入.图示 3 Studio 中的代码补全调试器Zend Studio for Eclipse 的另一重要部分是其功能丰富的调试器.这是我见过的最好的调 试器之一.图示 4 显示了 PHP 调试视图中一个正处于调试模式的简单程序.有很多视窗支 持调试过程.在顶部中间的窗口中你可以追踪你的变量,断点和变量堆栈.右边是一个视窗, 这个视窗以 HTML 和浏览器形式显示调试输出.中间的视窗显示调试器正在检查的代码, 因此你可以看到代码执行后的效果.图示 4 Studio 中的调试会话 网站:http://www.phpchina.com 投稿: 《PHPer》 10/96 Zend c 产品:产品评论--Zend Studio for Eclipse如果你可以在图示 4 中看到鼠标指针,它正指向调试器中的工具栏选项,这个工具栏帮 你在调试会话中操作.当你在寻找你应用程序中的问题时,你可以在这里进入调试,跳出, 或者从头到尾执行你的代码.让代码执行停止在某一步并查看即时的值,这真的很有价值.参数选择要想控制 Studio 工作,余下的选项是庞大的!如果你在窗口菜单中选择了参数选项,你 将看到图示 5 中的对话框.你可以更改这个 IDE 中每个部分的默认行为.从文本编辑到 SQL 连接,再到 Internet 设置,都在这里.尤其是图示 5 中显示了更改 PHP 代码高亮显 示的选项.有选择如此多的选项让你来选择或仅仅更改一到两个功能,你可以看到更改是否 真的已经应用,所以你不需要有很多撤销更改的操作来避免你忘记了哪些选项做了你想要的 更改.图示 5Zend Studio for Eclipse 的参数选择对话框SQL 连接Studio for Eclipse 同样有也一个非常棒的 SQL 界面, 你在这里可以与任何的本地或远程 的数据源相连接.在图示 6 中有个例子,在左边的区域即数据源管理器中有一个可选择的本 地 MySQL 数据源,一些执行后的 SQL 选择语句运行在屏幕下部的中央.在右下方的部分 显示了最近执行的 SQL 命令的结果,顶端是 SQL 编辑文件,在这里你可以写入你自己的网站:http://www.phpchina.com 投稿: 《PHPer》 11/96 Zend c 产品:产品评论--Zend Studio for Eclipse更丰富的 SQL 命令来执行. 这个 SQL 界面同样也有很多功能和选项.当你在数据源管理器中点击鼠标右键,有一 些选项可供选择.在这个视图中你甚至可以直接在表中编辑数据.视图 6 用于数据库操作的 SQL 视图代码库从团队开发的角度来看一个非常重要的功能是 Zend 公司集成在 Studio for Eclipse 中 的代码库.这是一个两种方式的代码片段库,这些代码片段都经过试用和测试,可以重复用 在多个项目中.你可以提取出一些好的代码片段并保存到代码库中供他人使用.图示 7 是一 个登录到代码库的屏幕截图.一旦你有一个代码库,你可以打开它的定义视窗并且在工具条 上简单的点击 &insert& 按钮来把代码添加到现在你正在开发的代码中的光标所在处. 代码库的第二种方式是 Zend 公司有一个全球的代码库,你可以从 PHP 社区找到一些 最好的代码.使用你的 Zend 网站用户名和密码你就可以访问这个代码库并将这些代码用于 你自己,你同样也可以将你的&建议&添加加到 Zend 代码库中,这将被收录到 Zend 公司 的全球代码库供全世界的人们来阅读.摘要Zend Studio for Eclipse 还有很多我没有提到的功能,以下是一个其它可用的主要功能的 列表. 与 Zend Framework 的结合 CVS 文件管理 FTP/SFTP 连接 WYS/WYG 编辑器网站:http://www.phpchina.com 投稿: 《PHPer》 12/96 Zend c 产品:产品评论--Zend Studio for Eclipse与 Zend Platform 的结合 代码重分解图示 7 Studio 的代码库列表和界面正如我在文章开始的段落里提到的,多年来我一直在寻找完美的 IDE 并体验了许多不 同的阶段. Zend Studio for Eclipse 现在是年轻的, 还不成熟, 但是我认为当我继续我的 PHP 开发之路时,它的确在我的桌面电脑上运行,将在一种规则的基础上使用.一旦 Zend 公司 继续增强它的功能,成熟的 Studio for Eclipse 以及后续推出的版本 2 和版本 3 将只会变得 更好. 脚 注 : Zend 公 司 刚 刚 发 布 了 这 个 产 品 的 公 开 测 试 版 : http://www.zend.com/products/zend_studio/eclipse .如果你有兴趣下载并试用,现在是个最好 的机会.网站:http://www.phpchina.com投稿:《PHPer》 13/96 PHP就业:大学生的就业之路大学生的就业之路作者:肥同小可 最近因业务需要, 招聘一名新人, 结果应聘者中近半数以上都是应届大学毕业生, 因在求职联系人的位置留了 QQ ,结果陆续很多应聘者加我. 后来,发生了这样和那样的故事…… 故事一: 某应聘者:你现在招人吧? 肥同小可:您好,我是 XXX ,是的,我公司现在招聘 XXX 职位…… 某应聘者:有什么要求啊? 肥同小可:是这样,我们要求…… 某应聘者:你公司在哪啊? 肥同小可:我公司在…… 某应聘者:我想应聘 肥同小可(无奈) :您方便告诉我您的姓名,并给我发一份简历吗…… 点评:我有一种犯人被提审的感觉……最夸张的是,最后他的姓名还需要招聘者 询问,而不是一开始就自报家门,这种人可能性格直爽,问题是直爽也不能到这种地 步啊 (直到我们都不爽) ……要么就是真的不懂礼貌. 很明显, 他这次面试不会成功, 礼貌是最基本的敲门砖. 故事二: 某应聘者:您好,我是 XXX ,在 XX 招聘网站看到贵公司招聘信息,我想应 聘? 肥同小可:您好,我是 XXX . 某应聘者:我想请问下这个职位大概薪资如何? 肥同小可(晕倒) :这个那个…… 某应聘者:贵公司有什么福利待遇? 肥同小可(狂晕) :那个这个…… 点评:市场学中有一句话&当客户没有认识到你销售产品的价值时,不要和客户 谈价格& ,其实在面试中何尝不是呢,当招聘者还没有了解应聘者的基本情况,双方 还不确定是否有意向的时候,即便应聘者真的很期望了解薪资待遇,是否也要双方大 概有一个简单了解之后呢,不然也太唐突了吧,会给人逐利而居的感觉. 故事三: 某应聘者:您好,我是 XXX ,您公司名称是什么啊? 肥同小可(服了) :您好,我是 XXX ,我公司是 XXX . 某应聘者:我想应聘贵公司 XXX 职位,这是我的简历. 肥同小可:我看您工作经历中并没有做过类似的工作,怎么想应聘这个职位. 某应聘者:感觉贵公司比较有发展,过去的工作只积累了经验,现在希望可以在 从业的薪资上有所提升,所以希望有机会到贵公司工作. 肥同小可:您了解这份工作要做什么吗? 某应聘者:不是特别清楚,不过…… 肥同小可(郁闷啊) :……网站:http://www.phpchina.com 投稿: 《PHPer》 14/96 PHP就业:大学生的就业之路点评:记住对方公司的名称是基本的尊重,就像我们要记住别人的姓名一样,这 样的应聘者,根本就对要应聘的这份工作不重视.也许一天他面试了 N 家公司,但 是我想这并不是他记不住我公司名称的借口.同时,只关心报酬,而不在乎工作的内 容.这份工作实在没有理由相信他会做得好…… 故事四: 场景:肥同小可打电话给一个预约了面试的同学 肥同小可:您好, XXX ,我是 XXX ,我与您约好的今天下午三点在我公司面 谈,不知道您什么时候过来. (当时时间为下午三点一刻) 某应聘者:哦,不好意思啊,我忘记了,另外一家公司通知我面试,时间冲突, 我就来这家了…… 肥同小可(我疯了) :…… 点评:答应别人的事情一定要做到,如果做不到一定要提前告诉别人,这是做人 做事最基本的诚信,如果这一点都做不好的人,相信没有哪个企业敢录用. ……………… 类似的故事发生了很多很多,故事的主角,有应届毕业生,有工作过一两年的应 聘者,甚至也有工作过多年的应聘者,其中以应届毕业生居多.也许他们有能力,可 惜,却没有机会在企业中发挥. PHPChina 过去有过很多的培训学员,他们在找工作的过程中也碰过壁也撞过南 墙也走过弯路,面试失败的原因五花八门,有的同学简历超级简单让招聘企业一看就 感觉能力有限;有的同学简历什么都精通无所不能让招聘企业觉得不可信;有的同学 面试时着装实在太休闲了让人感觉不稳重;有的同学约好了面试却迟到半个小时;有 的同学面试时手机响个不停;有的同学面试时不够自信…… 大学生刚刚走入社会,也许我们没有经验,也许我们能力不是特别强悍,问题是 面试基本的技巧和要求,满大街都有书在讲,互联网上一检索有无数的信息,可是, 就是没有多少人关注,还是一样的胡乱面试,还是一样的经受失败.人与人的交往, 最重要的就是第一印象, 我们给别人的第一感觉, 是难以磨灭的, 如果第一印象良好, 对方就会继续探索你的其他好的品质;如果第一印象较差,对方就会不断发现你的其 他的不良品质.古人讲,路遥知马力,日久见人心,在今天飞速发展的社会已经不适 用了,因为没有那么多人愿意给你&日久见人心&的机会,可能第一次表现不好,就 没有了第二次表现的机会. 根据国家劳动和社会保障部的统计资料,2007 年将求职的大学毕业生总量在 600 万人左右,现在上大学已经越来越容易,大学生每年都在激增,也许这是学历的一种 变相贬值, 有人讽刺说现在企业招聘 &博硕多多益善, 本科等等再看, 大专看都不看, 中专靠一边站& .大学生数量飞速膨胀,直接造成了今日大学生就业的难题. 看看下面一张北京招聘会的图片,有多么的恐怖:网站:http://www.phpchina.com投稿:《PHPer》 15/96 PHP就业:大学生的就业之路在这样一个竞争激烈的环境中,我们要如何用积极的心态去面对,是每个大学毕 业生要考虑的问题,而媒体的过分夸大,更增加了这些年轻人的心理压力.我们该如 何看待就业,如果去规划自己的职业发展,如何去不断提升自己的能力,如何不断扩 大自己的人脉和资源,是我们要有计划性的考虑的问题.现在 80 后这代的年轻人, 社会更加的浮躁,人也更加的急功近利,可是社会不会因为我们的改变而改变,毛主 席老人家说过, &如果你不能改变环境,就只能学会适应环境& . 讲一个故事吧,讲一个人,80 后创业成功的一个年轻人,戴志康. 戴志康, 1981 年的小伙子,从小喜爱计算机,高考报考专业,认为如果会计算 机同时懂通信, 毕业后一定好找工作, 结果后来考取了哈尔滨工程大学通信工程专业. 上了大学后, 发现大学所学的课程和自己所想象的相差甚远, 于是自己钻研 C 语言, 后来大二时接触到了 PHP ,当时有一个很简单的想法,就是想写一个软件,可以让 尽可能多的人适用它并今儿知道自己,这样大学毕业后,工作就好找了,于是有了论 坛软件 Discuz! .凭借着这样一个理念,这个软件一做就是三年,直到他大学毕业. 从免费到商业化,他大学没毕业就积累了几十万的资金,到大学毕业的那一天,有企 业 30 万年薪聘请他, 不过他不想放弃开发了三年的 Discuz! . 就自己孤身一人来北 京闯荡,创办了康盛创想(北京)科技有限公司,从最早的孤军作战,到七八个人来 十几杆枪,再到今天的二三百人,从兜里没有几个大钱到获得红杉资本几百万美金的 风险投资……他成功了,作为国内最有影响力的 PHP 开发者之一,他是一个成功的 例子. 问题在于,为什么同样也是大学毕业生,他如何能成功,有人说是机遇,有人说 是努力……是什么都好吧,我想再讲两个小故事,送给我们同样是 80 后的年轻人. 有两个小孩,去森林里面玩,结果,碰到了大老虎,其中一个小孩撒腿就跑,另 一个小孩拽住他&不要跑,不要跑,你再跑也跑不过大老虎& ,没想到撒腿就跑的小 孩讲了另外一句话&我不需要跑过大老虎,我只要跑过你就可以了& .这个小故事讲 了一个道理:人,要具有相对竞争力.看到这个小故事,我回想自己的大学时代,曾 经自认在大学学习还不错,入了党,社会活动的活跃者,拿奖学金,对比寝室的几个 哥们我混得可以, 和班级的同学比我也不错, 和整个学校的计算机系比我也说得过去. 问题是,当我 2001 年从国企出来,到北京闯荡的时候,我发现,我错了,因为和我 竞争的,不是一个班级的同学,不是一个学校的同学,而是全中国所有大学的毕业生 在和我竞争.后悔啊,当初的眼光是多么短浅,我就像一个井底之蛙.网站:http://www.phpchina.com 投稿: 《PHPer》 16/96 PHP就业:大学生的就业之路对比戴志康,想想他为什么会成功,他考大学的时候,他大一的时候,就去想以 后毕业了怎么找工作,而我,到了大四才想这个事情.我想这就是为什么别人能够成 功的原因之一吧,定好目标,并按计划执行,不断修正,直到达成目标为止.各位同 学,我们准备好了吗?我们一直都有目标和计划,并有这样的危机感吗? 还是这两个小孩,侥幸上次都没死(可能正好赶上老虎胃口不好不饿) ,又去森 林里面玩,又碰到了大老虎,其中一个小孩撒腿就跑,另一个小孩拽住他&不要跑, 不要跑,你再跑也跑不过大老虎& ,撒腿就跑的小孩就说&我不需要跑过大老虎,我 只要跑过你就可以了& ,结果,没有跑的小孩说了句话&那可未必& ,然后噌噌噌爬树 上去了.拼了命跑玩了命跑的小孩,最后被老虎吃掉了,在树上的,没事. 也说明了一个道理,一个人努力一定会有结果,但是……不一定会有好结果.就 像今天大伙儿要来北京找我,本来出了北京火车站要往南走到我家,不知道路,问了 路边一个哥们,结果告诉你往西走,大伙儿迫切想来我这吹牛扯淡聊 PHP ,狂跑疯 狂的跑,跑的越努力就距离我越远.所以,人努力不一定是最重要的,最重要的是选 择,选择大于努力,选择对了,会事半功倍;选择错了,会事倍功半.一个人一生所 做的选择没有几个,问题是,我们选择对了吗,我们是为了兴趣在选择职业,还是为 了赚钱在选择工作?我们在选择时考虑了自己的职业规划, 还是选择时猪八戒踩西瓜 皮跌到哪里算哪里……爱因斯坦说, &兴趣是最好的老师& ,我一直坚持一个人要喜欢 一份工作,才可能把它,才可能做出成绩.如果选择你的工作,你有想过吗? 我们也许有危机,我们也许面临困境,我们也许生活艰难,我们也许前途未卜. 在当今的社会,有大把的机遇,也有更多的竞争,如果在竞争中胜出,或许我要讲很 多很多才能讲得完.如果看到这里你还不清楚自己改怎么做,亲爱的朋友,我给你几 个简单的建议: 第一:确定自己的兴趣爱好,以决定未来的求职方向(相信我,不一定每个人都 适合做程序开发) ; 第二: 做好自己的人生的生活和职业规划, 给自己设定一个目标, 并定出时间表, 有步骤有计划的执行; 第三:不断累积自己的能力,资源,人脉,让自己不断的成长. 如果你还不清楚怎么做,从小事做起吧,从如何面试做起吧,从小步走起,从小 事开始,人如果不行动,永远是语言的巨人行动的矮子.如果你过去浪费了太多太多 的时间,如果你对自己的现状不满意,如果你正面临找工作的痛苦,如果你的工作不 能让你快了……重新思考一下吧,我们出来什么问题. 应届大学毕业生, 不应该是找工作难的代名词, 但是做好吃苦的准备总是必要的, 我们的人生之路要如何走,中国有两句成语: 天道酬勤,曲径通幽. 欢迎各位朋友在 PHPChina 论坛共同交流. 肥同小可 2007 年 11 月 26 日 晚七时 共勉网站:http://www.phpchina.com投稿:《PHPer》 17/96 PHP相关:《 2007 年中国网络社区研究简版报告》发布《 2007 年中国网络社区研究简版报告》发布2007 年 《第三届中国互联网社 区发展状况调查》 是继 2005 年 《第 一届中国互联网社区 BBS 发展状 况调查》和 2006 年《第二届中国 互联网社区发展状况调查》 基础上, 由康盛创想 (Comsenz) 和艾瑞 咨询 (iResearch) 联合发起,多 家网络媒体门户,社区门户,广告 联盟机构以及社区网站充分参与的 大型互联网产业调查. 为了保证调查的延续性以及可 比性,调查中有 70% 直接沿用了 2006 年调查提出的问题, 同时问卷 的设计也由专家小组共同完成.此次,专业研究咨询机构 iResearch 的参与,将使调查更加专业,严谨,客观.希望调 查能为 2007― 2008 社区市场的应用需求和发展态势提供翔实的数据支持和方向指针. 《 2007 第三届中国网络社区研究报告》 于 2007 年 11 月 25 日在京发布.下载请进: http://event.comsenz.com/2007report/网站:http://www.phpchina.com投稿:《PHPer》 18/96 PEA 活动: PEA 如何可持续性发展活动PEA 如何可持续性发展作者:雷 锋 PEA 从 2006 年 10 月份正式成立到现在已经一年了,想起刚开始的时候从深圳几个人 的聚会到现在全国各地 20 多个分会,还是挺有成就感的,但是再细想一下这些都是表面上 的,真真正正各分会都起到了它应有的作用吗?我看还差点,至少还有很多地方几乎没有聚 会过,没有对当地产生推动 PHP 发展的作用,也没有让各地的 PHPer 团结起来,这说明我 们的路还是只走了一小步,甚至可以说刚刚开始. 那么, 我们需要怎样才能让 PEA 真正的起到 PHP 在中国的推动作用呢?从以下几个方 面来分析:一,PEA 校园在 PHPChina 各地培训中心的推动下, PEA 校园已经初具规模,学生是 PHP 的生力 军, 《少年中国说》中有: &少年富则国富,少年强则国强&.我们 PHP 也是如此,光靠现 有的 PHPer 肯定不够推动 PHP 在中国的发展,必须要有更多的人来学习,而学生是最好的 学习人群,学生就是我们 PHP 在中国发展的基石,只有打好基础,才能盖起高楼大厦. PHPChina 各地培训中心在这方面起到了无比重要的作用,希望有更多的培训中心加入 进来一起推动 PEA 校园,把中国 PHP 的基础打好,更稳固的发展 PHP 中国.二,成立新的城市 PEA 分会PEA 现在虽然在全国有 22 个分会了,但是还是只覆盖到 22 个城市,并且并不是 22 个城市都非常的活跃,为了能够更全面的推动 PHP 在中国的发展,还需要覆盖更多的城市, 那么就需要在更多的城市建立更多的 PEA 分会. 最近有将近 15 个地方在筹备建立分会,这是好事情,从这能证明 PEA 一年以来还是 得到了大家的认可,所以才会有更多的城市 PHPer 和我们一起团结起来推动中国的 PHP . 虽然新筹备的地方参与的人开始不是很多,但是这也是比较正常的,记得刚开始的时候上海, 北京, 广州, 深圳等地参与的人也不多, 但是随着活动的举办, 参与进来的 PHPer 越来越多, 当然各地的发展必需要常委们大公无私,辛劳奉献,只有常委愿意付出的分会,才能越来越 活跃,才能真正起到带动本地 PHP 发展的作用.本来 PEA 创立的目的就是为了推动 PHP 发 展,PHP 在中国发展还不是很完善的时候,就需要常委们齐心协力,不能假公济私,等发展 起来了,各个地方会员以及常委肯定都能有应得的收获.三,已成立城市 PEA 分会的管理首先在会员管理方面,各地每次活动需要有签到登记表,备份好每次参加活动人员通讯 录, 以便以后有活动的时候及时通知, 并且可以举办大型活动. 另外认证会员方面, 通过 PEA 频道的认证会员功能,管理好本地的认证会员,把这些认证会员作为日后发展的主生力军. 其次常委管理方面,实现竞争制度,不能你是常委一直不组织活动还继续是常委,并且 现在各地常委和常委之间,还有各分会与分会常委之间的沟通都很少,这方面需要加强,做 到本地常委之间至少需要经常沟通,每次活动需要大家讨论决定.之后分会与分会常委之间 沟通互相学习经验,有机会发展好了再每年在北京举行一次 PEA 常委年会,这是我们发展 的方向.真的做到这样,那么我们 PEA 就真的起到了推动中国 PHP 的作用了. 然后就是 PEA 频道方面,现有的频道还是比较薄弱,没有起到他应有的用处,为了能 够让各地实实在在的用上这个频道来管理各自的分会活动以及会员,所以再次收集各地 PEA 的需求增加功能,本次功能突出了贡献和管理这部分,有专门的常委个人页面,以及在各地网站:http://www.phpchina.com 投稿: 《PHPer》 19/96 PEA 活动: PEA 如何可持续性发展方频道中发布活动,报名活动,资料发布共享等. 总之,为了能够保持 PEA 持续性的发展,我们需要在很多方面加强推动和管理,并且 需要各地 PEA 常委以及会员保持贡献,激情,无私的精神,发扬我们公益组织的精神,我 们在 PEA 当中所收获的可能不是直接的金钱,但是我们能够通过 PEA 的到和金钱间接相 关的,比如资源,人脉,这些是不能用钱来购买的,但是它是对我们工作非常有帮助的. 最后,国际惯例,罗列部分近阶段比较优秀的 PEA 分会活动分享给那些没有天天看论 坛的人. 1, PEA 上海 9 月 22 日活动 链接:http://www.phpchina.com/bbs/thread-.html 活动图片:2, PEA 广州 9 月 24 日贺中秋烧烤活动 链接:http://www.phpchina.com/bbs/thread-.html 活动图片:网站:http://www.phpchina.com投稿:《PHPer》 20/96 PEA 活动: PEA 如何可持续性发展3, PEA 北京 9 月 22 日 PHP 中高级技术交流 链接:http://www.phpchina.com/bbs/thread-.html 活动图片:4, PEA 深圳 10 月 14 日笔架山聚会 链接:http://www.phpchina.com/bbs/thread-.html 活动图片:网站:http://www.phpchina.com投稿:《PHPer》 21/96 PEA 活动: PEA 如何可持续性发展5, PEA 北京 10 月 27 日 Discuz! 研发人员与 PHPer 技术交流活动 链接:http://www.phpchina.com/bbs/thread-.html 活动图片:6, PEA 重庆 Conf 3rd Edition 链接:http://www.phpchina.com/bbs/thread-.html 活动图片:网站:http://www.phpchina.com投稿:《PHPer》 22/96 新手乐园: Discuz! 论坛如何添加配置选项新手乐园Discuz! 论坛如何添加配置选项作者:xiaojia Discuz! 论坛在后台有好多配置选项,通过这些配置选项可以实现好多功能.在 Discuz! 论坛的二次开发过程中,我们也同样要经常添加一些配置,然后根据配置来进行不同的操作. 下面我就来介绍一下如何在 Discuz! 论坛中添加配置选项. 我们以 Discuz!6.0 为例.首先我们来看一下 Discuz! 论坛后台的配置界面,以管理员登 录论坛后台后,选择'基本设置' -& '基本设置'后会出现以下的界面:这个页面用了框架,我们在右下方的页面中点击右键选择'属性' ,在弹出的窗口中,我 们发现这个页面的 URL 是 '/admincp.php?action=settings&do=basic' ,这个页面用的程序是 admincp.php ,先来分析一下这个文件. 这个文件的第 172-290 行大致的内容如下: 代码如下:$cpscript = ''; if($adminid == 1) { if($action == 'home') { $cpscript = 'home'; } elseif($action == 'runwizard' && isfounder()) { $cpscript = 'runwizard'; } elseif … … } elseif($adminid == 2 || $adminid == 3) { if($action == 'home') { $cpscript = 'home'; } elseif((($allowedituser || $allowbanuser) && ($action == 'editmember' || $action == 'banmember')) || ($allowbanip && $action == 'ipban')) { $cpscript = 'members'; } elseif… … } if($cpscript) { 网站:http://www.phpchina.com 投稿: 《PHPer》 23/96 新手乐园: Discuz! 论坛如何添加配置选项 } elseif… … } if($cpscript) { require_once DISCUZ_ROOT.'./admin/'.$cpscript.'.inc.php'; }……这段程序主要就是根据 $action 变量来给 $cpscript 赋值,然后根据 $cpscript 的值来引 入 admin 目录下的程序文件.我们注意一下 179 行左可的 $action 值的判断,会发现其 $cpscript 的值是 'settings' ,那就是说 283 行引入的程序文件是 'admin/settings.inc.php' . 然后打开 settings.inc.php 文件,会发现里面的内容好长呀,不要被这给吓坏了,仔细分 析一下就好了. 第 14 行: 代码如下:$operation = $operation ? $operation : (!empty($do) ? $do : '');这里会根据 GET 过来的 $do 值来给 $operation 赋值,这个例子中其值是 'basic' . 第 17 行: 代码如下:$query = $db-&query(&SELECT * FROM {$tablepre}settings&); while($setting = $db-&fetch_array($query)) { $settings[$setting['variable']] = $setting['value']; }这些程序段是从数据库把数据读出来存到数组 $settings 中以便下面调用. 下面的程序结构如下: 代码如下:if(!submitcheck('settingsubmit')) { if($operation == 'access') { …… } elseif($operation == 'styles') { …… } elseif … … } else { //表单提交后的数据处理 …… }程序中的 submitcheck 函数是用检查一个表单是否进行提交,如果表单没有提交,则根 据前面处理过的 $operation 来显示表单. 在这里 $operation 的值是 basic , 其执行的是下面 一段: 代码如下:$operation = 'basic'; showtype('settings_general', 'top'); showsetting('settings_bbname', 'settingsnew[bbname]', $settings['bbname'], 'text'); showsetting('settings_sitename', 'settingsnew[sitename]', $settings['sitename'], 'text'); showsetting('settings_siteurl', 'settingsnew[siteurl]', $settings['siteurl'], 'text'); showsetting('settings_index_name', 'settingsnew[indexname]', $settings['indexname'], 'text'); showsetting('settings_icp', 'settingsnew[icp]', $settings['icp'], 'text'); showsetting('settings_boardlicensed', 'settingsnew[boardlicensed]', $settings['boardlicensed'], 'radio'); showsetting('settings_bbclosed', 'settingsnew[bbclosed]', $settings['bbclosed'], 'radio'); showsetting('settings_closedreason', 'settingsnew[closedreason]', $settings['closedreason'], 'textarea'); 网站:http://www.phpchina.com 投稿: 《PHPer》 24/96 新手乐园: Discuz! 论坛如何添加配置选项在这里用到了一个自定义函数 showsetting ,它的第一个参数是这个配置选项的名字, 第二个参数是在 HTML 显示时 input 的 name 值,第三个参数是当前的配置选项的值,是 上面从数据库查出来的数组 $settings 中的一个值,第四个参数是 input 的类型.我们添加一 个自己的配置选项 mytest .在上面代码的最后面添加如下代码: 代码如下:showsetting('settings_mytest', 'settingsnew[mytest]', $settings['mytest'], 'radio');保存,刷新页面发现在这个页面最下方多出一个选项: settings_mytest 是 否但 是 发 现 其 是 英 文 的 , 我 们 修 改 一 下 语 言 包 就 可 以 了 . 在 templates/default/admincp.lang.php 文件的第 450 行 'settings_closedreason_comment' =& ' 论 坛关闭时出现的提示信息' ,下面添加如下代码: 代码如下: 'settings_mytest' =& '测试选项:', 'settings_mytest_comment' =& '测试选项的提示信息', 保存后再刷新就有中文提示了. 至此在界面上的显示已经处理完毕,下面来说一下如何处理表单提交后的数据.在 /admin/settings.inc.php 文件的 if(!submitcheck('settingsubmit')) {} 对应的 else 语句部分.这 部分的代码,首先对提交过来的数据进行处理,然后全部放到 $settingsnew 数组中,其实也 就是 POST 过来的数据进行一下检查.在这个文件的 1140 行在右有如下代码: 代码如下:foreach($settingsnew AS $key =& $val) { if(isset($settings[$key]) && $settings[$key] != $val) { $$key = $ $updatecache = TRUE; if(in_array($key, array('newbiespan', 'topicperpage', 'postperpage', 'memberperpage', 'hottopic', 'starthreshold', 'delayviewcount', 'visitedforums', 'maxsigrows', 'timeoffset', 'statscachelife', 'pvfrequence', 'oltimespan', 'seccodestatus', 'maxprice', 'rssttl', 'rewritestatus', 'bdaystatus', 'maxonlines', 'loadctrl', 'floodctrl', 'regctrl', 'regfloodctrl', 'searchctrl', 'extcredits1', 'extcredits2', 'extcredits3', 'extcredits4', 'extcredits5', 'extcredits6', 'extcredits7', 'extcredits8', 'transfermincredits', 'exchangemincredits', 'maxincperthread', 'maxchargespan', 'maxspm', 'maxsearchresults', 'maxsmilies', 'threadmaxpages', 'membermaxpages', 'maxpostsize', 'minpostsize', 'maxavatarsize', 'maxavatarpixel', 'maxpolloptions', 'karmaratelimit', 'losslessdel', 'edittimelimit', 'smcols', 'watermarktrans', 'watermarkquality', 'jscachelife', 'waptpp', 'wapppp', 'wapmps', 'maxmodworksmonths', 'frameon', 'maxonlinelist'))) { $val = (float)$ } $db-&query(&REPLACE INTO {$tablepre}settings (variable, value) VALUES ('$key', '$val')&); } }这段代码的作用就是检查 $settingsnew 数组中是否有对应的选项,如果有并且是数字选 项时进行 float 转换, 然后全部 REPLACE INTO 到数据表 settings 中, mytest 选项是我们 新添加的,数据表中没有这个选项,我需要先在数据库中执行如下 SQL 语句: REPLACE INTO cdb_settings(variable, value) VALUES('mytest', '0') , 注意修改一下表前缀. 这们的 mytest 选项就会存入数据库中. 在 1160 行左右会执行代码 updatecache('settings') 来把 settingsnew 数组里的数据自动 进行缓存, 具体实现方法有兴趣的朋友可以仔细看一下 /include/cache.func.php 文件是如何实网站:http://www.phpchina.com 投稿: 《PHPer》 25/96 新手乐园: Discuz! 论坛如何添加配置选项现的. 数据进行缓存后会在 /forumdata/cache/cache_settings.php 文件中 $_DCACHE['settings'] 数 组 中 有 mytest 项 , 然 后 我 们 就 可 以 通 过 这 个 选 项 来 做 一 些 操 作 . 在 /include/common.inc.php 文件的第 93 行左右有如下代码: 代码如下:$cachelost = (@include DISCUZ_ROOT.'./forumdata/cache/cache_settings.php') ? '' : 'settings'; @extract($_DCACHE['settings']);通过上面的代码,直接把 mytest 配置选项的值用 $mytest 变量来存放,我们就可以直 接判断 $mytest 来进行操作了.在 index.php 文件的 17 行加入如下代码: 代码如下:if($mytest) { echo 'Hello This is Test'; }运行后,效果如下:至此已经成功的为 Discuz! 论坛添加了一个选项,论坛当然还有相当的选项,其基 本思路都是这样的,可以根据具体情况来进行添加.网站:http://www.phpchina.com投稿:《PHPer》 26/96 代码分析:人人皆可做插件 CDiscuz! 插件开发讲解代码分析人人皆可做插件 ―― Discuz! 插件开发讲解作者:童 虎 论坛向社区化发展已经成为趋势,站长对网站的个性化需求越来越高,同时随着网站规 模的扩大, 站长对于一些特殊功能的需求也越来越多, Discuz! 标准程序作为一个通用程序, 从某种意义上讲很难满足所有站长的个性化功能的需求,因此论坛插件就成为对标准程序最 好的功能补充. 从目前来看,正在做插件和想做插件的人越来越多,从 Discuz! 官方论坛的统计数据来 看,插件区已经成为仅次于安装使用区之后的第二大版块.于此同时也发现许多希望开发插 件的作者,有时候感觉插件开发很难上手,一定程度上也影响了插件的丰富性和多样性.特 此,写这样一篇文章,谈不上有什么教育意义,只是给那些希望开发插件的朋友一块敲门砖, 让更多的人成为一名插件作者,拿出你们的创意,让我们 Discuz! 论坛更加丰富多彩. 闲话少叙,书归正言,首先我们来介绍一些 Discuz! 插件从程序实现的方式,主要是分 两种: 第一种是利用已有的插件机制,这种机制官方有详细的开发文档,可以利用现有的一些 接口和函数,按照文档规定的文件以及目录结构,进行开发就可以了,这种方式是官方鼓励 的开发方式, 所开发的插件比较标准, 在后台可以轻松管理并导入导出, 利于插件的安装. 但 是这种方式需要插件作者看懂开发文档,严格按照开发文档做.个人感觉局限性相对而言比 较大,不过推荐新手可以试试这种方式,毕竟这种方式插件方便插件使用者安装,相对而言 比较利于插件的推广. 第二种就是我这篇文章可能要重点推荐的,我称它为自由方式,这种方式需要插件作者 对 Discuz! 程序相关接口和函数有一定了解.当然我会在下面的文章里面对一些常用函数做 一个简单介绍.这种方式的好处就是在编写程序时候比较自由,不需要像第一种那样需要放 在规定的目录中,给插件作者发挥的余地更大.还有,就是这样写出的程序更像论坛程序的 一部分,而不是一个插件,哈哈.不过这种方式编写的插件也有一定的缺陷,比如安装上面 相对第一种方式比较繁琐,如果需要管理后台,还需要自己来编写.不过这些对于大家来说 应该是小意思了吧,呵呵. 下面我一步一步来介绍自由方式编写插件的过程,以及一些常用的函数和其用法.先强 调一点,我这里所介绍的插件是有独立运行文件的,而不是那种只修改原文件. 首先介绍一个插件的组成,一个普通的插件不管是小型的还是大型的,一般都会有一个 主程序文件,作为 Discuz! 的插件,如果有独立页面一般会有模板文件.当然随着插件功能 增加可能还会有其他文件,比如后台管理文件,自定义函数文件等等.总的来说一个插件最 低限度要有一个主程序 PHP 文件,基本上都会有一个主程序文件和模板文件.高级一些插 件还会存在后台管理文件以及相关程序文件. 文件存放目录,一般主程序会放在论坛根目录下,这样比较规范而且方便插件前台调用. 模板目录一般放在 templates/default 目录下,这样即使更换风格也可以正常使用,因为 Discuz! 模板处理程序会有这样的一个机制, 如果生成模板缓存的时候, 当前模板目录下没有 需要的模板文件,会自动到默认模板目录下获取,如果还没有才会报错.所以作为插件的模 板最好放在默认模板目录下. 其他文件可以根据功能不同放在不同的目录下,比如说后台管理文件,一般会放在论坛 根目录 /admin 目录下,然后通过 admincp.php 里面调用,调用方法我会在后面说到.其他 的一些相关文件比如你用的一些 function 之类的东西,可以写成一个文件放在 include 目录网站:http://www.phpchina.com 投稿: 《PHPer》 27/96 代码分析:人人皆可做插件 CDiscuz! 插件开发讲解下,不过最好是单独建立一个目录放在里面,这样比较方便今后的拆卸. 最后还有一部分文件,就是你页面中可能会用到的图片文件,这些图片文件一般放在 images 目录下,至于放在那里在这里我们就没有严格的要求了. 说完了文件,下面简单介绍一下插件中对数据表的操作.对于插件而言实际上是不希望 对论坛的数据表进行修改的, 特别是论坛的几个主要数据表: members , posts , threads , 对这几个表如果修改的不恰当,很可能造成整个论坛系统性能的下降.通过给插件拆卸带来 不便,所以我们在制作插件时候尽量避免对上面三个数据表的结构进行修改.如果非要修改 尽量能单独建立数据表,然后通过 uid , pid , tid 进行数据关联,当使用的时候再调用. 退一步说如果非要在上述三个数据表里面添加字段,所添加的字段如果是字符类型必须 是定长字段,例如 char ,如果是数字类型根据数值范围不同,尽量用 tinyint , smallint , int ,这样尽可能不影响论坛效率.当然在实际使用中还有许多要注意的地方,鉴于文章的篇 幅有限这里不做太多详细的说明,有时间的话我会对插件数据库要注意的问题,单独写成文 档和大家一起讨论. 上面都是一些常识问题,下面我以一个以前我写过的插件为例子,具体对插件的编写, 以及一些 Discuz! 常用函数的使用做说明. 这个插件很简单,就是一个抽奖的插件,主要功能是根据会员的一些论坛资料,比如发 帖数,精华帖,在线时间,注册时间等计算出获奖几率,并获得一定数量指定积分.主要由 三部分文件组成,主程序文件: luck.php ,模板文件 templates/default/luck.htm 模板文件和 图片文件 images/default ,增加了一个数据表:cdb_luck. 下面我将 luck.php 和模板文件部分关键代码进行详解, 讲解前我先介绍几个必备的文件 和自定义函数. 首先是几乎在所有插件都要用到的文件 common.inc.php ,这个文件是 Discuz! 核心文 件,几乎所有的程序文件都会用到,这个文件主要是一些重要的变量进行初始化以及赋值, 调用常用的自定义函数,以及一些共用程序.并且在里面对用户登陆以及相关操作做了处理, 具体的代码这里就不详细分析了,大家可以到 www.discuz.net 上找到详解的文章. 其次就是几个自定义函数了: 1, function showmessage($message, $url_forward = '', $extra = '') 这个函数的主要作用就是返回提示信息,参数变量有三个: $memssage 要返回的提示信息,支持 $url_forward 返回提示信息后跳转的 $extra 其他参数,主要有两个 HALTED , NOPERM ,其中 NOPERM 是比较常用的, 是当一个用户没有权限时候,用这个参数会自动出现无权限页面以及要求登陆的界面. 这个函数使用还有一个小技巧,就是当 $memssage 包含&返回&这个字样的时候,无 需填写 $url_forward 变量,会自动返回上一页. 2, function submitcheck($var, $allowget = 0, $seccodecheck = 0, $secqaacheck = 0) 主要作用验证表单提交是否合作, Discuz! 系统中为了防止非法表单提交,所有的表单 提交页面都会有一个隐藏 input , name 为 formhash ,这个 hash 是根据一些用户资料经 过加密生成的,主要验证该用户的表单提交动作是否合作.这个函数在有表单提交的时候会 经常用到. 这个函数的参数变量有四个: $var 提交 submit 的 $allowget 这个表单是否允许 get 方式提交;网站:http://www.phpchina.com 投稿: 《PHPer》 28/96 代码分析:人人皆可做插件 CDiscuz! 插件开发讲解$seccodecheck 提交表单是否需要验证码; $secqaacheck 提交表单是否需要验证问题. 3, function template($file, $templateid = 0, $tpldir = '') 这个也是插件中比较常用的自定义函数之一,主要用户生成插件的模板,参数变量有三 个: $file 要生成模板的文件名(不包括扩展名)这个指的是上面所说的模板文件; $templateid 指定模板 ID , Discuz! 系统支持多套模板,每个模板都有对应的 ID ,这 里可以指定某套模板的 id 下面的某个模板文件,一般不需要填写; $tpldir 模板文件目录,这个一般情况下也不用填写. 因为 Discuz!的模板最终会编译成 PHP 文件,所以在用这个函数的时候,还需要引用一 下,一般用 PHP 中的 include 函数引用. 4, 严格说这个是一个 class ,主要用于一些数据库操作,比较多,这里就不一一描述 了,大家可以自己看 include/db_mysql.class.php 文件,简单说两个常用: $db-&query(& $sql& 执行某一特定的 SQL 语句,支持几乎所有的 MYSQL 常用语句. ) $db-&fetch_array($query) 将 SQL 语句的结果输出为数组,主要用于 SELECT 操作. 最后还要提一下一些在插件中可能用到的, Discuz! 系统中一些全局变量: $discuz_uid 用户 uid $discuz_user 用户名 $tablepre 数据表前缀 $timestamp 当前时间(时间戳形式) 说了这么多了,下面我们来看具体代码,我会把程序中每行代码做解释,希望大家能获 得一点启发吧 require_once './include/common.inc.php'; 这行代码就是前面说的 common.inc.php 这个系统核心文件的引用,几乎所有插件都会 用到. 代码如下:if(!$discuz_uid) { showmessage('not_loggedin', NULL, 'NOPERM'); }这段的含义是当程序发现访问者是游客时,自动会提示无权访问,请登陆的界面,在 Discuz! 里面是通过 common.inc.php 做处理,然后给 $discuz_uid 这个变量赋值,当这个变 量为空或者为 0 时,程序会认为这个访问者是游客,否则这个变量将被赋值为该会员的 uid .和这个变量类似的还有 $discuz_user 这个是用于显示会员用户名的,如果为空也说明 访问者为游客. 代码如下:$startdate = ''; //开始日期,填写格式
$enddate = ''; //结束日期,填写格式
$joincount = 30; //可以参与抽奖的次数 $getcredit = 1; //增加扩展积分 1~8 $mincredit = 1; //获得积分的最小值 $maxcredit = 100; //获得积分的最大值这段代码是一些程序里面用到的设置变量,如果你的插件有后台程序可以把这些变量放网站:http://www.phpchina.com 投稿: 《PHPer》 29/96 代码分析:人人皆可做插件 CDiscuz! 插件开发讲解到后台进行设置,然后写到数据库或者缓存为文件. 代码如下:if(empty($getcredit) || $getcredit & 1 || $getcredit & 8) { showmessage('积分设置有问题,请返回修改'); }这段代码也是一个提示类型的判断语句, 当不满足 if 里面的条件时, 就会跳到提示页面, 提示:积分设置有问题,请返回修改,大家注意这个的提示语言有&返回&的字样,这样我 们不需要在填写提示后返回的页面. Showmessage 会自动生成返回上一页的连接. 代码如下:$starttime = strtotime($startdate) + date('Z') - ($timeoffset * 3600); $endtime = strtotime($enddate) + date('Z') - ($timeoffset * 3600); if($startdate & $enddate) { showmessage('开始时间大于结束,请返回修改'); } elseif($timestamp & $starttime) { showmessage('活动还没开始,请返回'); } elseif($timestamp & $endtime) { showmessage('活动已经结束了', 'index.php'); }这段代码主要是对抽奖这个活动开始和结束时间做了计算,把标准时间格式转换为 UNIX 时间戳.并对开始结束时间和当前时间做比较,返回一些错误情况的提示信息. 代码如下:$query = $db-&query(&SELECT COUNT(uid) as joinnum, SUM(credits) as credits FROM {$tablepre}luck&); $total = $db-&fetch_array($query); $query = $db-&query(&SELECT count, credits FROM {$tablepre}luck WHERE uid='$discuz_uid'&); if($luck = $db-&fetch_array($query)) { $update = 1; } else { $update = 0; } $remaincount = $joincount - $luck['count']; $remaincount = $remaincount & 0 ? $remaincount : 0;从这段开始涉及到一些数据库的查询,以及根据查询情况进行一些变量的赋值.例如其 中的这句. 代码如下:$query = $db-&query(&SELECT COUNT(uid) as joinnum, SUM(credits) as credits FROM {$tablepre}luck&); $total = $db-&fetch_array($query);就是取一下当前抽奖活动参与的任务和送出的总奖金数,并将这个结果生成数组放到 $total 里面. 代码如下:if(!submitcheck('lucksubmit', 1)) { $query = $db-&query(&SELECT l.credits, l.uid, m.username FROM {$tablepre}luck l LEFT JOIN {$tablepre}members m ON m.uid=l.uid ORDER BY l.credits DESC LIMIT 0, 10&); while($top = $db-&fetch_array($query)) { $toplist[] = $ 网站:http://www.phpchina.com 投稿: 《PHPer》 30/96 代码分析:人人皆可做插件 CDiscuz! 插件开发讲解 } include template('luck'); } else { if($luck['count'] & $joincount) { $query = $db-&query(&SELECT regdate, posts, digestposts, oltime FROM {$tablepre}members WHERE uid='$discuz_uid'&); $member = $db-&fetch_array($query); $regday = intval(($timestamp - $member['regdate']) / 86400); $lucknum = ($member['digestposts'] * 15 + $member['post'] * 10 + $member['oltime'] * 5 + $regday * 5) / 100; $mostcredit = $lucknum & $maxcredit ? $maxcredit : intval($lucknum); $mostcredit = $mostcredit & $mincredit ? $mostcredit : $ $finalcredit = rand($mincredit, $mostcredit); $db-&query(&UPDATE {$tablepre}members SET extcredits$getcredit=extcredits$getcredit +'$finalcredit' WHERE uid='$discuz_uid'&); if($update) { $db-&query(&UPDATE {$tablepre}luck SET count=count+1, credits=credits+'$finalcredit' WHERE uid='$discuz_uid'&); } else { $db-&query(&INSERT INTO {$tablepre}luck (uid, count, credits) VALUES ('$discuz_uid', '1', '$finalcredit')&, 'UNBUFFERED'); } showmessage('恭喜你获得'.$finalcredit.$extcredits[$getcredit]['title'], 'luck.php'); } else { showmessage('每人只有'.$joincount.'次抽奖机会,做人不要太贪心啊!', dreferer()); } }这段代码比较长我们把它分为两部分讲解, else 前面为一部分,后面会一部分. else 前面的部分是当 !submitcheck('lucksubmit', 1) 这个条件不满足的时候,也就是说当用户没有 提交这个表单的时候,会进行一次数据库查询,并生成没有提交前的界面. 这段代码有两点要注意,第一点就是 include template('luck'); 前面一段,这段是从 cdb_luck 这个数据表中取得一些需要的数据,首先生成一个数组,然后再把这个数组,循环 写到 $toplist[] 这个数组中,最终形成了一个多维数组,这个数组会在下面的生成模板中生 成列表用,其中的 include template('luck'); 就是用 templates/default/luck.htm 这个模板生成页 面的语句. else 后面的部分主要是当用户点击提交按钮后,系统自动判断提交请求是否合法,当判 断确实合法后会通过一系列的计算,计算出该用户获得的分值,并写入对应的 member 数据 表中.并返回成功或者失败信息. 这个插件的 PHP 部分就讲完了,下面我来简单讲一下模板和数据库部分. 模板文件上面已经说过了,一般会放在 templates/default/ 目录下,这个插件也不例外. 插件的模板和论坛的模板是一样的,大部分都是由 html 代码组成的,这里我就不多讲了. 重点我要讲的时候模板中的一些 PHP 语法,了解 Discuz! 系统的人都知道模板在使用前会 经过论坛系统自带的一个模板处理函数进行编译,生成一个 PHP 文件,放在缓存目录下, 所以在 Discuz! 模板中就会有一些 PHP 的语法,不过这些语法都是一些比较简单的.在这 个插件里面就用带了一些,下面我和大家具体说说. 其中最常用的就是 if 语句,在模板中的写法是这样的: 代码如下:&!--{if 变量名称}--&显示模板&!--{else}--&显示模板&!--{/if}--&这个和 PHP 的 if 语法和用作是一样的,支持 else 和 elseif 这个是 Discuz! 模板中最网站:http://www.phpchina.com 投稿: 《PHPer》 31/96 代码分析:人人皆可做插件 CDiscuz! 插件开发讲解常用的一个,也是今后大家做插件模板中最常用到的. 第二个常用到的模板语句: loop ,书写格式如下 代码如下:&!--{loop 数组名称 key 值 元素名称}--&&!--{/loop}--&这个和 PHP 里面的 foreach 语法和作用是一样的, 主要用于在模板中配合一些 html 里 面的&tr&&li&之类的语句,生成一些列表样式的页面,比如上文中提到的 $toplist[] 数组,在 程序中被赋值后,在模板中通过 loop 循环配合&tr&&td&&/td&&/tr&就生成了一个排行榜的页 面.这个模板语句也是用得比较多的一个 当然模板中还可以用一些其他 PHP 的语句,例如 eval 等,特别要提的还有就是在每个 插件里面都会用到的 {template header} , {template footer} 这两个虽然没有对应的 PHP 语 句,不过对应的是前文提到的 template 这个论坛自定义函数,这个函数的作用主要是引用其 他模板,在这里主要引用的是,论坛的 header 和 footer 模板.同时这个语句还可以引用其 他模板,用法为 {template 模板文件名前缀} . 模板部分就说这么多了, 其实只要知道了这些, 一些专门做 html 不懂 PHP 的人稍加学 习也可以做 Discuz! 的模板了. 模板和文件说完了,最后来说说这个插件的数据库,前面已经说到了一些插件数据库的 基本要求,下面结合这个插件具体说说,首先在设计数据库的时候,要想明白这个数据库要 记录那些东西,这些东西是字符串类型还是数字类型,如果是字符串类型的最大长度是多少, 如果是数字类型的最大和最小值又是多少,那些字段是可以共用的. 结合这个插件我的数据库是这么设计,需要三个字段 uid 用于存放参与抽奖用户的 uid ,最大值和论坛用户表一致,为 mediumint(8) unsigned . count 参与抽奖的次数,一般 有 255 次就够了,所以设计成 tinyint(1) unsigned .最后一个就是 credits 获得积分,这个 也和论坛数据字段一致 int(10) unsigned ,字段设计好了,下面开始设计索引. 索引主要是为了让数据查询更快,尽可能少占用 mysql 资源,所以在设计时候首先要想 一下我们需要查询数据表里面那些数据,哪些是我们经常查的.以这个插件为例我们经常要 查的就是两个字段,一个是 uid 和 credits ,因为每次用户抽奖的时候我们都要查这个用户 参与了几次抽奖, 获得多少积分, 所以肯定要根据用户的 uid 进行查询, 所以首先我们将 uid 设计为主键, 同时还考虑到我们还要计算所有用户的总共获得的分数, 所以我们把 credits 设 置为索引,这样以来基本上就可以满足我们的需要了.当然索引的设计是一门学问,可能在 设计过程中还会遇到一些问题,比如联合索引,索引优化等等.但是只要你把你要查询的语 句想清楚,设计索引也不是一件很困难的事情. 关于索引设置的数量的问题,如果设置的数量过多,将会大大影响数据写入的速度,所 以在设计索引的时候还要想清楚,所设计的这个数据表写操作和读操作那个更多,如果写操 作比较频繁索引一定不要设置过多,否则会事倍功半的. 根据上面的这些东西,最终我设计成数据表导出 SQL 语句如下 代码如下:CREATE TABLE `cdb_luck` ( `uid` mediumint(8) unsigned NOT NULL, `count` tinyint(1) unsigned NOT NULL default '0', `credits` int(10) unsigned NOT NULL default '0', PRIMARY KEY (`uid`), KEY `credits` (`credits`) ) TYPE=MyISAM;到此为止,一个插件的所有内容就完成了,当然如果你是一个追求完美的人可能还要给网站:http://www.phpchina.com 投稿: 《PHPer》 32/96 代码分析:人人皆可做插件 CDiscuz! 插件开发讲解插件做上后台以及安装界面,接下来的时候就是来 www.discuz.net 的插件区发布了.怎么样 还不算很复杂吧,我这里只能从技术上告诉大家,至于你的插件能不能受到大家的喜爱还要 一个很重要的东西就是创意,别人能想到的东西你能想到,别人想不到的东西你也能想到, 这样你的插件才能受到大家的喜爱. 今天就谈到这里,如果你还有什么问题,可以到 www.discuz.net 上找我.希望所有人都 能做出让大家喜爱的插件,谢谢: ) (代码见附件 luck.rar )网站:http://www.phpchina.com投稿:《PHPer》 33/96 PHP 企业解决方案:Zend Platform 3 性能管理 C 综合管理 C 企业可扩展性PHP 企业解决方案Zend Platform 3 性能管理―综合管理―企业可扩展性翻译:haitao 您正在负责管理 PHP 应用吗?如果是的话,您应该需要关注性能,综合管理和扩展性 的问题,因为这些可能会引起应用缓慢,乏味的用户浏览体验,与现有设备整合程度低,扩 展性和稳定性方面的问题.这些问题很难被判断和修正,这就有可能造成客户流失,停机时 间和资源限制.Zend Platform 3 总览最完整的 PHP 运行环境解决方案具有如下特性: ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ 代码加速 动态内容缓存 压缩输出; PHP 稳定性智能监控 配置管理 API Web 服务 PHP 与 Java 的无缝结合 商业智能信息报告工具 SNMP traps 技术 具有高效模式的 Session 集群方案 Zend 下载服务器 具有离线处理的任务队列机制产品概述Zend Platform 是唯一为企业提供性能,综合管理与企业级可扩展性等需求的应用服务 器, 这些企业都使用 PHP 开发商业应用. 通过提供高效的流线型开发和}

我要回帖

更多关于 奥比岛的奇乐园在哪 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信