分类目录归档:Web开发

用PHP生成随机数(另附PHP随机函数)

通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度。

function randomkeys($length)
{
	$pattern = '1234567890abcdefghijklmnopqrstuvwxyz
                ABCDEFGHIJKLOMNOPQRSTUVWXYZ,./&l
                t;>?;#:@~[]{}-_=+)(*&^%$£"!';    //字符池
	for($i=0;$i<$length;$i++)
	{
		$key .= $pattern{mt_rand(0,35)};    //生成php随机数
	}
	return $key;
}
echo randomkeys(8);

这个php随机函数能生成XC*=z~7L这样的字符串,够随机!

现在介绍另一种用PHP生成随机数的方法:利用chr()函数,省去创建字符池的步骤。

function randomkeys($length)
{
	$output='';
	for ($a = 0; $a < $length; $a++) {
		$output .= chr(mt_rand(33, 126));    //生成php随机数
	}
	return $output;
}
echo randomkeys(8);

在第二个php随机函数里,先用mt_rand()生成一个介于33到126之间的php随机数,然后用chr()函数转化成字符。查看ascii码表就会发现,33到126代表的正是第一个函数中字符池里的所有字符。第二个函数和第一个函数功能相同,而且更简洁。

2008年8月8日——PHP4最后一次更新

 GoPHP5

2008年8月8日是什么日子?北京奥运会开幕!没错!但如果你是一位PHP的使用者,你还必须知道——那天是PHP4最后一次更新的日子。

去年12月,php社区已经宣布停止对PHP4的支持,不过这只意味着PHP4不会添加新的功能,而对安全问题的修复仍然会继续(即中版本号不变,停留在4.4,而小版本号会继续增加,现在已经发布到4.4.8)。如果不出意外的话,29天后,对PHP4的安全问题修复也将不再提供,社区将完全放弃对PHP4的支持。

如果你仍然在用PHP4进行开发,那么在2008年8月8日后,你可能就惨了。Ivo Jansch描述了一幅可怕的情景:

  • 如果在2个月的时间里,黑客发现了PHP4暴露出的bug该怎么办?
  • 如果他们编写蜘蛛在互联网上搜寻PHP4程序该怎么办?
  • 如果他们用恶意代码攻击这些网站该怎么办?
  • 如果真的没有任何补丁来修补这些漏洞该怎么办?
  • 你那时候该怎么办?(除了像个没头苍蝇一样到处乱撞)

黑客可能已经发现了某些可以利用的漏洞,而他们故意等到8月8日以后,PHP4不再发布安全补丁后才进行攻击,从而让影响最大化。

开源软件的作者们早就开始积极转向PHP5了,其中包括著名的PEAR, phpMyAdmin, Drupal, Gallery和Zen Cart等。目前在GoPHP5上登记的开源项目已超过100个,而且仍然在不断增加中。长远来看,越来越多的开源软件将放弃使用PHP4。对于使用开源程序架设网站的经营者来说,继续停留在PHP4上,意味着更窄的软件选择面和无法获得软件的最新版本。

So,赶快阅读PHP4转移到PHP5的文章,让你的主机服务商给你更换PHP5的主机。你只有29天的时间。

Nexen发布08年6月的PHP统计数据

Nexen发布08年6月的PHP统计数据,该统计的数据源于对三千万个域名的跟踪调查。

统计数据显示:

  • PHP5.2.6市场份额增长迅速(因为PHP5.3仍未发布)。
  • PHP5在整个PHP市场中的份额达到38.93%,上升2%。
  • 份额最高的PHP版本是PHP4.4,占到39%;其次为PHP5.2的30%,PHP4.3位居第三,占19%。
  • 中国市场的PHP占有率仅为17.16。
  • 在国内各省中,PHP占有率最高的是澳门,89.61%;其次是广州,53.92%;青海第三,46.67%。

查看详细的统计数据信息,请访问:http://www.nexen.net/chiffres_cles/phpversion/18519-php_statistics_for_june_2008.php

不要频繁更新网站的Google Sitemap

最近给自己的WordPress装了个自动生成Google Sitemap的插件。每次博客内容有更新时(比如写了新的日志),这个插件都会重新生成网站的Sitemap。

本以为这样会增加对Google抓取的友好度,可在查看Google的网站管理员工具时,却看到了这么一段话:

您最近提交了一或多个此网站的 Sitemap。处理 Sitemap 需花费一些时间。请稍后再确认您 Sitemap 的网页是否包含在 Google 索引中。

google sitemap

Google并没有立刻用Sitemap对网站进行深入抓取,而是持观望、等待态度。这与站长的期望完全不同。

Ven推测,对Google来说,抓取Sitemap是一件辛苦的工作,一个Sitemap里可能包行海量链接,进行一次完整的抓取十分消耗资源。对于频繁更新的Sitemap,Google必须先确认“哪个Sitemap是最终的Sitemap”,因此,Google在获得更新过的Sitemap后,必须等待一段时间,以确认该Sitemap是那个“最终的Sitemap”,然后才会开始抓取。

在专业SEO公司的报告中,也提到了该问题。

如果依据以往的经验,网站需要在每周至少有一篇到两篇文章的更新,使google的数据库库中保持有网站的最新数据的收录,而如何能让google第一时 间知道网站已经更新了呢,我们通常认为是更新sitemap文件,然后及时提交给google管理员界面,而经过测试,我们发现这样做的效果往往 是适得其反,测试的几个网站几乎在频繁更新后全军覆没,被google到入后十页的冷宫中长达三个月之久,而另外几个稳定不更新的网站反而排名不减,稳定 而持久。

资料来源: 上海圭臬网络科技有限公司

因此,Ven在这里建议,网站内容要持续更新,但Sitemap切不可频繁更新,希望引起SEOer的注意。

在XAMPP中开启Zend Optimizer

XAMPP中默认是安装了Zend Optimizer,但是默认并没有打开Zend Optimizer,要想打开Zend Optimizer,你必须将XAMPP中的以下两个文件:

  • \xampp\php\php.ini
  • \xampp\apache\bin\php.ini

中的zend_optimizer.enable_loader = 0改成1,重启Apache,Zend Optimizer就启动了。

Zend Optimizer