2009年4月30日星期四

javascript时间显示 时分秒自动走


<script language="JavaScript">
<!--
function dateTime(){
var timer = new Date();
var hours = timer.getHours();
var minutes = timer.getMinutes();
var seconds = timer.getSeconds();
if (minutes<=9) minutes="0"+minutes;
if (seconds<=9) seconds="0"+seconds;
//change font size here to your desire
myclock="<font size='4' face='Arial' color=blue>"+hours+":"+minutes+":"+seconds+"</font>";
times.innerHTML=myclock;
setTimeout("dateTime()",1000);
}
//-->
</script>
<span id="times" ><script language=Javascript> dateTime()</script>
</span>

javascript时间显示 时分秒自动走


<script language="JavaScript">

<!--


function dateTime(){

var timer = new Date();

var hours = timer.getHours();

var minutes = timer.getMinutes();

var seconds = timer.getSeconds();


if (minutes<=9) minutes="0"+minutes;

if (seconds<=9) seconds="0"+seconds;

//change font size here to your desire

myclock="<font size='4' face='Arial' color=blue>"+hours+":"+minutes+":"+seconds+"</font>";


times.innerHTML=myclock;


setTimeout("dateTime()",1000);

}

//-->

</script>

<span id="times" ><script language=Javascript> dateTime()</script>

</span>


javascript时间显示 时分秒自动走

<script language="JavaScript">

<!--


function dateTime(){

var timer = new Date();

var hours = timer.getHours();

var minutes = timer.getMinutes();

var seconds = timer.getSeconds();


if (minutes<=9) minutes="0"+minutes;

if (seconds<=9) seconds="0"+seconds;

//change font size here to your desire

myclock="<font size='4' face='Arial' color=blue>"+hours+":"+minutes+":"+seconds+"</font>";


times.innerHTML=myclock;


setTimeout("dateTime()",1000);

}

//-->

</script>

<span id="times" ><script language=Javascript> dateTime()</script>

</span>

2009年4月8日星期三

中文的ASCII码范围是多少?


第一个字节 0x81-0xfe 第二个字节 0x40-0xfe
第一個位元組 0x81-0xfe 第二個位元組 0x40-0xfe

2009年3月12日星期四

你知道CAO、CBO、CCO、CEO是什么意思?

CAO:Art艺术总监
CBO:Business商务总监
CCO:Content内容总监
CDO:Development开发总监
CEO:Executive首席执行官
CFO:Finance财务总监
CGO:Gonverment政府关系
CHO:Humanresource人事总监
CIO:Information技术总监
CJO:Jet把营运指标都加一个或多个零使公司市值像火箭般上升的人
CKO:Knowledge知识总监
CLO:Labour工会主席
CMO:Marketing市场总监
CNO:Negotiation首席谈判代表
COO:Operation首席营运官
CPO:Publicrelation公关总监
CQO:Qualitycontrol质控总监
CRO:Research研究总监
CSO:Sales销售总监
CTO:Technology首席技术官
CUO:User客户总监
CVO:Valuation评估总监
CWO:Women妇联主席
CXO:什么都可以管的不管部部长
CYO:Yes什么都点头的老好人
CZO:现在排最后,等待接班的太子

系统启动,关机没有声音

我原来也出过这种情况,开关机/QQ网上视频无声,但在本机或网上听歌有声音,玩单机游戏也有声音.我开始也和你一样重装这又装那,还是不好,累了我1天.后来无意间看到个方法,于是解决了,妈的那方法还没被人评为最佳,日我找的那辛苦!
办法A:
   使用“windows优化大师”的恢复功能,“把文件系统的各项属性恢复为windows默认值”,重启系统后,开关机的声音恢复正常。注意下次优化时不要选中“优化windows声音和音频配置”这一项。

办法B:
   通过修改注册表来恢复开关机声音就更加简单。开始--运行--regedit,打开注册表编辑器,找到
HKEY_CURRENT_USER\Control Panel\Sound分支,把子键Beep的键值由“No”改为“yes”即可。

办法C:
   点击开始-运行,输入regedit,回车,这就打开了注册表,点几HKEY-CURRENT-USER,再点击其中的ControlPanel项,再击其下的Sound中的Beep将它的值由No改为Yes重启,是不是又听见久违了的开关机声音了

办法D:
   出现这样的问题是因为你的声音控制程序可能不小心被你删了,你就从别人的电脑C:\WINDOWS\system32这个文件夹里拷贝一个 叫 sndvol32.exe的文件放到你的system32里就可以了。然后在控制面板里选“声音和音频设备”,选中“把音量图标放入任务栏”。再刷新。

办法E:
  (我的问题)就是注册表少东西了,"开始"-"运行"-输 入"regedit"--HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32,右键点击Drivers32"新建-字符串值"名称为"wavemapper"再右键点它," 修改"-数值数据为msacm32.drv

OK了,最后说下,我是XP的,不晓得方法你能用吗?

2009-3-12我的问题使用了最后的一种方法解决。全部隐藏

2009年2月20日星期五

VirtualHost 设置

首先配置:http.conf

apache 2.2.8 在最下面添加:
Include "D:/WampServer/bin/apache/apache2.2.8/conf/zfarticle.conf"
上面的路径自己可以设置.

下面是配置文件 zfarticle.conf的设置:

<VirtualHost *:80>
<Directory "D:/ZendArticle/public/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ServerName zf.ostracking.com
ServerAlias zf.ostracking.com
DocumentRoot D:/ZendArticle/public/
ErrorDocument 404 /notfound.php
ErrorLog D:/WampServer/bin/apache/apache2.2.8/logs/zf.site_error.log
CustomLog D:/WampServer/bin/apache/apache2.2.8/logs/zf.site_access.log combined
</VirtualHost>

2009年2月10日星期二

纯真IP地址查询库

以下是PHP版本,有2个问题需要注意: 1. 每次加载QQWry.Dat文件对内存占用过大,不可接受。 2.由于IP和城市对应关系混乱,所以返回的为某具体地区,比如”复旦某宿舍”。

《纯真IP数据库格式详解》
链接一:http://blog.csdn.net/heiyeshuwu/archive/2006/05/12/725675.aspx
链接二:http://lumaqq.linuxsir.org/article/qqwry_format_detail.html
纯真IP数据库官网:http://www.cz88.net/ip/
纯真IP数据库下载:http://update.cz88.net/soft/qqwry.rar

以下函数conrvertip()位于 Discuz!5_GBK/upload/include/misc.func.php 路径中,有兴趣可以具体去阅读分析。(下面代码我做了简单的修改,更便于阅读,核心没有修改)


//===================================
//
// 功能:IP地址获取真实地址函数
// 参数:$ip - IP地址
// 作者:[Discuz!] (C) Comsenz Inc.
//
//===================================
function convertip($ip) {
//IP数据文件路径
$dat_path = 'QQWry.Dat';

//检查IP地址
if(!preg_match("/^d{1,3}.d{1,3}.d{1,3}.d{1,3}$/", $ip)) {
return 'IP Address Error';
}
//打开IP数据文件
if(!$fd = @fopen($dat_path, 'rb')){
return 'IP date file not exists or access denied';
}

//分解IP进行运算,得出整形数
$ip = explode('.', $ip);
$ipNum = $ip[0] * 16777216 + $ip[1] * 65536 + $ip[2] * 256 + $ip[3];

//获取IP数据索引开始和结束位置
$DataBegin = fread($fd, 4);
$DataEnd = fread($fd, 4);
$ipbegin = implode('', unpack('L', $DataBegin));
if($ipbegin < 0) $ipbegin += pow(2, 32);
$ipend = implode('', unpack('L', $DataEnd));
if($ipend < 0) $ipend += pow(2, 32);
$ipAllNum = ($ipend - $ipbegin) / 7 + 1;

$BeginNum = 0;
$EndNum = $ipAllNum;

//使用二分查找法从索引记录中搜索匹配的IP记录
while($ip1num>$ipNum || $ip2num<$ipNum) {
$Middle= intval(($EndNum + $BeginNum) / 2);

//偏移指针到索引位置读取4个字节
fseek($fd, $ipbegin + 7 * $Middle);
$ipData1 = fread($fd, 4);
if(strlen($ipData1) < 4) {
fclose($fd);
return 'System Error';
}
//提取出来的数据转换成长整形,如果数据是负数则加上2的32次幂
$ip1num = implode('', unpack('L', $ipData1));
if($ip1num < 0) $ip1num += pow(2, 32);

//提取的长整型数大于我们IP地址则修改结束位置进行下一次循环
if($ip1num > $ipNum) {
$EndNum = $Middle;
continue;
}

//取完上一个索引后取下一个索引
$DataSeek = fread($fd, 3);
if(strlen($DataSeek) < 3) {
fclose($fd);
return 'System Error';
}
$DataSeek = implode('', unpack('L', $DataSeek.chr(0)));
fseek($fd, $DataSeek);
$ipData2 = fread($fd, 4);
if(strlen($ipData2) < 4) {
fclose($fd);
return 'System Error';
}
$ip2num = implode('', unpack('L', $ipData2));
if($ip2num < 0) $ip2num += pow(2, 32);

//没找到提示未知
if($ip2num < $ipNum) {
if($Middle == $BeginNum) {
fclose($fd);
return 'Unknown';
}
$BeginNum = $Middle;
}
}


以下是Java版实现:

/**
* 给定一个ip国家地区记录的偏移,返回一个IPLocation结构
* @param offset 国家记录的起始偏移
* @return IPLocation对象
*/
private IPLocation getIPLocation(long offset) {
try {
// 跳过4字节ip
ipFile.seek(offset + 4);
// 读取第一个字节判断是否标志字节
byte b = ipFile.readByte();
if(b == REDIRECT_MODE_1) {
// 读取国家偏移
long countryOffset = readLong3();
// 跳转至偏移处
ipFile.seek(countryOffset);
// 再检查一次标志字节,因为这个时候这个地方仍然可能是个重定向
b = ipFile.readByte();
if(b == REDIRECT_MODE_2) {
loc.country = readString(readLong3());
ipFile.seek(countryOffset + 4);
} else
loc.country = readString(countryOffset);
// 读取地区标志
loc.area = readArea(ipFile.getFilePointer());
} else if(b == REDIRECT_MODE_2) {
loc.country = readString(readLong3());
loc.area = readArea(offset + 8);
} else {
loc.country = readString(ipFile.getFilePointer() - 1);
loc.area = readArea(ipFile.getFilePointer());
}
return loc;
} catch (IOException e) {
return null;
}
}

/**
* 从offset偏移开始解析后面的字节,读出一个地区名
* @param offset 地区记录的起始偏移
* @return 地区名字符串
* @throws IOException 地区名字符串
*/
private String readArea(long offset) throws IOException {
ipFile.seek(offset);
byte b = ipFile.readByte();
if(b == REDIRECT_MODE_1 || b == REDIRECT_MODE_2) {
long areaOffset = readLong3(offset + 1);
if(areaOffset == 0)
return LumaQQ.getString("unknown.area");
else
return readString(areaOffset);
} else
return readString(offset);
}

/**
* 从offset位置读取3个字节为一个long,因为java为big-endian格式,所以没办法
* 用了这么一个函数来做转换
* @param offset 整数的起始偏移
* @return 读取的long值,返回-1表示读取文件失败
*/
private long readLong3(long offset) {
long ret = 0;
try {
ipFile.seek(offset);
ipFile.readFully(b3);
ret |= (b3[0] & 0xFF);
ret |= ((b3[1] << 8) & 0xFF00);
ret |= ((b3[2] << 16) & 0xFF0000);
return ret;
} catch (IOException e) {
return -1;
}
}

/**
* 从当前位置读取3个字节转换成long
* @return 读取的long值,返回-1表示读取文件失败
*/
private long readLong3() {
long ret = 0;
try {
ipFile.readFully(b3);
ret |= (b3[0] & 0xFF);
ret |= ((b3[1] << 8) & 0xFF00);
ret |= ((b3[2] << 16) & 0xFF0000);
return ret;
} catch (IOException e) {
return -1;
}
}

/**
* 从offset偏移处读取一个以0结束的字符串
* @param offset 字符串起始偏移
* @return 读取的字符串,出错返回空字符串
*/
private String readString(long offset) {
try {
ipFile.seek(offset);
int i;
for(i = 0, buf[i] = ipFile.readByte(); buf[i] != 0; buf[++i] = ipFile.readByte());
if(i != 0)
return Utils.getString(buf, 0, i, "GBK");
} catch (IOException e) {
log.error(e.getMessage());
}
return "";
}

2009年2月8日星期日

php 简单 下载图片 程序


function getimg($remoteUrl, $savePath, $saveName){

$formats = array('.gif', '.jpg','.png','.bmp');
$extension = strrchr($remoteUrl, '.');
if(!in_array($extension, $formats)) return false;

$fileName = $savePath . $saveName . $extension;
$image = file_get_contents($remoteUrl);
$fp = @fopen($fileName, 'a');
fwrite($fp, $image);
fclose($fp);
return $fileName;
}