当前位置: 编程技术>php
本页文章导读:
▪NOD32 v2.70.32 简体中文封装版 提供下载了
软件大小 11.8 MB 软件类别 汉化软件/病毒防治 运行环境 Win2003, WinXp, Win2000, Nt, WinMe, Win9x 授权方式 特别版 软件语言 简体中文 相关连接 www.nod32.com国外很权威的防病毒软件评测给.........
▪给php新手谈谈我的学习心得
明天开始期末考试,接着后天就要回福州了,由于家里还没装网络,因此,得有一段时间不能来论坛了,在这之前,我想了下,我给新手解答过问题,演示过代码,好像没谈过自己的学习心.........
▪Smarty+QUICKFORM小小演示
由于公司需要quickform结合SMARTY的开发模式,最近几天恶补了下,跟大家分享下心得吧,quickform是一个PEAR类库,可以快速生成表单控件及验证表单的JS代码,大家可能觉得这个用手写JS和HTML生.........
[1]NOD32 v2.70.32 简体中文封装版 提供下载了
来源: 互联网 发布时间: 2013-11-30
软件大小 11.8 MB
软件类别 汉化软件/病毒防治
运行环境 Win2003, WinXp, Win2000, Nt, WinMe, Win9x
授权方式 特别版
软件语言 简体中文
相关连接 www.nod32.com
国外很权威的防病毒软件评测给了NOD32很高的分数。在全球共获得超过40多个奖项,包括Virus Bulletin, PC Magazine, ICSA认证, Checkmark认证等, 更加是全球唯一通过26次VB100%测试的防毒软件,高据众产品之榜首!产品线很长,从DOS,Windows 9x/Me,Windows NT/XP/2000,到Novell Netware Server、Linux、BSD等,都有提供。可以对邮件进行实时监测,占用内存资源较少,清除病毒的速度效果都令人满意。
此 NOD32 封装版基于官方 2.70.32 标准版制作,此版本修改了一些默认设置参数,如:IMON 设置/POP3/对已检测的邮件作标记,由默认的“所有邮件”改为“仅感染邮件”。
http://crsky.com/soft/8798.html
[2]给php新手谈谈我的学习心得
来源: 互联网 发布时间: 2013-11-30
明天开始期末考试,接着后天就要回福州了,由于家里还没装网络,因此,得有一段时间不能来论坛了,在这之前,我想了下,我给新手解答过问题,演示过代码,好像没谈过自己的学习心得,临走之前,我就来谈谈我学习PHP的心得,虽然是老生长谈,但是我想我的情况还是具有代表性的,希望各位想加入PHPER队伍的新生力量能有所帮助。
大家学习PHP大部分都靠自学,我也不例外,不乏和我一样过去是做ASP的,刚看到PHP代码,我就感到奇怪,怎么里面这么多$啊?好奇怪啊,潜意识我觉得这东西肯定比ASP难多了,可是当我领略了PHP的神奇后(同样功能的ASP,PHP程序在我过去的C2古董机上一跑,肉眼都看看出速度的差别),我顿时被PHP的魅力吸引了(虽然现在在我的HP本本上是感觉不出差别了),同时吸引我的还有LAMP组合。于是,我的PHP学习历程开始了。。。。。。
呵呵,不知道大家学习PHP做的第一个功能是什么,我做PHP的第一个程序是接收一组表单数据,然后回显它们,成功后想到,如果是URL参数PHP怎么接受呢?查了手册,翻了书本,哦!用$_GET,也许许多从ASP过来的程序员一开始也会受ASP思路的影响,其实没有关系,一段时间就适应了,你也许会说,早知道不学ASP了,不会受影响,你错了,做久了你就会发现,过去积累的ASP经验在很大程度上帮助你更快的掌握了PHP,所谓一理通,百理明,程序都有相似,ASP可以说和PHP是很接近的,所以ASP程序员转PHP是很快的,有多快呢?下面再讲^_^,读到这里过去没学过ASP的,或者0基础的朋友可别不看了,什么?我这分明是写给过去做过ASP的人看的嘛,其实都一样,我强调的是学习的方法和思路,不管学什么语言,这都是最重要的。
嗯,你学会了基本语法,了解了内部函数,书本上的例子都能看懂了,肯定想试试自己的身手了吧?对,这是我强调的第一点,学习程序,就要不断写代码,这样是最快的学习方法,也是最有效的,可是忽然离开书本了,自己动手编,可能有种不知从哪开始的感觉,怎么办???我的方法是--站在巨人的肩膀上。优秀的代码永远是最好的学习工具,你建议先下个留言本看,WHY?留言本简单,且具备了一个完整系统所必须的全部条件。数据库,前后台。咱们就先从数据库部分开始,看他如何设计,分析它为什么这样设计,我能不能有更好的设计,明白了以后,看他如何和PHP交互,这里我建议大家最好学习些软件工程的知识,学会做系统分析,能划分系统模块,这样有助于大家独立设计系统。当你明白了原理之后,你就可以开始做程序,按照你想好的思路做,其中肯定会遇到种种困难,你要翻手册,找GOOGLE,问网友,甚至还有调试程序时的烦躁,但是请千万不要放弃,成功和失败只在一念之间,往前一步,或许你就成功了,退后一步,则肯定失败。当你克服了期间困难之后,你会发现通过做这个程序,你又学会了好多东西,经验得到积累,没错,你进步了。接着干什么,留言本是不够的,把它扩展成CMS试试,做成BBS试试,如果你的系统越做越大,那么恭喜你,你一定有希望成为优秀的PHPer!
这里当然还是要介绍下调试程序的技巧,记住,如果一段程序调试不过,先判断单词拼写,在判断语法,有没漏{};之类的,可以分段echo结果,缩小调试范围,特别是数据库交互的程序,先输出个SQL语句看看,对了,再分析怎么会插入/删除不成功呢,之类的。调试程序可能会占用编程很多的时间,我们当然还是要总结自己的调试经验。当然我自己有个习惯,上网的时候看到网站有些功能不错,我就想这是怎么实现的?我能做到码?于是我就自己动手试试,无论成功与否,我觉得都会有些帮助,有助于提高水平,我这人不喜欢老重复书中那些无聊的example,在自己的动手实践中学习,我觉得效率更高,且我享受那种代码成功实现的喜悦,这也是我学习的动力。当然作为程序员,必须时刻关注程序的发展,当你入门后,你就得考虑些高级应用,你如提高下程序效率,用下模板,AJAX什么得,要时刻关注业界得动态。
最后,谈下之前说的我从ASP转PHP花多长时间,也就是我学习PHP花多长时间,老实告诉大家,半年多,其中包括学习AJAX,smarty,XAJAX得时间。也许大家有疑问,怎么可能啊???忽悠人吧,不错,我是学PHP半年多,可是请大家注意,之前学习HTML,数据库,软件工程,ASP,我花了1年多,所以大家看看,其实学习编程是没有捷径的,我们能做的就是一步一个脚印,打好基础,提高水平,充实自己,最后祝各位新手学习愉快,都能成为优秀的PHPer,壮大中国的IT力量!^_^
大家学习PHP大部分都靠自学,我也不例外,不乏和我一样过去是做ASP的,刚看到PHP代码,我就感到奇怪,怎么里面这么多$啊?好奇怪啊,潜意识我觉得这东西肯定比ASP难多了,可是当我领略了PHP的神奇后(同样功能的ASP,PHP程序在我过去的C2古董机上一跑,肉眼都看看出速度的差别),我顿时被PHP的魅力吸引了(虽然现在在我的HP本本上是感觉不出差别了),同时吸引我的还有LAMP组合。于是,我的PHP学习历程开始了。。。。。。
呵呵,不知道大家学习PHP做的第一个功能是什么,我做PHP的第一个程序是接收一组表单数据,然后回显它们,成功后想到,如果是URL参数PHP怎么接受呢?查了手册,翻了书本,哦!用$_GET,也许许多从ASP过来的程序员一开始也会受ASP思路的影响,其实没有关系,一段时间就适应了,你也许会说,早知道不学ASP了,不会受影响,你错了,做久了你就会发现,过去积累的ASP经验在很大程度上帮助你更快的掌握了PHP,所谓一理通,百理明,程序都有相似,ASP可以说和PHP是很接近的,所以ASP程序员转PHP是很快的,有多快呢?下面再讲^_^,读到这里过去没学过ASP的,或者0基础的朋友可别不看了,什么?我这分明是写给过去做过ASP的人看的嘛,其实都一样,我强调的是学习的方法和思路,不管学什么语言,这都是最重要的。
嗯,你学会了基本语法,了解了内部函数,书本上的例子都能看懂了,肯定想试试自己的身手了吧?对,这是我强调的第一点,学习程序,就要不断写代码,这样是最快的学习方法,也是最有效的,可是忽然离开书本了,自己动手编,可能有种不知从哪开始的感觉,怎么办???我的方法是--站在巨人的肩膀上。优秀的代码永远是最好的学习工具,你建议先下个留言本看,WHY?留言本简单,且具备了一个完整系统所必须的全部条件。数据库,前后台。咱们就先从数据库部分开始,看他如何设计,分析它为什么这样设计,我能不能有更好的设计,明白了以后,看他如何和PHP交互,这里我建议大家最好学习些软件工程的知识,学会做系统分析,能划分系统模块,这样有助于大家独立设计系统。当你明白了原理之后,你就可以开始做程序,按照你想好的思路做,其中肯定会遇到种种困难,你要翻手册,找GOOGLE,问网友,甚至还有调试程序时的烦躁,但是请千万不要放弃,成功和失败只在一念之间,往前一步,或许你就成功了,退后一步,则肯定失败。当你克服了期间困难之后,你会发现通过做这个程序,你又学会了好多东西,经验得到积累,没错,你进步了。接着干什么,留言本是不够的,把它扩展成CMS试试,做成BBS试试,如果你的系统越做越大,那么恭喜你,你一定有希望成为优秀的PHPer!
这里当然还是要介绍下调试程序的技巧,记住,如果一段程序调试不过,先判断单词拼写,在判断语法,有没漏{};之类的,可以分段echo结果,缩小调试范围,特别是数据库交互的程序,先输出个SQL语句看看,对了,再分析怎么会插入/删除不成功呢,之类的。调试程序可能会占用编程很多的时间,我们当然还是要总结自己的调试经验。当然我自己有个习惯,上网的时候看到网站有些功能不错,我就想这是怎么实现的?我能做到码?于是我就自己动手试试,无论成功与否,我觉得都会有些帮助,有助于提高水平,我这人不喜欢老重复书中那些无聊的example,在自己的动手实践中学习,我觉得效率更高,且我享受那种代码成功实现的喜悦,这也是我学习的动力。当然作为程序员,必须时刻关注程序的发展,当你入门后,你就得考虑些高级应用,你如提高下程序效率,用下模板,AJAX什么得,要时刻关注业界得动态。
最后,谈下之前说的我从ASP转PHP花多长时间,也就是我学习PHP花多长时间,老实告诉大家,半年多,其中包括学习AJAX,smarty,XAJAX得时间。也许大家有疑问,怎么可能啊???忽悠人吧,不错,我是学PHP半年多,可是请大家注意,之前学习HTML,数据库,软件工程,ASP,我花了1年多,所以大家看看,其实学习编程是没有捷径的,我们能做的就是一步一个脚印,打好基础,提高水平,充实自己,最后祝各位新手学习愉快,都能成为优秀的PHPer,壮大中国的IT力量!^_^
[3]Smarty+QUICKFORM小小演示
来源: 互联网 发布时间: 2013-11-30
由于公司需要quickform结合SMARTY的开发模式,最近几天恶补了下,跟大家分享下心得吧,quickform是一个PEAR类库,可以快速生成表单控件及验证表单的JS代码,大家可能觉得这个用手写JS和HTML生成不是很快吗,用那个不是更麻烦,的确,少量的表单控件是显示不出quickform的优势的,但是如果有大量的表单控件,例如OA的后台,quickform的优势就显示出来了,利用quickform有代码清晰,易于维护等特点,非常适合大中型项目的开发,更方便的是可以在smarty中轻松使用它,^_^废话少说,来看看代码,不过大家之前最好了解下PEAR的安装,参照:http://hi.baidu.com/wanghaozi/blog/item/81cfb7003f973687e850cd3e.html。
由于公司用的quickform是自己改进过的,因此代码和大家网上看到的会有些差别,涉及版权在这里就不便说明,简要展示下核心代码,大家就当了解下吧,有兴趣的朋友可以看看这篇HAOHAPPY的文章:http://www.phpe.net/articles/418.shtml
[php]
<?php
/*
*作者:辉老大
*页面:path.cfg.php
*功能:系统路径设置
*版权所有:随便copy^_^
*/
$global['path']['conf'] = $global['path']['root'] . 'conf/';//定义系统配置文件路径
$global['path']['lib'] = $global['path']['root'] . 'lib/';//定义系统库文件路径
?>
[/php]
[php]
<?php
/*
*作者:辉老大
*页面:smarty.cfg.php
*功能:smarty基本配置
*版权所有:随便copy^_^
*/
//定义模板路径
$global['smarty']['template_dir'] = $global['path']['root'] . 'lib/smarty/templates';
//定义模板编译目录
$global['smarty']['compile_dir'] = $global['path']['root'] . 'lib/smarty/templates_c';
//定义smarty配置文件夹路径
$global['smarty']['config_dir'] = $global['path']['conf'] . 'lib/smarty/configs';
$global['smarty']['cache_dir'] = $global['path']['root'] . 'lib/smarty/cache';
//$global['smarty']['compile_check'] = true;
//设置smarty报错禁用
$global['smarty']['debugging'] = false;
//关闭缓存
$global['smarty']['caching'] = false;
//$global['smarty']['cache_lifetime'] = 6000;
//定义左右边界符
$global['smarty']['left_delimiter'] = '<{';
$global['smarty']['right_delimiter'] = '}>';
?>
[/php]
[php]
<?php
/*
*作者:辉老大
*页面:common.cfg.php
*功能:全局配置
*版权所有:随便copy^_^
*/
$global['path']['root'] = dirname(__FILE__) . '/';//设置根目录
require($global['path']['conf'] . 'conf/path.cfg.php');
require($global['path']['conf'] . 'smarty.cfg.php');
//包含smarty类库
require($global['path']['lib'] . 'smarty/libs/Smarty.class.php');
//smarty配置
$tpl = new Smarty();
$tpl->template_dir = $global['smarty']['template_dir'];
$tpl->compile_dir = $global['smarty']['compile_dir'];
$tpl->config_dir = $global['smarty']['config_dir'];
$tpl->debugging = $global['smarty']['debugging'];
$tpl->caching = $global['smarty']['caching'];
$tpl->cache_lifetime = $global['smarty']['cache_lifetime'];
$tpl->left_delimiter = $global['smarty']['left_delimiter'];
$tpl->right_delimiter = $global['smarty']['right_delimiter'];
unset($global['smarty']);
ini_set('include_path', ini_get('include_path') .
PATH_SEPARATOR . $global['path']['lib'] . 'pear/');//载入pear库文件
?>
[/php]
[php]
<?php
/*
*作者:辉老大
*页面:index.php
*功能:UI
*版权所有:随便copy^_^
*/
require_once('common.inc.php');//载入全局配置
//包含quickform类库
require($global['path']['lib'] . 'pear/HTML/QuickForm.php');
$form = new HTML_QuickForm('changepwdform');//生成quickform实例,参数为表单名
/*
*开始添加表单元素
*参数依次为:表单元素类型,名称,(按钮标签文字),样式
*/
$form->addElement('password','adminPwd','','');
$form->addElement('password','newPwd','','');
$form->addElement('password','newPwd2','','');
$form->addElement('submit','btnSubmit','修改密码','');
//增加验证规则,自动生成JS
$form->addRule('adminPwd','密码不能为空!','required','','client');
$form->addRule('newPwd','新密码不能为空!','required','','client');
$form->addRule('newPwd2','请再次输入新密码!','required','client');
$form->addRule(array('newPwd','newPwd2'),"两次输入的密码不一致!",'compare','','client');
$form->;//禁止提交表单
//分配表单数据到数组中
$tpl->assign('form_data',$form->toArray());
//显示模板
$tpl->display('index.tpl');
?>
[/php]
模板代码:
<HTML>
<HEAD>
<TITLE>quickform+smarty</TITLE>
<{if $form_data.javascrīpt}>
<{$form_data.javascrīpt}>
<{/if}>
</HEAD>
<BODY>
<p> </p>
<p> </p>
<p> </p>
<form <{$form_data.attributes}> >
<table width="300" border="0" align="center" cellpadding="3" cellspacing="3"
bgcolor="#F6F6F6" >
<tr bgcolor="#FFFFFF">
<td width="47%" colspan="2"><div align="center">修改管理员密码</div></tr>
<tr>
<tr>
<td width="47%"><div align="center">现有管理员密码
</div></td>
<td width="53%"><{$form_data.adminPwd.html}></td>
</tr>
<tr>
<td><div align="center">新密码
</div></td>
<td><{$form_data.newPwd.html}></td>
</tr>
<tr>
<td><div align="center">再次输入新密码
</div></td>
<td><{$form_data.newPwd2.html}></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<{$form_data.btnSubmit.html}>
</div></td>
</tr>
</table>
</form>
<scrīpt type="text/javascrīpt" src="/blog_article/response.js"></scrīpt>
</BODY>
</HTML>
这里大家也许觉得奇怪,为什么路径要定义这么复杂,而且使用绝对路径呢?这个是最近适应公司项目的需要,呵呵!其实这样有利于部署大的项目。这个帖子相信没接触过quickform或smarty的新手一定看的一头雾水,当然,我在这也只是简单介绍下,希望大家有兴趣的可以继续深入研究,最后看看效果:
看判断两次输入密码是否一样就这一句:
[php]
$form->addRule(array('newPwd','newPwd2'),"两次输入的密码不一致!",'compare','','client');
[/php]
代码看起来是不是简洁清楚啊,呵呵,接下来还会应用到再结合XAJAX的应用,我会继续和大家分享学习心得,嘿嘿!
由于公司用的quickform是自己改进过的,因此代码和大家网上看到的会有些差别,涉及版权在这里就不便说明,简要展示下核心代码,大家就当了解下吧,有兴趣的朋友可以看看这篇HAOHAPPY的文章:http://www.phpe.net/articles/418.shtml
[php]
<?php
/*
*作者:辉老大
*页面:path.cfg.php
*功能:系统路径设置
*版权所有:随便copy^_^
*/
$global['path']['conf'] = $global['path']['root'] . 'conf/';//定义系统配置文件路径
$global['path']['lib'] = $global['path']['root'] . 'lib/';//定义系统库文件路径
?>
[/php]
[php]
<?php
/*
*作者:辉老大
*页面:smarty.cfg.php
*功能:smarty基本配置
*版权所有:随便copy^_^
*/
//定义模板路径
$global['smarty']['template_dir'] = $global['path']['root'] . 'lib/smarty/templates';
//定义模板编译目录
$global['smarty']['compile_dir'] = $global['path']['root'] . 'lib/smarty/templates_c';
//定义smarty配置文件夹路径
$global['smarty']['config_dir'] = $global['path']['conf'] . 'lib/smarty/configs';
$global['smarty']['cache_dir'] = $global['path']['root'] . 'lib/smarty/cache';
//$global['smarty']['compile_check'] = true;
//设置smarty报错禁用
$global['smarty']['debugging'] = false;
//关闭缓存
$global['smarty']['caching'] = false;
//$global['smarty']['cache_lifetime'] = 6000;
//定义左右边界符
$global['smarty']['left_delimiter'] = '<{';
$global['smarty']['right_delimiter'] = '}>';
?>
[/php]
[php]
<?php
/*
*作者:辉老大
*页面:common.cfg.php
*功能:全局配置
*版权所有:随便copy^_^
*/
$global['path']['root'] = dirname(__FILE__) . '/';//设置根目录
require($global['path']['conf'] . 'conf/path.cfg.php');
require($global['path']['conf'] . 'smarty.cfg.php');
//包含smarty类库
require($global['path']['lib'] . 'smarty/libs/Smarty.class.php');
//smarty配置
$tpl = new Smarty();
$tpl->template_dir = $global['smarty']['template_dir'];
$tpl->compile_dir = $global['smarty']['compile_dir'];
$tpl->config_dir = $global['smarty']['config_dir'];
$tpl->debugging = $global['smarty']['debugging'];
$tpl->caching = $global['smarty']['caching'];
$tpl->cache_lifetime = $global['smarty']['cache_lifetime'];
$tpl->left_delimiter = $global['smarty']['left_delimiter'];
$tpl->right_delimiter = $global['smarty']['right_delimiter'];
unset($global['smarty']);
ini_set('include_path', ini_get('include_path') .
PATH_SEPARATOR . $global['path']['lib'] . 'pear/');//载入pear库文件
?>
[/php]
[php]
<?php
/*
*作者:辉老大
*页面:index.php
*功能:UI
*版权所有:随便copy^_^
*/
require_once('common.inc.php');//载入全局配置
//包含quickform类库
require($global['path']['lib'] . 'pear/HTML/QuickForm.php');
$form = new HTML_QuickForm('changepwdform');//生成quickform实例,参数为表单名
/*
*开始添加表单元素
*参数依次为:表单元素类型,名称,(按钮标签文字),样式
*/
$form->addElement('password','adminPwd','','');
$form->addElement('password','newPwd','','');
$form->addElement('password','newPwd2','','');
$form->addElement('submit','btnSubmit','修改密码','');
//增加验证规则,自动生成JS
$form->addRule('adminPwd','密码不能为空!','required','','client');
$form->addRule('newPwd','新密码不能为空!','required','','client');
$form->addRule('newPwd2','请再次输入新密码!','required','client');
$form->addRule(array('newPwd','newPwd2'),"两次输入的密码不一致!",'compare','','client');
$form->;//禁止提交表单
//分配表单数据到数组中
$tpl->assign('form_data',$form->toArray());
//显示模板
$tpl->display('index.tpl');
?>
[/php]
模板代码:
代码如下:
<HTML>
<HEAD>
<TITLE>quickform+smarty</TITLE>
<{if $form_data.javascrīpt}>
<{$form_data.javascrīpt}>
<{/if}>
</HEAD>
<BODY>
<p> </p>
<p> </p>
<p> </p>
<form <{$form_data.attributes}> >
<table width="300" border="0" align="center" cellpadding="3" cellspacing="3"
bgcolor="#F6F6F6" >
<tr bgcolor="#FFFFFF">
<td width="47%" colspan="2"><div align="center">修改管理员密码</div></tr>
<tr>
<tr>
<td width="47%"><div align="center">现有管理员密码
</div></td>
<td width="53%"><{$form_data.adminPwd.html}></td>
</tr>
<tr>
<td><div align="center">新密码
</div></td>
<td><{$form_data.newPwd.html}></td>
</tr>
<tr>
<td><div align="center">再次输入新密码
</div></td>
<td><{$form_data.newPwd2.html}></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<{$form_data.btnSubmit.html}>
</div></td>
</tr>
</table>
</form>
<scrīpt type="text/javascrīpt" src="/blog_article/response.js"></scrīpt>
</BODY>
</HTML>
这里大家也许觉得奇怪,为什么路径要定义这么复杂,而且使用绝对路径呢?这个是最近适应公司项目的需要,呵呵!其实这样有利于部署大的项目。这个帖子相信没接触过quickform或smarty的新手一定看的一头雾水,当然,我在这也只是简单介绍下,希望大家有兴趣的可以继续深入研究,最后看看效果:
看判断两次输入密码是否一样就这一句:
[php]
$form->addRule(array('newPwd','newPwd2'),"两次输入的密码不一致!",'compare','','client');
[/php]
代码看起来是不是简洁清楚啊,呵呵,接下来还会应用到再结合XAJAX的应用,我会继续和大家分享学习心得,嘿嘿!
最新技术文章: