PHP在64位系统下的问题–由PR查询程序引出

0 ~o~

最近发现我的PR查询程序不能正确获取到PR值了,起初怀疑是国外空间的问题,于是把程序搬到了国内,放在绍兴电信的服务器上还是不行,于是拉到本地环境,神奇的是居然一切正常。
一行行注释掉代码,发现不同平台下URL HASH出来的值是不一样的。
通过百度、google搜索,想找一个可用的hash方法,结果都不行,全部是一样的代码,如下所示:

function HashURL($url){
$SEED = "Mining PageRank is AGAINST GOOGLE'S TERMS OF SERVICE. Yes, I'm talking to you, scammer.";
$Result = 0x01020345;
for ($i=0; $i> 23) & 0x1FF) | $Result << 9;
}
return sprintf("8%x", $Result);
}

经过不断调试,原来是以为运算在64位和32位系统下面有差异,32位系统下位移之后应该被cut掉的bit在64那里就活得好好的.
于是代码再改下:

function app_hash_url($url) {
$seed = "Mining PageRank is AGAINST GOOGLE'S TERMS OF SERVICE. Yes, I'm talking to you, scammer.";
$result = 0x01020345;
for ($i=0; $i> 23) & 0x1FF) | $result << 9;
}
if (PHP_INT_MAX != 2147483647) {
$result = -(~($result & 0xFFFFFFFF) + 1);
}
//$ch=sprintf('8%x', $result);
return sprintf("8%x", $result);
}

OK,结果终于正常了~~、
欢迎访问我的PR查询页面:
http://pr.imox.me

yum升级PHP到5.2

0 ~o~

原文如下写的挺好的 我就不重新写啦

失败的情况是:
首先参看系统的php版本
# rpm -qa |grep php
php-common-5.1.6-20.el5_2.1
php-cli-5.1.6-20.el5_2.1
php-5.1.6-20.el5_2.1
php-ldap-5.1.6-20.el5_2.1
然后看到此版本不是最新的用下面的命令升级
# yum -y update php
Loading “fastestmirror” plugin
Loading mirror speeds from cached hostfile
* base: centos.candishosting.com.cn
* updates: centos.candishosting.com.cn
* addons: centos.candishosting.com.cn
* extras: centos.candishosting.com.cn
Setting up update Process
Could not find update match for php
No Packages marked for Update
说没有可以升级的php版本,而官方的php都是最新的了,php是5.2.*的了 可是centos系统的还是5.1.
解决思路:是由于centos系统自带的源里面的php版本没有更新,需要额外的源才可以升级php和mysql
办法:更新系统的源,然后在升级就可以解决了。
#vi /etc/yum.repos.d/zongguofengcn.repo (原来没有这个文件的新建就可以了)
[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
保存此文件wq
再次运行下面的命令就可以完成php的升级了
#yum -y update php

PR查询图片输出PHP程序

6 feet


在线演示地址:http://pr.imox.me

本程序修改自网络上的源代码,修复了原本无法查询的问题,增加了11套图片,实现了在线调用的不同风格。

调用方法:

<a href="http://pr.imox.me" target="_blank"><img src="http://pr.imox.me/pr.php?s=1&u=imox.me" border="0" alt="Google PR" /></a>

说明:1、把imox.me换成你自己的域名;
    2、把/pr.php?s=1中的”1″改成相应图标的序号(如:2)就可以改变PageRank值的样式了,改为”0″则随机显示
阅读全部>>

您使用的是IE浏览器,请下载Chrome来获得更好的体验