用PHP得到访问者的真实IP

在php中,通常我们用$_SERVER[‘REMOTE_ADDR’]得到访问者的ip。但当访问者使用了代理,它只能得到代理的ip。这时使用下面的函数就能得到访问者的真实ip:

function getRealIpAddr(){
  if (!empty($_SERVER['HTTP_CLIENT_IP'])){//check ip from share internet
    $ip=$_SERVER['HTTP_CLIENT_IP'];
  }
  elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){//to check ip is pass from proxy
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
  }else{
    $ip=$_SERVER['REMOTE_ADDR'];
  }
  return $ip;
}

事实上这个函数也不是万能,众所周知,头信息是可以伪造的。

在不同的浏览器上测试你的网页设计

Browsershots是一个在线截屏网站,输入你的网址,她会为你对该网站进行截屏。这样的网站也不稀奇,过去冰古也介绍过。但该网站包含的服务可能让你感到惊奇,Linux,Windows,Mac OS和BSD平台下共达59种浏览器可选,并且你可以定制“屏幕大小”,“颜色深度”,“JavaScript的开启”,“Java的开启”和“Flash的开启”。更为BT的是,这个服务你甚至可以利用她的API在你的机上架设同样的服务。

bingu.net在seamonkey 2.0 ubuntu 8.04上:
seamonky 2.0 ubuntu 8.04
bingu.net在safari 3.1 macOS X10.4上:
safari 3.1 mac os x 10.4
bingu.net在navigator 9.0.0.5 windows 2000上:
navigator 9.0.0.5 windows 2000

免费的photoshop网页设计教程

免费photoshop网页设计教程
这个活动已经结束,但我在网上找到了下载链接,别在留EMAIL找我要啦,点击下面的链接下载吧:
下载链接:ul.to

sitepoint.com限时免费派发The Photoshop Anthology: 101 Web
Design Tips, Tricks & Techniques.
(pdf格式)!对了,这个活动将在2008-6-13结束,要下就快下了。

这个是完整版,不是通常只能下的样板。正如书名描述的那样,她包含了用Photoshop进行网页设计方面的入门知识。共9章,295页。
章节简介:
Chapter 1: Getting Started with Photoshop
If you’re brand new to Photoshop, come here to learn about how to get around. If
you’re not brand new, you may still enjoy the time-saving tips included in these pages.

Chapter 2: Basic Skills
Build a good foundation for your use of Photoshop with these basic skills, including
resizing, rotating, and hiding parts of your picture.

Chapter 3: Creating Buttons
Make buttons of every shape and style by following the solutions in this chapter.

Chapter 4: Creating Backgrounds
Create tiling backgrounds that you can use in design elements such as headings and
menu bars, or even the page background itself!

Chapter 5: Working with Text
Learn to adjust type settings and make cool text effects for your next logo or web graphic.

Chapter 6: Adjusting Images
Fix, salvage, and adjust photographs that are over-exposed, under-exposed, or just
dull-looking. Or, take a good photograph and make it look even better!

Chapter 7: Manipulating Images
Start with a photograph or image and add your own effects such as scanlines,
refections, and more!

Chapter 8: Designing a Web Site
Bringing all the skills from previous chapters together, this chapter shows you how
to create web design mockups in Photoshop, then generate web-optimized images.

Chapter 9: Advanced Photoshop Techniques
Automate and animate! This chapter shows you how to save time when performing
similar tasks on many different fles, then shows you how to use Photoshop and
ImageReady to create animations.

加速wordpress的想法

是的,wordpress的确跑的不太快。最近在做这个模板的时候,顺便也产生了一些加速wordpress的想法。效果可能不太明显,但也能起到一定的作用吧。

plugin-hog-detector
从上图可以看到,在End Header中使用的时间几乎是90%。

wordpress-plugin-hog-detector
从这张中可以看到,End Header中花费的时间仍旧不少,但只能占到50%左右。而End Footer中占用了一大部分的时间。第一张图是本地没有使用插件时生成的,第二张是冰古blog使用了25个插件时生成的。由两张图片可以大致得出End Header和loop是wordpress默认任务使用的时间,而End Footer是插件花销的时间。

以上只是说明了一个几乎是众所周知的事实:wordpress真的跑不快,默认任务已经要大部分的时间来跑了,而插件是另一个让wordpress跑的慢的原因。

以下就是我加速wordpress的想法:
1. 不要定制性。怎样是不要定制性呢?打开你的wordpress,然后查看源代码,你可以看到类似这样的代码:

<!-- Added By Democracy Plugin. -->
<script type='text/javascript' src='http://bingu.net/wp-content/plugins/democracy/democracy.js'></script>
<link rel='stylesheet' href='http://bingu.net/wp-content/plugins/democracy/basic.css' type='text/css' />
<link rel='stylesheet' href='http://bingu.net/wp-content/plugins/democracy/style.css' type='text/css' />

这个是Democracy插件利用wp_head()添加的,你大可以将上面的代码直接复制到你的模板中(我这里是举例,你不会真的把上面的代码加到你的模板中吧 😆 ),然后修改这个插件的代码,找到类似这样的代码:

add_action('wp_head', 'jal_add_js');

将它屏蔽掉:

//add_action('wp_head', 'jal_add_js');

打开模板的header.php,你看到的可能是这样的:

<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>

<head profile="http://gmpg.org/xfn/11">
	<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />

	<title><?php bloginfo('name'); ?><?php wp_title(); ?></title>

	<style type="text/css" media="screen">
		@import url( <?php bloginfo('stylesheet_url'); ?> );
	</style>

	<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>" />
	<link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>" />
	<link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="<?php bloginfo('atom_url'); ?>" />

	<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
	<?php wp_get_archives('type=monthly&format=link'); ?>
	<?php //comments_popup_script(); // off by default ?>
	<?php wp_head(); ?>
</head>

<body>
<div id="rap">
<h1 id="header"><a href="<?php bloginfo('url'); ?>/"><?php bloginfo('name'); ?></a></h1>

为什么不改成这样呢?

<html xmlns="http://www.w3.org/1999/xhtml">

<head profile="http://gmpg.org/xfn/11">
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

	<title>你的blog名字<?php wp_title(); ?></title>

	<style type="text/css" media="screen">
		@import url( 'http://你的wordpress地址/wp-content/themes/你的模板名/style.css' );
	</style>

	<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://你的wordpress地址/wp-rss2.php" />
	<link rel="alternate" type="text/xml" title="RSS .92" href="http://你的wordpress地址/wp-rss.php" />
	<link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="http://你的wordpress地址/wp-feed.php" />

	<link rel="pingback" href="http://你的wordpress地址/xmlrpc.php" />
	<?php wp_head(); ?>
</head>

<body>
<div id="rap">
<h1 id="header"><a href="你的wordpress地址">你的blog名</a></h1>

关掉你的Widgets,直接修改模板文件。

上面都做了,你可能发现效果不是太明显,但还是能起一定的作用的。

2. 你可以看到除非你不使用插件,不关你怎么对wordpress进行优化其实都是杯水车薪,很难看到什么效果。其实最有效的方法,应该是压缩模板的html,css,js代码和对使用的图片进行优化。
你的顶部图片有20k大,如果你把它去掉后是什么概念,我相信这样的效果是很明显的。

当然这里说的方法可能有悖你的想法,牺牲可定制化来获得不太明显的加速,这的确有点可笑,不过这也是萝卜青菜啦。

让IImage Browser在WordPress2.5中重生

iimage browser upload
毫无疑问,IImage Browser是冰古最爱的用于上传图片(或其他文件)到服务器的wordpress插件,冰古已多次推荐,这里这里。而2.5的图片上传有这样那样的毛病,更让冰古觉得这个插件很不错。

但原作者似乎已经放弃更新这个很不错的插件了,最近的更新要追溯到2007年的5月,支持版本也只能到2.0。这个插件有个很不好的地方,就是要将其中一个文件iimage-browser.php放到wp-admin文件夹中,进行升级wordpress等操作时,可能导致该文件丢失。如下hack就能使IImage Browser工作于wordpress2.5下,并把iimage-browser.php文件同时放到plugins文件夹中。

1. 下载IImage Browser
2. 将里面的两个文件解压缩到iimage-browser文件夹中;
3. 打开iimage-browser-plugin.php,找到

window.open("../wp-admin/iimage-browser.php", "IImageBrowser", "width=700,height=600,scrollbars=yes");

将其中的

../wp-admin/iimage-browser.php

直接改为

http://你的wordpress/wp-content/plugins/iimage-browser/iimage-browser.php

保存。
4. 打开iimage-browser.php,找到如下数行,

if (file_exists('admin.php')) {
	require_once('../wp-config.php');
    require_once('admin.php');		// WP after 1.3 alpha-3
} else {
    require_once('admin-header.php');	// WP before 1.3 alpha-3 
}

$ib_settings['real_path'] = './../wp-content/';

//URI of that directory relative to your blog installation URI
$ib_settings['real_url'] = '/wp-content';

改为:

if (file_exists('../../../wp-admin/admin.php')) {
	require_once('../../../wp-config.php');
    require_once(ABSPATH.'/wp-admin/admin.php');		// WP after 1.3 alpha-3
} else {
    require_once(ABSPATH.'/wp-admin/admin-header.php');	// WP before 1.3 alpha-3 
}

$ib_settings['real_path'] = ABSPATH.'/wp-content/images/';//这里可以修改到你喜欢的路径

//URI of that directory relative to your blog installation URI
$ib_settings['real_url'] = '/wp-content/images';//这里也就同上啦

保存;
5. 将iimage-browser文件夹上传到plugins文件夹中;
6. 在后台激活就行啦。
iimage browser

对了,你要在HTML编辑区才能看到上面的按钮哦。

初用VPS

冰古blog建立以来,都是在使用虚拟主机。
由于最近在美国主机论坛上灌水的缘故,对VPS主机发生了很大的兴趣,所以也就有了购买VPS主机的想法。

VPS照我的理解是差不多跟国内的合租那样吧,一个主机只放10个左右的用户。但VPS拥有合租不可能有的扩展性,你可以自己重启机器,重装系统,安装你需要的软件包,添加用户(这种用户也是拥有很大权限的)等等……

也就是这种扩展性让我觉得买个试试,选择了JB WebHosting中最便宜的一款UMVPS I(也就是,无管理VPS,他们不负责对该VPS的管理,全部工作只能自己想办法解决。当然硬件和网络问题他们是要负责的),配置如下:

Hosting Plans UMVPS1
Disk Space 5 GB
Monthly Transfers 150 GB
Number of IPs 1
Control Panel Webmin
Root Acess Yes
VPS Backup (Snapshot) 1
Guaranteed RAM / Burstable to: 128 MB / 256 MB
HyperVM CP Yes
LxAdmin(optional) 100 Domain
FTP Storage Yes
Setup Fee $0.00
Monthly Fee $10.00
Paid Annually $105 (Save $15)

设置费为0,你完全可以买一个月,也就是10刀,当做练练手。呵呵,我就是买了一个月。

趁此机会也弄了下自己的模板,简简单单还是爽点 😆

ubuntu8.04速成手册

ubuntu
最近网上最热的操作系统是什么?Windows VISTA和Mac OS X都已经发布太久了,现在最热的是Linux阵营中Ubuntu发布的8.04版。

Ubuntu8.04版本中的wubi工具,使Ubuntu的安装变得更加简单,如果你是因为不会安装而放弃尝试Linux,这个版本是你不能错过的。

而Ubuntu8.04速成手册更是让你迅速玩转Ubuntu。
此手册由以下部分组成:
1.Ubuntu8.04系列一--系统安装篇
2.Ubuntu8.04系列二--系统优化篇
3.Ubuntu8.04系列三--系统安全篇
4.Ubuntu8.04系列四--系统美化篇
5.Ubuntu8.04系列五--软件安装篇
6.Ubuntu8.04系列六--软件优化篇
7.ubuntu8.04系列七--软件开发篇
8.rc版系统安全性实测及实测篇
本地下载
本手册由嘉骏苑网友提供

推荐两个问Ubuntu相关问题的论坛:
ubuntu中文网:毫无疑问是最佳的一个地方啦。但最近因为8.04的发布,服务器变得异常诡异。ubuntu太hot了, 😆
深度系统技术论坛:以windows讨论为主,但也有个不错的Linux讨论区。

抓虾特约博客作家

抓虾特约博客作家就是类似feedsky的那样营销平台。不知道效果如何,我也再玩玩营销吧。

{ZHUAXIAdbd6216c2af4ba3478723e8e0e67ea26Union}