1. 永远不要停止学习和阅读
阅读 书籍,而不只是网站
阅读 只为自我提升,而不是为了下一个项目
阅读 提升你的基础,而不只是最新技术
2. 跟比你聪明的人一起工作
跟比你更聪明的人或者是更有经验的人一起工作,可以让你快速提升
3. 变成一个全才
不要过于钻牛角尖,这可能会让你停滞不前和伤害你的就业前景。
4. 阅读并记录别人的代码
其实写代码比阅读并理解别人的代码要容易的多。
5. 在实际的项目中获取编程经验
只有在真实的项目中,各种压力下、真实善变的客户、不断变化的需求下,才能不断提升你的技能。
6. 教授别人编程技巧
这个可以强迫自己去理解不同水平的人的情况,而且你必须耐心的帮他们解释清楚,这对你本身而言也是一种提高。
7. 每年学习一种新的编程语言
用一年时间来学习一种新的编程语言,已经足够让你对它的基础了解透彻,同时你可以理解不同语言之间的风格。
8. 每年完成一个有意思的项目
每年做一个有意思的项目,不一定有什么用途,但一定是很有意思,让你非常有兴趣把它做得很棒。
9. 学习汇编语言
学习像汇编这样的低级语言可以让你了解计算机是如何工作的。
10. 与你的应用的客户交流获取信息
与最终用户交流可以知道他们的想法,他们是如何使用软件的,最终用户多数不是开发者,他们看到的是软件是一件神奇的工作,而你看到的软件是一套合乎逻辑的步骤。
11. 锻炼身体
身体是革命的本钱,只有好身体才能有好的工作、学习状态。
12. 练习快速打字
快速的键盘输入可以让编程工作更加高效。
[原于转载]
function subString_UTF8($str, $start, $lenth)
{
$len = strlen($str);
$r = array();
$n = 0;
$m = 0;
for($i = 0; $i < $len; $i++) {
$x = substr($str, $i, 1);
$a = base_convert(ord($x), 10, 2);
$a = substr(’00000000′.$a, -8);
if ($n < $start){
if (substr($a, 0, 1) == 0) {
}elseif (substr($a, 0, 3) == 110) {
$i += 1;
}elseif (substr($a, 0, 4) == 1110) {
$i += 2;
}
$n++;
}else{
if (substr($a, 0, 1) == 0) {
$r[ ] = substr($str, $i, 1);
}elseif (substr($a, 0, 3) == 110) {
$r[ ] = substr($str, $i, 2);
$i += 1;
}elseif (substr($a, 0, 4) == 1110) {
$r[ ] = substr($str, $i, 3);
$i += 2;
}else{
$r[ ] = ”;
}
if (++$m >= $lenth){
break;
}
}
}
$r = implode($r);//格式化数组;
return $r;
} // End subString_UTF8;
//测试代码:
$t = implode(subString_UTF8(‘这是测试一下中文字符串的截取!’,0,10));
贴吧刷屏刷楼刷回复代码如下
javascript:var c=rich_postor._getData();c.content='要刷的内容';for(var i=1;i<=12;i++){PostHandler.post(rich_postor._option.url,c,function(I){rich_postor.showAddResult(I)},function(I){});};void 0
使用方法:进入某个贴吧,点击进入一个帖子,在浏览器地址栏粘贴以上代码,将“要刷的内容”替换为你要发表的信息,然后enter回车
注意:本代码可以一次刷12楼,超过12次会被度娘提示歇歇再发,如果你不是该吧的会员,在需要输入验证码的情况下,本代码只能回复一条,使用本代码,有可能会被鹳狸猿盯上关小黑屋,所以请酌情使用,度娘不好惹,刷屏刷楼刷回复需谨慎
赠送一段自己改造的代码,很好玩的,跟上面是同样的运行方法:
javascript:var c=rich_postor._getData();for(var i=1;i<=12;i++){c.content=(i+2)+'楼烧饼,跟我抢'+(i+1)+'楼'; PostHandler.post(rich_postor._option.url,c,function(I){rich_postor.showAddResult(I)},function(I){});};void 0
想定制代码,请在下方留言
这是一个基于jquery的图片延迟载入插件,参考了,http://www.appelsiini.net/projects/lazyload,精简了代码,使代码更清晰。 使用方法: 1.首先使所有输出到前端的<img /> 标签的“src”属性改为“_src”(可以自己定义,需要配置), 防止img标签一开始就加载图片 2.在页面底部
<script type="text/javascript">
$(function(){ $('img').lazyload(); })
</script>
3. 配置参数
{
original : '_src', //保存img的图片地址的属性
placeholder : undefined, //图片载入中图标,即图片未载入时图片的占位符
threshold : 0, //未载入的图片距当前视窗的距离多少像素值时开始加载图片
effect : 'fadeIn', //图片显示效果
effectspeed : '300' //图片显示效果的速度
}
4.例如:$(‘img’).lazyload({placeholder:’http://caitupian.com/public/img/images/loading.gif’}); 5.下载地址: 源代码:high.lazyload.js 压缩版:high.lazyload.min.js 如有bug,欢迎指出。。。
Update to v1.2,finished build command
@license: This imageShown jQuery plug-in is dual licensed under the MIT and GPL licenses.
******************************************/
How to use:
$(‘elem’).imageShown({‘options’});
setter:
$(‘elem’).imageShown(‘option’,{‘options’});
$(‘elem’).imageShown(‘option’,'option’,'value’);
getter:
var option = $(‘elem’).imageShown(‘option’,'option name’);
$(‘elem’).imageShown(‘option’,{‘options’});
default options :
id: null, //used for getter, you needn't set this. navSpace: 47, pWidth: 0 , pHeight:0 , navNum: 4, navPlace: null, autoPlay: true, autoTime: 4000, events: 'mouseenter', tbgAnimate: true, tbgSpeed: 'fast', addtional:false, step: 1, scrollSpeed:'fast', opacity:0.6, data: null, loop: true, player: true, animate: 'fade',//left,right,top,bottom,fade,none //deepNav: false, showTips: true, tipsAnimate: 'fade',//fade,slide selected: 1, callback: null, preload: true, target: '_blank', pSpeed:500, pType: false, tContent:'image',//num,none,image,content listPlace:null, tipsBtn:false, loadClass: 'img-player-loading', pContent:'image
1.zend studio 9可以破解吗?
可以的,具体破解步骤查看:http://www.geekso.com/ZendStudio9-key/
2.如何将zend studio 9的默认GBK编码设置为其它编码,例如UTF-8?
选 择window菜单->Preferences->General->Workspace,在界面当中找到“Text file encoding” 选中Other,在下拉列表中选择UTF-8就可以了。这样所有的建立的项目将使用utf-8的编码。如果想某个项目使用其它编码,选中项目右键点击,在 菜单中选择Preferences,弹出窗口左侧选择“Resource”,在右侧当中找到“Text file encoding” 选中Other,在下拉列表中选择你要的编码就可以了。
3.为什么我创建的项目会自动生成一个index.php文件?
当你新建项目时选择“Local PHP Project”就会产生index.php文件。所以要想不产生index.php文件,新建项目时选择PHP Project from Exiting Directoryt。
4.Zend Studio写代码不能自动提示了?
具体解决方法点击查看:http://www.geekso.com/ZendStudioCodeAutocomplete/
5.项目中出现.svn,如何隐藏?
选 中项目右键点击,在出来的菜单中选择Build Path -> Configure Inclusion / Exclusion Filters… .在“Exclusion patterns:” 框中点击“Add…“按钮,输入**/.svn/ 点OK按钮再点Finish按钮。
6.代码格式化后发现显示格式不是我想要的,可以设置吗?
选择window菜单->Preferences->PHP->Code Style->Formatter。点左侧“Edit”按钮进行编辑。如果你懒的编辑,我也附上了我使用的格式,你可以导入我使用的代码格式。下载地址:formatter.rar (已下载 277 次)(记得下载后要解压)
7.zend studio9如何汉化?
选择Help菜单->Install New Software…在Work with框中复制此地址:http://archive.eclipse.org/technology/babel/update-site/R0.9.1/helios/, (提示:最后一个/线不能少)复制完地址后按回车键确认,这时会提示pending…(等待…),等侍完成后会出来很多语言列表让你选择,请选择 “Babel Language Packs in Chinese(Simplified)”简体中文包选择项,下一步选同意,再漫长的等待之后就汉化好了,提示重启zend studio。
8.如何选中整个行?
左键单击三次要选中的某一行,这样就选中整个行了。
9.zendstudio如何安装集成最新的svn插件?
选择Help菜单->Install New Software…在Work with中输入http://subclipse.tigris.org/update_1.8.x,等待完之后,除了Subclipse Integration for Mylyn 3.x (Optional)不要选之外,其它的都选上,下一步,完成。
10.zendstudio如何进行两个文件的比较?
选中你要比较的两个文件,右键点击,在弹出来的菜单中选取Compare With -> Each Other,这时会开启一个比较编辑器,就可以进行两个文件的比较了。(右上角的几个比较按钮自行测试它的功能)
11.新建PHP文件时怎么缺少后面的?>,如何补全?
选 择window菜单->Preferences->PHP->Code Style->Code Templates,在右测点Code,选择“Simple php file” 点“Edit…”进行编辑增加?>,这样新建文件时就有后面的?>。
12.zend studio9在线汉化没有成功,有汉化离线包没?
还是在线汉化吧,经测试离线汉化包有问题,已不提供了。
13.有zend studio9在线使用帮助教程吗?
在线使用教程地址:http://files.zend.com/help/Zend-Studio/zend-studio.htm
14.为什么html文件里面的内容格式化完都乱套了?
选 择window菜单->Preferences->Web->HTML FIles->Editor。把Line width设置长一些,可以设置成800(默认的是72)钩上“Clear all blank lines”选中Inline Elements里面的所有内容点击“Remove”全部删除,然后点OK按钮完成设置。
15.为什么我的PHP文件在打开方式中不能选择zend studio打开呢?
文件夹中*.php文件,无法指定用zend studio,右键选择打开方式,指定zend studio.exe打开也无反应。
打 开 “开始”——“运行”——输入“regedit”点回车——找到“HKEY_CLASSES_ROOT\Applications\zend studio.exe\shell\open1\command”,发现键值为:”C:\Program Files\Zend\Zend Studio 9.0.0\ZendStudio.exe” “%1″”,问题是这里,这个路径下的文件及文件夹已经删除,windows系统无法找到,所以无法添加,修改该键值为:”C:\Program Files\Zend\Zend Studio 9.0.2\ZendStudio.exe” “%1″”,(提示这个路径为你zendstudio安装所在的路径,所以要改成你安装zendstudio所在的路径)问题解决。
环境:
系统 Windows
Apache 2.2
加载Rewrite模块:
在conf目录下httpd.conf中找到
LoadModule rewrite_module modules/mod_rewrite.so
这句,去掉前边的注释符号“#”,或添加这句。
允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be “All”, “None”, or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All
在Windows系统下不能直接建立“.htaccess”文件,可以在命令行下使用“echo a> .htaccess”建立,然后使用记事本编辑。
Apache Rewrite模块的简单应用:
Rewrite的所有判断规则均基于Perl风格的正则表达式,通过以下基础示例能写出符合自己跳转需求的代码。
1、请求跳转
目的是如果请求为.jsp文件,则跳转至其它域名访问。
例如:访问www.clin003.com/a.php跳转至b.clin003.com/b.php网页,访问www.clin003.com/news/index.php跳转至b.clin003.com/news/index.php网页
注意:不是使用HTML技术中的meta或者javascript方式,因为www.clin003.com/a.php这个文件并不存在,用的是Apache2.2服务器中的Rewrite模块。
修改 .htaccess或apche的配置文件httpd.conf文件,添加以下内容
RewriteEngine on
#开启Rewrite模块
RewriteRule (.*).php$ http://b.clin003.com/$1.jsp [R=301,L,NC]
#截获所有.jsp请求,跳转到http://b.clin003.com/加上原来的请求再加上.php。R=301为301跳转,L为rewrite规则到此终止,NC为不区分大小写
2、域名跳转
如果请求为old.clin003.com下的所有URL,跳转至b.clin003.com
RewriteEngine on
#开启Rewrite模块
RewriteCond %{REMOTE_HOST} ^old.studenthome.cn$ [NC]
#针对host为old.clin003.com的主机做处理,^为开始字符,$为结尾字符
RewriteRule (.*) http://b.clin003.com/$1 [R=301,L,NC]
3、防盗链
如果本网站的图片不想让其它网站调用,可以在 .htaccess或者apche的配置文件httpd.conf文件中添加以下内容
RewriteEngine on
#开启Rewrite模块
RewriteCond %{HTTP_REFERER} !^$
#如果不是直接输入图片地址
RewriteCond %{HTTP_REFERER} !img.clin003.com$ [NC]
#且如果不是img.clin003.com所有子域名调用的
RewriteCond %{HTTP_REFERER} !img.clin003.com/(.*)$ [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !google.cn [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
RewriteRule (.*).(jpg|jpeg|jpe|gif|bmp|png|wma|mp3|wav|avi|mp4|flv|swf)$ http://clin003.com/err.jpg [R=301,L,NC]
#截获所有.jpg或.jpeg……请求,跳转到http://clin003.com/err.jpg提示错误的图片,注:该图片不能在原域名下,也不能在该.htaccess文件有效控制的文件夹中
4、不需要定义.htaccess文件
在Apache2confhttpd.conf 最后一行添加
RewriteEngine On
RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
重启Apache
登陆后台开启全伪
该插件主要图片加入鼠标经过后加上一点特效。
插件官方网站:http://jobyj.in/adipoli
使该插件是很简单的。
第一步:添加css文件与js文件
<link href=”css/adipoli.css” rel=”stylesheet” type=”text/css”/>
<script src=”js/jquery-1.7.1.js” type=”text/javascript”></script>
<script src=”js/jquery.adipoli.min.js” type=”text/javascript”></script>
第二步:给指定的选择器实例化该方法
<script>
$(‘#image1′).adipoli();
</script>
以下是带参数:
$(‘#image1′).adipoli({
’startEffect’ : ‘normal’,
’hoverEffect’ : ‘popout’
});
插件的使用参数:
Available Options:
Start Effects:
Hover Effects:
更多使用方法见官方。
【文档的一些节选+使用技巧】
路由功能,简单来说就是 URL 重写。
比如我们最初的地址是: http://qeephp.com/index.php?cont … on=show&name=qeephp
经过优化后就是:http://qeephp.com/projects/qeephp
第二个地址相比第一个,不但更短,而且更有意义。也更容易被人记忆,当然对于搜索引擎来说也很友好。
过去要实现这样的功能,我们要做几件事:
1、修改服务器设置,启用 URL 重写功能,例如 Apache 的 mod_rewrite
2、为网站添加重写规则,每一个要重写的 URL 都得添加一次规则
3、在应用程序中编写一个生成 URL 的助手类,并根据一个规则表来生成优化后的网址
麻烦的事情就是如果我们要调整一下 URL 的结构或者新增一些规则,就得改同时修改网站的重写规则配置文件、助手类。如果要重写的网址数量一多,维护起来就非常不方便了。要是换个运行环境,说不定还不支持 rewrite,或者需要修改所有的重写规则(例如 lighttpd 的规则就和 apache 不同)。
————————————–
为了解决这个问题,各种新一代的框架都提供了 URL 的路由功能。
URL 路由功能分为两部分:
1、URL 地址的解析
2、URL 地址的生成
URL 地址的解析
URL 解析是把诸如 http://qeephp.com/projects/qeephp 这样的地址解析为应用程序需要的参数,这样框架才能知道应该调用哪一个控制器来完成这个请求,并且把参数传递给控制器。
http://qeephp.com/projects/qeephp 这个地址在 qeephp.com 上解析后就是:
控制器: projects
动 作: show
参 数: name=qeephp
这样一来在 projects 控制器的 show 动作方法中就可以通过 name 参数判断用户是要查看哪一个开源项目的信息了。
为了能够解析 http://qeephp.com/projects/qeephp 这样的地址,我们需要在配置文件中添加一条规则:
复制代码
projects_show 是这个规则的名字,而 pattern 是规则匹配模式。匹配模式中的 :name 则是一个变量,而该变量通过 config 选项指定了比对规则为“[a-z0-9\-_]+”(name 参数的值只能是字母、数字下划线和横线)。
经过这样设置后,http://qeephp.com/projects/qeephp 这样的 URL 就能被正确解析了。
相对于在服务器配置文件中写重写规则,URL 路由提供的规则有几个好处:
1、不需要修改服务器设置的权限,我们只需要修改应用程序的配置文件
2、修改应用程序的设置就可以配置 URL 重写,因此不需要重新启动 Web Server 软件
3、比 Web Server 的重写规则更简单
URL 地址的生成
解决了 URL 的解析问题,还有 URL 的生成问题。
URL 路由提供的生成功能可以根据你提供的参数,自动匹配合适的规则,然后生成最终的 URL 地址。
例如:
复制代码
假如我们有多条规则,QeePHP 可以自动匹配出最合适那一条,然后生成对应的 URL 地址。
这种能力带来了下列好处:
1、我们再也不需要维护两个规则表了(一个用于解析,一个用于生成),一个规则表就搞定了一切
2、只需要修改规则表,就可以获得不同的 URL 地址,而不需要修改模板、程序中生成 url 的代码
3、只需要修改应用程序的设置,就可以让应用程序工作在不同的服务器环境中,适应各种情况
例如我们把前面的规则改为:
复制代码
生成的 URL 地址就会自动变成: http://qeephp.com/project-qeephp.html 这样的。
这种灵活性可以为网站的用户体验、SEO 带来很多便利。
########################### 华丽的分割线 ###########################
SEO 优化
一个网站运营一段时间后,栏目设置很可能发生变化,此时就有可能导致 URL 变化。而 URL 变化的最大问题就是导致以前的连接失效,对用户体验非常不好,而且也会影响搜索引擎对网站的收录。所以我们必须保证以前的 URL 不失效。
例如以前新闻页面的网址是 http://my.com/123456.html,而现在是 http://my.com/news/sports/123456.html。对于这种需求,我们利用 URL 路由可以轻松搞定。
先写两个规则:
复制代码
上述两条规则,放在前面的优先级更高。
当请求的 URL 是 http://my.com/123456.html 时,前面的规则匹配失败,而后面的规则匹配成功。因此请求送给了 news 控制器的 show 动作方法处理,并且附带 news_id 参数。
复制代码
这样就保证了原有 URL 的有效性。
那么当请求是 http://my.com/news/sports/123456.html 时,前面的规则就匹配成功,此时就不会再匹配后面的规则。而请求还是 actionShow() 来处理。前面的规则多了一个 category 参数,这里并没有用上,直接忽略即可。但这个参数是必不可少的,会用于后面的 URL 生成。
现在我们来看看模板中生成 URL 的代码:
复制代码
可以看到,这里我们生成 URL 时使用了 category 参数,因此前面的规则会被用于生成 URL。最终我们会得到类似http://my.com/news/cars/23343.html 这样的结果。
现在我们已经完美的解决了问题:既保证了以前 URL 的有效性,又让访问者在访问老页面后可以通过页面中的 URL 导航到新格式的 URL 中。
————————————–
URL 随心变
除了 SEO,URL 路由还可以让我们随心所欲的构造 URL 地址。例如 http://qeephp.com/cases/19 这个 URL 规则是:
复制代码
我们把规则改为:
复制代码
这时 URL 就变成 http://qeephp.com/mygod/show-me-the-money/news-sport-19.html 了。可以说和以前的 URL 简直是两码事。
而这些修改和变化,完全不需要我们修改应用程序中的代码和模板代码,唯一需要改动的就是路有规则表。
mixed unserialize ( string str [, string callback] )
unserialize() 对单一的已序列化的变量进行操作,将其转换回 PHP 的值。返回的是转换之后的值,可为 integer、float、string、array 或 object。如果传递的字符串不可解序列化,则返回 FALSE。
unserialize_callback_func 指令: 如果在解序列化的时候需要实例化一个未定义类,则可以设置回调函数以供调用(以免得到的是不完整的 object “__PHP_Incomplete_Class”)。可通过 php.ini、ini_set() 或 .htaccess 定义‘unserialize_callback_func’。每次实例化一个未定义类时它都会被调用。若要禁止这个特性,只需置空此设定。还需要注意的是 unserialize_callback_func 指令是从 PHP 4.2.0 开始提供使用的。
注: callback 参数是在 PHP 4.2.0 中添加的
若被解序列化的变量是一个对象,在成功地重新构造对象之后,PHP 会自动地试图去调用 __wakeup() 成员函数(如果存在的话)。
参见 serialize()。