‘程序代码’ 分类的存档

JavaScript打字机效果
打字速度请修改代码中的

setTimeout('writeContent(false)',100);

数值,值越小,打字速度越快。
完整代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>打字机效果</title>
    <style type="text/css">
	body{
		font-family: Trebuchet MS, Lucida Sans Unicode, Arial, sans-serif;
		margin-top:0px;
		background-image:url('../../images/heading3.gif');
		background-repeat:no-repeat;
		padding-top:100px;
	}
    #myContent, #myContent blink{
        width:500px;
        height:200px;
        background:black;
        color: #00FF00;
        font-family:courier;
    }    
    blink{
        display:inline;
 
    }
    </style>
    <script type="text/javascript">
	/************************************************************************************************************
	(C) www.dhtmlgoodies.com, September 2005
 
	This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	
 
	Terms of use:
	You are free to use this script as long as the copyright message is kept intact. However, you may not
	redistribute, sell or repost it without our permission.
 
	Thank you!
 
	www.dhtmlgoodies.com
	Alf Magne Kalleland
 
	************************************************************************************************************/	
    var charIndex = -1;
    var stringLength = 0;
    var inputText;
    function writeContent(init){
    	if(init){
    		inputText = document.getElementById('contentToWrite').innerHTML;
    	}
        if(charIndex==-1){
            charIndex = 0;
            stringLength = inputText.length;
        }
        var initString = document.getElementById('myContent').innerHTML;
		initString = initString.replace(/<SPAN.*$/gi,"");
 
        var theChar = inputText.charAt(charIndex);
       	var nextFourChars = inputText.substr(charIndex,4);
       	if(nextFourChars=='<BR>' || nextFourChars=='<br>'){
       		theChar  = '<BR>';
       		charIndex+=3;
       	}
        initString = initString + theChar + "<SPAN id='blink'>_</SPAN>";
        document.getElementById('myContent').innerHTML = initString;
 
        charIndex = charIndex/1 +1;
		if(charIndex%2==1){
             document.getElementById('blink').style.display='none';
        }else{
             document.getElementById('blink').style.display='inline';
        }
 
        if(charIndex<=stringLength){
            setTimeout('writeContent(false)',100);
        }else{
        	blinkSpan();
        }  
    }
 
    var currentStyle = 'inline';
    function blinkSpan(){
    	if(currentStyle=='inline'){
    		currentStyle='none';
    	}else{
    		currentStyle='inline';
    	}
    	document.getElementById('blink').style.display = currentStyle;
    	setTimeout('blinkSpan()',500);
 
    }
    </script>
</head>
<body>
<div id="myContent">
</div>
<div id="contentToWrite" style="display:none">
<!-- Put the clang.com content here--><br>
telnet clang.com<br>
Login : username<br>
password : ******<br>
Access is granted<br>
<!-- End clang.com content -->
</div>
<script type="text/javascript">
writeContent(true);
</script>
</body>
</html>

2012年5月9日15:22 | 评论关闭
分类: 程序代码
标签: ,

一、在登录phpmyadmin管理数据库,会出现“配置文件现在需要一个短语密码”的警告
解决方法:
打开目录phpmyadmin/libraries中的config.default.php文件
查找下面这行:$cfg['blowfish_secret'],按下面方法修改:

1
$cfg['blowfish_secret'] = '这里就是需要的短语密码';  /* 短语密码请随意填写 */

原因:会出现这个问题,就是因为这段:$cfg['Servers'][$i]['auth_type'] = ‘cookie'
这里有四个值可供填写:cookie http HTTP config
config方式即输入phpmyadmin的访问网址即可直接进入,无需输入用户名和密码,是不安全的,不推荐使用。
cookie,http或HTTP时,登录phpmyadmin需要数据用户名和密码进行验证,
具体如下:PHP安装模式为Apache,可以使用http和cookie;PHP安装模式为CGI,可以使用cookie
通常这个值设置为cookie即可。
二、phpMyAdmin 高级功能未全部设置,部分功能不可用。要查出原因请点这里
解决方法:
1、在mysql中创建名为phpmyadmin的数据库。
2、将phpmyadmin安装目录下的examples/create_tables.sql导入这个数据库。
3、修改libraries中的config.default.php文件,内容如下(查找关键词并修改):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$cfg['Servers'][$i]['controluser'] = 'username';  /* 数据库用户名 */
$cfg['Servers'][$i]['controlpass'] = 'password';  /* 数据库密码 */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['recent'] = 'pma_recent';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';

保存上传到服务器,重新登录phpMyAdmin,搞定收工。

2012年5月1日19:15 | 评论关闭
分类: 程序代码
标签:

WordPress的每次请求都由缓存引擎处理。它会检查为这次请求准备的html是否还有效,如果有效,调用这个html,完事。Wordpress在进行任何操作前都会让缓存引擎过目,所以呢,用此插件之后,无任何插件参与,无数据库连接建立,无任何查询执行。

Hyper Cache 并没有完全脱离 WordPress,虽然它也会生成静态的页面(不是 HTML 网页,而是序列化后的二进制数据),但为了保证插件适用范围更广,Hyper Cache 仍然依赖于 WordPress 的插件机制,当有访问请求时,Hyper Cache 首先会检查是否生成了缓存,如果缓存存在,把二进制缓存数据反序列化并返回,否则生成缓存。

Hyper Cache插件的特点:

  • 全新缓存系统,特别适合那些对资源要求比较苛刻的主机(cpu和mysql)。
  • 与wp-pda插件兼容,该插件可使各种移动设备在一个广告优化的不同主题下访问你的Blog。
  • 可同时处理普通和gzip压缩页面,减少带宽要求并使页面载入更快。
  • 可在特定的间隔自动清除过期的缓存页面,减少空间占用。
  • 未找到”的请求,Wordpress重定向请求和Feed请求均可缓存。
  • 可很容易地翻译为其他语种,无需编译语言文件。

Hyper Cache插件安装:

  1. 进入wordpress后台,点击左侧菜单“插件”,再点击安装新插件,然后搜索插件hyper cache,点击搜索到的第一个“现在安装”,就完成插件的安装了,完成后,选择启用插件。
  2. 去wp-config.php文件中填上一行插件必备的(如上面所说,如果之前你用过WP Cache和WP Super Cache,你的wp-config.php文件中应该有这一行,那就不用填了;如果没有这行代码,请在<?php下添加):

define('WP_CACHE',true);

2012年4月30日21:58 | 评论关闭
分类: 程序代码

一直都在用wordpress的HTML编辑器,经常要添加链接,可是HTML编辑器里的添加链接按钮并没有“在另一窗口打开”这一选项。于是修改其js源码解决之。
方法如下:
打开wp-includes/js/quicktags.js,查找

查看代码 JAVASCRIPT
1
if(a){edButtons[c].tagStart='<a href="'+a+'">';

修改为:

查看代码 JAVASCRIPT
1
if(a){edButtons[c].tagStart='<a href="'+a+'" target="_blank">';

2011年7月3日21:36 | 评论关闭
分类: 程序代码
标签: ,

WordPress3.1版本发布有一段时间了。该版本不仅仅有自动保存历史版本的功能(通常都用不着,还会造成一些垃圾数据),还增加了一个自动保存草稿的功能。你每次点击”add new”时都会在post表中保存一条状态为“auto-draft”的后台不可见记录,同样会造成一些垃圾数据以及ID的不连续性。

为保证尽量减少数据库中的垃圾和保持日志ID的连续性,人们想了很多办法,各显神通。但大部分都是采用插件形式。插件形式仅仅能禁止日志的历史版本,却对自动插入的状态为”auto-draft”的记录无能为力。而且这种记录并不能在wordpress的后台看到。对于追求完美和有洁癖的人来说,这些记录实在是很烦人。

禁止自动生成 auto-draft 的不可见草稿:
在wp-admin/includes/post.php中,从第374行开始,有一个if判断,代码如下:

1
2
3
4
5
6
7
8
if ( $create_in_db ) {
                // Cleanup old auto-drafts more than 7 days old
                $old_posts = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_status = 'auto-draft' AND DATE_SUB( NOW(), INTERVAL 7 DAY ) > post_date" );
                foreach ( (array) $old_posts as $delete )
                        wp_delete_post( $delete, true ); // Force delete
                $post_id = wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-draft' ) );
                $post = get_post( $post_id );
} else {

解释一下这段代码的功能,首先,清除七天以前的自动草稿,然后插入一条新草稿,如果你继续写文章并发布,那么这条草稿就被使用了,包括在后台首页有一个快速发布,也用到了这个。但如果你仅仅是点击了new post(添加文章),接下来没有输入任何内容就跳到别的页面去了或关闭了,此时仍然会生成一个自动草稿,而这个草稿,是后台不可见的,是垃圾数据。

所以修改了一下代码,将这个if判断中的内容替换成以下内容,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
if ( $create_in_db ) {
        // modify by akii start
        global $current_user;
        $post_auto_draft = $wpdb->get_row( "SELECT * FROM $wpdb->posts WHERE post_status = 'auto-draft' AND post_author = $current_user->ID ORDER BY ID ASC LIMIT 1" );
        if ($post_auto_draft){
            $post = $post_auto_draft;
        } else {
            $post_id = wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-draft' ) );
            $post = get_post( $post_id );
        }
        // modify by akii end
} else {

原理及说明:当数据库中有一条或多条状态为”auto-draft”的自动草稿时,取ID最小的,新文章即使用此条记录。如果没有此种类型的数据,才会新插入一条数据。并且查询数据时是根据当前的用户来判断,不会出现多用户时出错。这样就可以避免了自动草稿(auto-draft)的冗余垃圾数据。保证了日志ID的连续性。但最后我要提醒一句,如果你在日志中添加了附件,如图片,那么该图片也会占用一条数据,即一个连续的ID,所以,如果你以ID形式,发现日志有时候不是连续的ID了,那么,有可能是你日志的附件占用了临近的ID。

2011年3月5日22:19 | 评论关闭
分类: 程序代码
标签:

WordPress一个让人很蛋疼的功能在编辑文章的时候默认自动保存草稿,这一点会造成服务器的负担加重,影响网页加载速度,另外,产生的草稿文件也会使数据库过于庞大,维护不便。还会使得文章ID不连续,让人头疼。
在以前的版本使用Disable Autosave插件就可以搞定,现在3.0.1下不好使了。
解决方法:在wp-config.php文件中加入

1
2
define('WP_POST_REVISIONS', false);
define('AUTOSAVE_INTERVAL',999999999);

这两行代码,然后编辑wp-admin/includes/post.php文件,在

1
if ( $create_in_db ) {

语句之前加入一行

1
$create_in_db = false;

搞定。

2010年8月23日22:57 | 评论关闭
分类: 程序代码
标签:

本来想把用C#写的程序重写移植到win32平台的,但是感觉重写好累,而且不是很熟练,就想着能不能在未安装.net的机器上运行,有需就有求,嘎嘎,百度了一会,已经有各位老大们已经在讨论用飞信的虚拟机平台来进行加载运行.net程序了,于是自己就想着去尝试着去做一下。
(PS:飞信的就是在.net平台上开发的,不同的是飞信做了一个.net虚拟机的平台,这样就能在非安装.net的机器上运行了)

由于启动文件要在win32上运行,所以就用了VC++6来进行写程序了,使用该启动程序来进行启动外部程序(我们的.net程序)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "stdafx.h"
 
int APIENTRY WinMain(HINSTANCE hInstance,
         HINSTANCE hPrevInstance,
         LPSTR lpCmdLine,
         int nCmdShow)
{
   //HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727
 
   HKEY hKey;
   LPCTSTR path="SOFTWARE\\Microsoft\\.NETFramework\\v2.0.50727";
   //打开注册表键,查看系统是否安装了.net Frameworkv2.0
 
   LONG lResult=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,path,0,KEY_READ,&hKey));
   ::RegCloseKey(hKey);
   if(!lResult==ERROR_SUCCESS)//若不是返回成功
   {
      WinExec("FetionVM.exe myapp.exe", SW_SHOW);
   }
   else
   {
      WinExec("myapp.exe",SW_SHOW);
   }
   return 0;
}

通过读取注册表看看有没有安装.net2.0(net3.5增加了新功能,核心还是2.0,所以2.0就足够运行了),如果有,就直接运行了,就不使用虚拟机加载了。
然后把飞信的一些东东“借”过来用了哈,文件在D:\Program Files\China Mobile\Fetion\VMDotNet\v2.0.50727(把这个目录下的文件全部考走)
然后把这些文件和release的exe放到一起。
这些工作完成后,就可以进行打包了
安装包文件10M左右,对比过去单个exe的80Kb来说是大了不少,不过这样对于一个不想装190多M的.net库的人来说,很值了

--------------------------------------------------------------------------------

飞信虚拟机运行.net 程序的方法在网上已经有很多文章了,就不再说了.
飞信虚拟机不太好支持数据库,这里就说一下让飞信虚拟机支持数据库的方法.
让飞信虚拟机支持使用Access的mdb数据库,即可以使用System.Data命名空间下的类和方法

需要使用以下6个dll.
1.System.Data.dll
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll
2.Microsoft.VC80.CRT.manifest
飞信安装目录可以找到(已经在虚拟机目录了,但还是要,具体原因就不知为什么了)
3.System.EnterpriseServices.dll
4.System.EnterpriseServices.Thunk.dll
5.System.EnterpriseServices.Wrapper.dll
在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\目录下
6.System.Transactions.dll
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Transactions.dll

这6个dll跟你的.net程序放一个目录就OK了.
比如说:
安装飞信2008后,找到安装目录,
留下 VMDotNet 目录 和 Fetion.exe ,其它全删除
你的程序改名为 FetionFx.exe ,相应的mdb数据库也复制过来.再把上面说的6个dll也复制过来.
双击Fetion.exe就可以运行你的程序了.

注:GdiPlus.dll(也可以拷到跟前面6个dll相同的目录,win2000缺少GDP+,有它才能运行)
飞信目录可以找到.
类似原因.在2000下运行,你可能还需要升级mdac.
net2.0需要的是mdac 2.6以后版本的.需2000自带的是mdac2.5版.
直接google.谷歌搜索mdac升级就可以找到一大把升级下载.

2010年6月11日16:40 | 评论关闭
分类: 程序代码
标签: , ,

在这段wordpress建站历程中,曾经遇到这样类似的错误提示:

Fatal error: Allowed memory size of 33554432 bytes exhausted …

出现错误怎么办呢?逅客百度Google找寻了下,大概意思就是提示wordpress内存不足。根据问题导致原因所不同,大概有这么几个解决办法。

一、如果是php.ini中限制的(前提是空间支持ini):
1、首先在public_html 目录创建文件 php.ini,添加以下代码:

1
memory_limit = 88M

然后在根目录下修改.htaccess文件,添加下面代码:

1
suPHP_ConfigPath /home/username/public_html/

2、同样是修改php.ini
先在网站根目录下,建立一个php.ini文件,写入下面这句:

1
memory_limit = 88M

接着再到网站根目录下修改.htaccess这个文件,写入下面这句:

1
SetEnv PHPRC /home/host1/public_html/usr1/

(unix path to the directory where php.ini is)
(keep the slashes)

二、如果是因为wordpress插件安装过多导致的。一般停用一些wordpress插件即可解决问题。如果不想停用插件,也可以采取放宽内存限制的方法:

1、修改WP配置文件。

编辑wp-config.php这个文件,在加上一句:

1
define('WP_MEMORY_LIMIT', '88M');

上面88M这个数字可根据情况修改为更大数值,比如168M。

2、打开wp-settings.php在第十三行找到如下语句:

1
define('WP_MEMORY_LIMIT', '32M')

将其中32修改为更大数值即可。

2010年5月7日22:09 | 评论关闭
分类: 程序代码

修改下列代码相应位置并保存为.vbs脚本

1
2
3
4
5
6
on error resume next 
set sysenv = CreateObject("WScript.Shell").Environment("user") 
'系统环境变量的数组对象Environment("user")或Environment("system")
sysenv.Remove("zm")        '删除变量zm
sysenv("zm")="%USERPROFILE%\桌面"       '添加变量zm
msgbox "添加成功!",64,"提示"

使用VBS脚本设置系统环境变量不重启

2010年5月6日19:16 | 评论关闭
分类: 程序代码
标签: ,

兼容IE7、IE8、FF等主流浏览器的多标签选项卡和滑动门菜单,基于CSS+JS技术实现,简洁漂亮,千万不要错过,用到一张背景图片,您可以自行下载到本地,本选项卡是大网站扒下的,而且好多网站都有用过,绝对值得收藏的一款点触式滑动门。
预览:
tab_biaoqianxuanxiangka.html
huadongmen.html
阅读全文...

2010年3月28日15:47 | 评论关闭
分类: 程序代码