分类文档:编程 238篇网页侧导航栏的位置
2009年03月27日 09:01
如果网页使用了DIV+CSS结构,正文放在左边,侧导航栏放在右边,是更为理想的布局。因为在用户端浏览网页的时候,程序和HTML代码,都是从上到下加载。相应的DIV+CSS结构,也是从左到右读取。左边的内容,优先读取。
如果侧导航栏的内容不是很多,或者不考虑优先加载正文的因素,侧导航栏放在左右均可。……
固定链接 | 发表评论(17) | Trackback(0)
去掉UTF-8文件的BOM的方法
2009年03月25日 10:56
EmEditor软件,先打开任意一个PHP文件,按Alt+回车,选择“文件”的标签,在“打开时的字符码”,选择“UTF-8”,然后关闭EmEditor。
以后打开任何PHP文件,只要按Ctrl+S,或者Ctrl+E,就可以保存为UTF-8编码的无BOM文件,十分方便。
UltraEdit可以点击“文件→另存为”,格式选择“UTF-8无BOM”,英文网页每次都需要这个操作。否则,在按Ctrl+S时,会被保存为ANSI格式。中文网页,在第一次另存为之后,以后只要按Ctrl+S即可。……
固定链接 | 发表评论(4) | Trackback(3)
如何用PHP编写RSS
2009年03月25日 10:38
实例:http://www.zj7.com/feed/,实际路径:http://www.zj7.com/feed/index.php。创建一个扩展名为.php的文件,在这个.php文件中,开头写入如下这句,PHP文件格式即可转化为XML格式:
<?header("Content-type: text/xml; charset=utf-8");?>……
固定链接 | 发表评论(2) | Trackback(1)
我这样保存用户网址
2009年03月18日 11:25
例如用户发送的网址是http://www.auiou.com/,将它转化为www.auiou.com,去掉http://,以及最后的/。以PHP为例,可以这样做:
<?$url=stripslashes($_POST["url"]);……
固定链接 | 发表评论(5) | Trackback(1)
有关如何学习PHP
2009年03月11日 17:55
3天前有网友问我如何学习PHP,同时也给学习PHP的朋友一点参考。学习编程的方法,就是直接先去做。出现报错,可以查找原因,或在Google和Baidu搜索是否有同样的情况,在测试程序、开发中学习。习惯了,难度并不大。先学习文本数据库、MySQL数据库的写入、读取,这是最核心的部分。对于已经有编程经验的朋友,从原有语言转移到PHP,大约需要1周的时间就可以适应PHP编程。当然,这个时间也因为个人的各种习惯而有差别,不存在聪明与否的原因。在Google搜索“PHP 旧语言的函数”,或者搜索“PHP 要实现的功能或遇到的问题”,就可以找到相应的PHP函数。
没有编程经验的朋友,可以尝试查看别人的程序。事实上,别人的程序是很难读懂的。对于专业的程序员,也是往往很难完全读懂别人的程序,因为一些程序中不容易发现程序员的思路。……
固定链接 | 发表评论(7) | Trackback(0)
一步重装Apache+PHP
2009年03月11日 10:53
所需软件:
MiniApache(2.0.5.2版本,不是MiniApache for PHP这一款,因为这一款的PHP是PHP4);……
固定链接 | 发表评论(29) | Trackback(9)
近期的论坛开发日记
2009年03月02日 00:13
经过大约40天的论坛开发生活,平均每天编程8~10个小时,tgfor即将推出。tgfor是一个封闭的小型社区,您可以自由创建一个小型的论坛(讨论组)。原先的初衷是可以用于朋友圈,以及专门话题的讨论组,或者亲友论坛,家庭论坛(家庭论坛已取消)。目前设定的是论坛新成员加入均需要审核,将来可以根据用户需要来设定论坛是否需要审核新成员。我感兴趣的《一的法则》中文论坛也将会建立,届时网友们将可以在这里谦卑地交流人生的课程。
基本的功能现在已经差不多完成了,目前还剩下删除功能、回收站、邀请码(认证码,无需审核即可加入成员)、短消息等没有完成,近期即将开通网站。论坛的管理模式如前面所提到的,民主,每个论坛默认状态为最多可设置5名管理员,10名版主,10名贵宾,自愿申请,版主和贵宾谦卑和友好地为大家服务。版主和贵宾的管理权限是一样的,可以审核成员的加入,可以解除成员,可以删除违规帖。参与的用户,楼主可以删除回复中的违规帖。……
固定链接 | 发表评论(4) | Trackback(2)
我的分页方法分享
2009年02月25日 19:52
分页是程序永恒的主题,2002年的时候我曾经见过一个留言板的分页程序,但是很难读懂。于是我大约在2005年的时候做了一个很大的改进,推算了另一种简单易读的方法,目前我所有的分页程序都是用此方法,这个算法从来没有出过错,无论是ASP、ASP.net、PHP、JSP,还是CGI,都是可以通用的。例如博客或者论坛程序中,以PHP为例,用此程序可以计算出总页数$p、当前页的起始位置$w1的值和结束位置$w2的值,程序如下:
<?$pa=$_GET["page"]; //或者省略查询ID名$pa=$_SERVER['QUERY_STRING'];……
固定链接 | 发表评论(8) | Trackback(2)
检查程序的括号开始位置简法
2009年02月22日 12:48
如果一个程序有几十行、几百行,如果程序套用3层以上的大括号,检查某个大括号的开始位置,需要花费很多的时间。可以先在本地硬盘制作一个工具,将{替换为{←←!!!,将}替换为!!!→→},如下图:
……
固定链接 | 发表评论(2) | Trackback(0)
防止本地硬盘网页表单post的简便方法
2009年02月15日 22:37
用户发送的表单域中,例如PHP可以使用$_SERVER['HTTP_REFERER']判断post的来源,如果用户是通过本地硬盘的网页,则来源为False。例如编写:
$auf=$_SERVER['HTTP_REFERER'];……
固定链接 | 发表评论(5) | Trackback(1)
2点更正
2009年02月15日 11:26
固定链接 | 发表评论(0) | Trackback(0)
对比3款编程的文本工具
2009年02月11日 09:35
我用过的文本工具主要是EmEditor、EditPlus、UltraEdit这3款,最早不知道这些文本工具的时候我使用记事本,这3款文本工具的功能都比记事本强大、便捷许多。没有一款文本工具是完美的,总是各有各的优点和不足。
EmEditor:……
固定链接 | 发表评论(2) | Trackback(0)
PHP如何避免大片区域的echo
2009年02月09日 14:25
我很喜欢把输出的HTML代码或者文字部分,以直接输出的方式,而不是作为一个字符串使用echo输出。因为当有大片区域的HTML代码的时候,echo的程序写起来比较繁琐,可以简化为<?if (){?>HTML代码<?}?>的形式,这种形式有很大的灵活性,因为在这当中大片区域的HTML代码当中,还可以再包含PHP程序、Javascript等任何代码。例如:
<?if ($aa=="2")……
固定链接 | 发表评论(2) | Trackback(0)
UltraEdit如何自动换行
2009年02月08日 11:41
UltraEdit是一款功能强大的文本工具,可以用于编程。安装UltraEdit之后,默认的设置没有自动换行。设置的方法是,点击菜单栏的“高级→配置”,找到“编辑器→自动换行/制表符设置”,如下图的左边。然后,把“默认为每个文件启用自动换行”,如下图的画红圈部分,设置完成。
……
固定链接 | 发表评论(15) | Trackback(0)
Unicode和UTF-8,GB2312
2009年02月08日 08:35
一点拙见,如有不正确,欢迎指正,谢谢。
中文网站使用ANSI(GB2312)编码,是最理想的编码。因为ANSI编码,半角字符占用一个字节,全角字符占用2个字节。Unicode则是无论半角,还是全角,都占用2个字节。UTF-8编码,半角字符占用1个字节,全角字符占用3个字节,如这里做的对比:
http://www.auiou.com/relevant/00001188.jsp。
20楼和21楼的朋友说得很好。ANSI编码不支持韩国语字符,在ANSI编码下韩国语字符会转化成한국어的形式(한국어),一个韩国语字符在ANSI编码中需要占用8个字节,而一个韩国语字符在Unicode编码中占用2个字节,在UTF-8编码中占用3个字节。但愿如20楼朋友所说,希望UTF-16能够解决这一问题。……
固定链接 | 发表评论(2) | Trackback(1)
独立IP轻松实现完美的泛域名解析
2009年02月06日 13:36
如果你的网站有一个独立IP(假设是123.23.55.10),服务器无需任何设置,只要在域名管理和网站程序做一下设置。例如要给webshu.com做泛域名解析,方法是,1、在域名管理面板的A记录增加一个*(也就是*.webshu.com),我试了一下,即时生效。如果A记录不能增加*的子域名,则在别名(CNAME)处增加。2、网站程序里,ASP用Request.ServerVariables("server_name")获得地址栏的域名,PHP用$_SERVER['SERVER_NAME']获得地址栏的域名,然后ASP通过replace()或者mid()和Left()函数,PHP通过str_replace()或者substr()或者explode()来获得二级域名第一个“点”前面的值(假设是hhh)。例如访问http://namsa.webshu.com时,hhh的值是namsa。
需要注意的是,因为别名(CNAME)不能直接指向IP地址,可以用任何已经有的域名如wang.auiou.com来解析这个IP地址123.23.55.10,然后添加的别名*对应的地址是wang.auiou.com。……
固定链接 | 发表评论(5) | Trackback(3)
PHP的strpos()函数导致程序执行不正常解决一例
2009年02月01日 21:02
在注册程序,或者留言程序中,判别用户发送的数据中是否有非法的关键词,可以用strpos()函数。用法是strpos("abc", "b"),运行的结果是1。如果是strpos("abc", "a"),运行的结果是0;如果是strpos("abc", "d"),运行的结果是空。如下程序:
if (strpos($ga, $gb)!=0) {} 或者省略为……
固定链接 | 发表评论(5) | Trackback(1)
开始转向PHP
2009年02月01日 01:34
编了6年多的程序。过年的这几天开始正式学习PHP,经过这一个星期的练习,已经初步入门了,比想象中顺利很多,已经可以用PHP编写论坛、博客、网站程序,输出的HTML代码完全保持不变。学习一门新语言最好的方法,就是把以前写过的程序,翻译成这门新语言,绝大多数都有相对应的函数,在Google搜索“PHP 旧语言的函数”,或者搜索“PHP 要实现的功能或遇到的问题”,就可以找到相应的PHP函数。
这几天成功地把我以前写的一些程序,都翻译成了PHP,还用PHP写了一些新的程序。虽然PHP存在着很多的问题,比如substr()和array()等函数不能直接处理中文,不能直接调用中文的文件名,UTF-8编码的网页不能打开Unicode或者ANSI文本数据库,BOM经常会造成报错,等等。但是PHP的函数和数组果然很强大,也容易理解,调用起来也很方便,报错相对较少。如果PHP仅仅用来做英文网页,就不会出现那么多的问题。……
固定链接 | 发表评论(9) | Trackback(0)
郁闷的PHP字符串函数
2009年01月29日 12:49
PHP的substr()是一个十分重要的函数,可以实现对字符串的处理,例如截取字符串的某部分,如把IP地址220.181.20.58替换为220.181.*.*,需要用到substr()函数。让人郁闷的是,substr()不支持中文,会产生乱码。JavaScript的substr()函数和ASP的Mid()函数,无论是UTF-8还gb2312编码,都可以很好地直接支持中文。
另外如$pep="和平海底"; $auf=$pep[1];,$auf的结果是乱码,而不是“平”。如果使用数组array()函数如:$pep=array("和", "平", "海", "底"); $auf=$pep[1];,$auf的结果是仍然是乱码。……
固定链接 | 发表评论(4) | Trackback(0)
PHP的数字千分位增加逗号
2009年01月27日 19:05
固定链接 | 发表评论(6) | Trackback(1)
程序开发时间
2009年01月26日 07:31
如果已经设计好程序的思路,着手去开发的话,SNS封闭社区的核心程序的开发时间,至少大约需要1个月;BBS社区的核心程序开发,至少1个月;个人博客的核心程序开发,至少10天;多用户博客的核心程序开发,至少1个月。慢则几个月到几年的时间,因为设计程序的思路,需要一定的时间和经验。
程序搭建之后,可以根据需要,逐渐开发一些其它的功能。在很多应用上,比如社区、SNS、博客,有很多人建议使用开源程序,这的确节省了初期的很多开发时间和成本。但是,100%适合自己的程序,基本上是找不到的;其次,修改开源程序、增加新功能是十分困难的,对于专业的程序员来说也是很难实现的,因为需要深入了解程序的结构;第三,有不少开源程序都很占用服务器资源。与其花大的精力了解别人的程序结构,不如自己开发。做开发,则可以对自己的程序了如指掌,修改程序、增加新功能都容易了许多。虽然初期投入了一定的时间和成本,但是后期对于新功能的开发,则灵活、自主了很多,以及与网站的其它数据相连接,都更加便捷。……
固定链接 | 发表评论(5) | Trackback(1)
几个计划
2009年01月04日 20:37
有这几个任务,一直在考虑去实现,只是很需要时间。
- 编写网摘程序,开源共享,访问速度会和我的专栏一样快。就是类似于delicious、365key这样的收藏网址功能,但是此程序是放在您的博客网站中的,相当于封装在您的博客里的一个栏目。您可以创建很多的分类,比如普通的分类,精品文章分类,视频分享分类,等等。如果我有时间的话,我会编写ASP和PHP版。
- 建立一个新时代祈祷/进步/和平/自由/友好/友善/普世之爱、呼叫Confederation of Planets的网站,智慧来自这方面,这是课本里学不到的。经过再三考虑,这个计划放弃了。它十分地有益,有宗教/信仰的成份,还不能被老百姓接受。(我对宗教的了解很少,但是已经有一定的体验,宗教提供了很多的真理和信息,我很感激。宗教对科学,其实有很大的促进作用,它们是相辅相成的,比如佛教、基督教。)
- 曾想建立另外一个分博客,主题是与生命的意义的探索有关,在博客这里已经写了几十篇这类文章了。
……
固定链接 | 发表评论(11) | Trackback(0)
EmEditor 3.28和EditPlus 2.11的Bug
2008年11月22日 22:40
我使用的文本工具EmEditor版本是3.28,EditPlus 2.11的版本是v2.11,系统是WinXP SP2和SP3。最近发现它们都有相同的Bug,当一些文本文件中有“英、盈、影、映、莹、楼、搂、漏”等汉字时,整个文件的中文会变为乱码。实际上是当有这些汉字的时候,EmEditor和EditPlus会把原本ANSI格式(GB2312的编码)的文件,以UTF-8的形式打开,所以产生了乱码。用记事本打开文本文件,可以正常显示。
希望其它版本的EmEditor和EditPlus能解决这一Bug。……
固定链接 | 发表评论(5) | Trackback(0)
Ajax不运行解决一例:动态页的客户端网页缓存
2008年11月04日 12:54
在做注册程序验证码用户名是否可用、在线上传文件、删除文件、投票程序等不需要刷新网页即可出现结果的程序的时候,可能需要用到Ajax。其原理是JavaScript通过onChange、onClick、onMouseOut等事件取读网页当前的一些用户操作的数据,然后将这个数据传送给一个动态网页进行处理。
但有时候,这个动态网页并不运行。我以前曾遇到这个情况,当时解决了,就是给这个动态网页写入不缓存于客户端的语句。前天再次遇到这个情况,动态页有时运行,有时不运行。昨天试验了很多次,再次解决问题的时候,想起了以前曾遇到过这个情况。……
固定链接 | 发表评论(2) | Trackback(1)
友情链接的点击次数统计
2008年07月11日 13:02
我的Blog首页目前有73个友情链接,但从未统计过从我的Blog中点击出去的次数,感觉还是有点遗憾。在程序上实现,借助Ajax,已经测试成功了,
如这里的方案。实现的效果如下图:
……
固定链接 | 发表评论(24) | Trackback(0)
再次编写论坛程序中
2008年07月05日 11:08
我第一次编写的论坛程序,在2002年10月完成,直到2003年,程序进行了5次大调整,就是后来的Webshu网页论坛。那时候对程序是十分不熟悉、陌生的,效率很低。不管写什么程序,只要有连接数据库的,就感觉像是一个大工程。现在建立数据库,比以前自然轻松了很多,只要规划好就可以了。可见,以前看似很复杂的事,只要熟练了,习惯了,就没那么难了。
2004年~2005年这2年,我几乎没有为自己的网站写任何程序,因为这对我来说是人生职业选择的一个时期,当中也在为职业选择做很多其它的事情。2006年5月,我的Blog程序完成了,“和平海底”Blog开通了。Blog程序与新闻系统、论坛程序,都是一样的,所不同的是Blog程序增加了RSS和Trackback,仅仅是多了这两个功能。……
固定链接 | 发表评论(12) | Trackback(0)
网站计数器方案
2008年03月19日 08:33
网站计数器的统计方式有很多种,最常见的是刷新一次即增加一次,或者服务器记录多个用户的IP,在线的用户在一定的时间内刷新,计数器不会增加。我觉得这两种方式相对都比较消耗服务器资源一些,刷新一次即增加一次,服务器总是在频繁写入;记录多个用户的IP,同样也是让服务器频繁地写入。所以在2002年我设计和制作的网站计数器程序,只记录最后一位访问者的IP地址。这样的优点是减少服务器的负担,在线的某位用户刷新网页,计数器不会增加,只有其他的在线用户刷新网页,计数器记录的最后的IP地址才会改变。
但是这样的缺点是,如果总是一位访问者在访问某个网页,这个网页的访问次数总是不会改变,会让统计不准确。现在我设计了一个新的方案并测试成功,在记录最后一位访问者的IP地址的基础之上,再记录最后一位访问者的访问时间。如果IP地址没有改变,可以设定如果这位访问者在2分钟、5分钟或者15分钟、30分钟之后访问时,计数器会增加。当前的时间和最后访问时间做减法,如果差值大于1、大于4、大于14、大于29,或者IP地址不同时,则增加一。这样,可以在一定程度上提高大型网站的性能。……
固定链接 | 发表评论(6) | Trackback(0)
编程像潜水
2008年03月15日 18:14
如果只做编程,不做其它事情的话,我现在一天大约可以完成3~8个功能的程序设计和编写,包括大的程序段和小的程序段。这一个多月,每天都是以3~8个功能的这样的进度完成的。每当我把要完成的功能
计划出来,然后开始设计、开始去写的时候,很像是长长地吸了一口气,潜入水中。还没有动手写程序的时候,
每次总是有些恐惧,因为总觉得可能会有很大的工作量,程序失败的机率也是常常有的,这样不行就经常要换其它的方法和思路。
现在每天大约20~30分钟就可进入最佳工作状态,编程很需要集中注意力。如果注意力不集中的话,可能这项工作会越拖越久,那种感觉可以用恐怖来形容。每天看着“√”越来越多,实现的功能越来越多,心里总是感到一种凉爽。……
固定链接 | 发表评论(8) | Trackback(0)
写工作计划和日记
2008年03月10日 17:20
我现在养成了
写工作计划和日记的习惯。我的工作计划和日记主要是写给自己看,所以写起来很简单。一条工作计划或日记可能只有几个字,或者十几个字,或者几十字。在我的程序编写工作中,所有要完成的小细节、想到什么要实现的功能、要修改或增加的程序,就马上记下来,完成之后打勾。
这样写工作计划和日记很轻松,可以很清楚地让自己看到自己的工作状况和生活状况是处于哪一个阶段,能够看到自己的振动频率,减少焦虑。这种方式,很有助于工作的进展。……
固定链接 | 发表评论(6) | Trackback(0)
验证码对人工spam十分有效
2008年03月09日 23:07
与大家的Blog一样,我的Blog过去经常收到spam。在没有任何自动过滤、验证码的情况下,每天至少会收到10~30条,甚至更多。有的spam是用ping的方式,post处理程序正好能接收,所以不做过滤的话,一天可能会收到上百条spam。
我编写了几次程序,经过这样的一层一层过滤,已经大大减少了spam:Trackback的地址和评论的action地址用字母和数字混合、临时更改Trackback的文件名、临时更改评论的action地址、网址自动过滤、临时的验证码、自动验证码、自动封闭IP。……
固定链接 | 发表评论(6) | Trackback(1)
首页 | 上一页 | 下一页 | 末页 (共8页)