分类文档:编程 221篇

再谈泛域名解析
2009年06月25日 09:14

泛域名解析至少有2种方法可以实现。一种是服务器有独立的IP,则服务器不用做任何设置,只在域名管理面板增加*.abc.com的A记录,指向服务器的IP地址。如果A记录不能增加*的子域名,则在别名(CNAME)处增加,详细步骤请见http://www.auiou.com/relevant/00000432.jsp

另一种方法是不需要独立的IP,需要服务器中您的虚拟目录允许泛域名解析,在网站空间的管理面板设置,或者让空间服务商帮助修改Apache的httpd.conf文件,或者修改IIS设置。然后与上面同样的方法,添加*.abc.com的A记录,就实现了泛域名解析。……

固定链接 | 发表评论(8) | Trackback(2)

慎用全能空间,PHP空间使用IIS很慢,应使用Apache
2009年06月10日 19:25

国内的很多虚拟主机,支持PHP的空间目前有90%以上都是使用Windows主机。也有很多Windows主机支持全能空间,同时支持ASP,PHP,ASP.net等等。PHP空间使用IIS会很慢,应该使用Apache作为服务器程序,最好选用Linux系统,因为Windows系统+Apache虽然速度快,但可能不支持PHP的mail()函数,IIS也一定不支持.htaccess。

下列测试环境都是在Windows XP系统SP3/IE 6.0/3G CPU/1G内存的环境下,只做循环程序和文本输出测试,其它函数未测试。Windows+IIS+PHP和Windows+Apache+PHP的测试结果,分别如下:……

固定链接 | 发表评论(15) | Trackback(5)

这两年编写的全新程序
2009年06月09日 10:30

2008年,2009年这两年,我编写了很多全新的程序,以前从来没有过的结构。这些结构已经实现了高效率,将来在结构上基本上不用大调整。2008年几乎一整年,都是在编写行业网站的程序。2009年,重新编写了2套不同的全新的论坛程序,一个是多版块儿封闭论坛程序(发帖不需要审核),一个是单版块儿的公开论坛程序(发帖需要审核);重新编写了一套全新的多用户的博客程序;重新编写了一套全新的多版块留言板程序;重新编写了一套站内短消息程序;重新编写了注册/登录程序,用户资料管理程序,用户留言公共处理和判断的模块,相应的后台管理程序等等,都是使用PHP编写。

ufoaq是上述提到的单版块论坛程序。这个网站在今年4月底做了一个较大规模的全新开发,用集中开发的方式。最近做了两三次小规模的修正和开发,还有很多次的小修改,现在已经是一组比较完美的论坛程序。(ufoaq使用国外的服务器。)……

固定链接 | 发表评论(9) | Trackback(1)

关于站内短消息的程序的开发
2009年05月27日 20:53

这是我编写的站内短消息程序http://e.orshu.com/send/5001。

我在2007年开发完成了第一个站内短消息的程序,用于一个行业的网站,当时开发这个程序大约用了半个月。那个功能做得比较细,比如可以查找好友,添加/删除好友,好友列表调序,允许未注册用户发送短消息,信息回复,单条/全部删除信息,防止重复发送。……

固定链接 | 发表评论(15) | Trackback(0)

修正了自动发送邮件程序
2009年05月18日 22:26

我们的网站,用户在密码重置的时候,会自动发送临时的密码到用户的邮箱,如这里http://e.orshu.com/m/user/forget/。为了防止用户多次重置而频繁发送邮件,可以设定为15分钟之内只允许发送一次邮件。方法是记录用户上次密码重置的最后时间,PHP使用time()记录最后相对时间即可,ASP使用now记录最后时间。然后调用上次密码重置的最后时间,以变量$auf为例:

PHP算出时间差的方法:……

固定链接 | 发表评论(6) | Trackback(0)

ufoaq的论坛开发日记
2009年05月16日 23:25

2008年的时候,我用了一个多月的时间,从零编写,开发了一个论坛,与ufoaq的功能完全一样。当时开发用了很多的时间,是因为当时第一次编写用户帐号的注册程序,用户的数据库的字段琢磨了好久。一旦字段数量决定了,以后尽量不再改变,所以要花很多的心思去构思好。

我去年开发的论坛程序,是多版块程序,也就是可以增加无数个分版块,所以预留了一些数据库字段。那个论坛程序,增加一个新版块是比较容易的,只需在后台操作一下。而那个网站实际上只需要一个版块,后来也没有增加新版块。……

固定链接 | 发表评论(4) | Trackback(2)

记笔记是编程的好习惯
2009年05月02日 10:13

在打开多段数据的时候,对于分页的处理会复杂很多。通常情况下,只打开一段数据库,分页程序比较容易实现,如这里http://www.auiou.com/relevant/00000445.jsp

打开2段,或者3段以上的数据库,然后实现分页,就复杂很多了。2006年的时候,我大约用了3天,更多天的时间,实现打开2段,多段数据库的分页。在纸上演算分页后的结果,然后推算出当前页提取数据的条件语句和算式。2个月前,需要再次编写打开2段数据库的程序,看2年多以前的这段程序,已经看不懂了。因为当时是在纸上演算,根据数据的规律而写出算式。如果没有看到草稿纸上的数字,是根本不会知道算式为什么要这样写。我昨天用了几个小时,重新推算了一遍。虽然实现的结果一样,但是方法不一样,昨天推算了一个新方法。……

固定链接 | 发表评论(2) | Trackback(1)

程序调试时删除或屏蔽跳转页面语句
2009年04月30日 23:00

如果PHP程序中有错误,有时候后面的语句会接着往下运行,而不是运行到错误的地方停止(PHP程序中如果有严重的错误,会停止之后的程序)。如果在报错的后面有跳转页面语句如Header("Location: http://www.auiou.com");或Header("Location: auf.php");或Header("Location: $cg.php");,或者<meta http-equiv=refresh content=0;url=http://www.auiou.com>,往往会直接跳转,不会提示报错。

即使是有经验的老程序员,在程序调试当中,报错也是十分频繁的。比如少写一个大括号,少一个分号,运算符号误写,或者误增加其它字符,都会出现报错。或者因为程序的算法不恰当,出现报错。……

固定链接 | 发表评论(2) | Trackback(0)

我的PHP最佳编程工具是EmEditor
2009年04月14日 12:22

我从事了6年多的编程工作,在这之前做了将近2年的纯HTML+CSS的网页制作和设计。本博客很多次提到的EmEditor,是一款简洁实用的文本工具。对于PHP编程有十分好的支持,几乎到了完美。我的PHP首选编程工具是EmEditor,使用EmEditor做PHP编程,几乎不用再用其它的文本工具。对于PHP编程,EmEditor有这些优点:

  1. 查找功能十分好,在一个文件里,相同的关键词会用绿色高亮显示,这个功能对于编程来说是十分重要的。查找和替换功能,支持回车符,回车符用\n表示。
  2. 分割窗口。分割窗口的作用是可以不移动光标,而在另一个窗口查看同一个程序的其它“段落”,这个功能非常常用。EmEditor按F12,同一个文件文件可以分成4个窗口来看。我从来都没有需要使用4个窗口来看,2个窗口很常用。方法是按F12,然后把鼠标拖动到窗口的最下方,则以纵向的方式分割窗口;把鼠标拖动到窗口的最右方,则以横向的方式分割窗口。
  3. 在PHP程序里,如果网页使用UTF-8格式和语言,BOM(Unicode签名)有一些障碍,所以需要去掉BOM。这些障碍包括如果被include的文件中有BOM,会出现多余的空行;使用header()函数PHP程序会报错,解决方法如http://www.auiou.com/relevant/00000469.jsp。……

固定链接 | 发表评论(21) | Trackback(0)

回复一位网友:JSP如何编写RSS(xml)
2009年04月10日 18:38

创建一个扩展名为.jsp的文件,在这个.jsp文件中,开头写入如下这句,JSP文件格式即可转化为XML格式:

<%@page contentType="text/xml;charset=utf-8"%>……

固定链接 | 发表评论(2) | Trackback(0)

测试程序和服务器速度的简单方法
2009年04月09日 12:15

把<title>标题</title>写在网页较前的位置,在<title>标题</title>之前尽量不要加载数据库,也就是数据库的调用尽量写在<title>标题</title>之后。这样可以优先加载title,用户端也可以更快地看到网页标题。

如果加载title之后,网页也较快地加载,说明程序、服务器、网速都快;……

固定链接 | 发表评论(2) | Trackback(0)

静态页到动态页
2009年04月09日 11:23

去年和刘云天兄见面的时候,他谈起了我的博客程序。谈到我的博客页面是不是静态的,我说是动态的。博客的正文和评论,都是重新读取数据库。我从2000年底开始学做网页,2006年5月底完成了自己的第一个博客程序。这个博客程序是我正式走向全站动态页的开始,从静态走向全站动态,经历了5年半的时间。我从2001年的冬季开始学习ASP,2002年10月份才学会,在当时写了自己的第一个留言板程序,几个月后把留言板程序改为论坛程序。

在2006年5月以前,我的网页都是静态的扩展名.htm的网页。经历了这5年半的时间,静态页的维护很繁琐,那时候觉得工作量好大。虽然现在的动态页工作量也大,但是动态页可以根据需要自己建立管理后台,对数据进行处理,十分方便。静态页只要稍微有一点改动,很多相关的html页面都要修改,然后用FTP上传。动态页只要修改相关的数据即可。……

固定链接 | 发表评论(1) | Trackback(0)

无分别
2009年04月07日 18:18

在编程中,有经验的程序员,真正应用于一个项目的技术,不到所有的基本知识的千分之一。同样,在CSS中,也是这样,实际应用中,需要用到的知识不到千分之一。初期的程序员,学习基础知识,基本的原理,核心的技术。中期的程序员,学习和运用更复杂一些的技术。后期的老程序员,回归到最简单的原理,将这些最简单的原理累加起来,实现一个高效率的项目。技术就是这样的一回事儿,一切的努力都是为了实际的应用服务。

简单与复杂并无分别。……

固定链接 | 发表评论(3) | Trackback(0)

网页侧导航栏的位置
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个小时,TGF即将推出。TGF是一个封闭的小型社区,您可以自由创建一个小型的论坛(讨论组)。原先的初衷是可以用于朋友圈,以及专门话题的讨论组,或者亲友论坛,家庭论坛(家庭论坛已取消)。目前设定的是论坛新成员加入均需要审核,将来可以根据用户需要来设定论坛是否需要审核新成员。我感兴趣的《一的法则》中文论坛也将会建立,届时网友们将可以在这里谦卑地交流人生的课程。

基本的功能现在已经差不多完成了,目前还剩下删除功能、回收站、邀请码(认证码,无需审核即可加入成员)、短消息等没有完成,近期即将开通网站。论坛的管理模式如前面所提到的,民主,每个论坛默认状态为最多可设置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

在我已经知道的范围内,我编写的程序是希望用更简单的方法去实现。虽然已经是比较简便的方法,运行不会出错,在我贴出程序之后,得到了几位朋友的指正,他们的方法更加简便和高效,感谢朋友们的指正!在此做2点更正:

  1. http://www.auiou.com/relevant/00000425.jsp……

固定链接 | 发表评论(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)

1 2 3 4 5 6 7 8

首页 | 上一页 | 下一页 | 末页 (共8页)

王志勇:1980-09-26 (44周岁)
程序设计,前端设计。

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

与此相关的链接
自由勇专栏

Blog存档 Archives

2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +

2020年 +
2019年 +
2018年 +
2016年-2017年(9)
2014年06月-09月(10)
2013年 +
2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2024 auiou.com All rights reserved.
此Blog程序由王志勇编写