2011年2月22日星期二

PSD模板切网页制作HTML全过程

http://www.oustudy.com/index.html

首先 看看效果
下面的图片就是效果图,切割出来后,可能头部和底部会宽点.....

Code a Web Template from PSD to HTML

新建 文件夹

开始 时,在您的计算机中创建一个文件夹。我把它命名为zmool。再在文件夹中创建新文件夹images,放网站的所有图像。接下来打开代码编辑器 (Dreamweaver),并在根目录下创建一个HTML文件名为index.html,这是我们的主页模板。现在创建一个新的CSS文件,并将其命名 为style.css文件。如下图:

Code a Web Template from PSD to HTML

打开 index.html文件。在head标签顶部,添加链接到您的样式表(style.css)。你可以使用下面的代码。

<link href="style.css" rel="stylesheet" type="text/css" />

头部的 代码如下面:

<!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=utf-8" />
<title>Modern Design Studio</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>

</body>
</html>

建立 HTML结构 - http://www.oustudy.com/index.html

现在, 我们将设置HTML文件结构。设置3个部分(标题,内容,页脚)像下面一样:

<!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=utf-8" />
<title>Untitled Document</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div id="header">

</div>
<div id="content">

</div>
<div id="footer">

</div>
</body>
</html>

切割 背景

我们的 PSD文件包含了很多纹理效果,我们要把这些全部切出来,然后,用代码添加到网页上面,使div页面效果和设计的效果达到一致。

<body>
<div id="header">
<div id="container">

</div>
</div>
<div id="content">
<div id="container">

</div>
</div>
<div id="footer">
<div id="container">

</div>
</div>
</body>

现在在 photoshop里面打开原先设计好的, 隐藏所以的图层,除背景层外.

Code a Web Template from PSD to HTML

现在采 取的切片工具,选择背景,保存网页web格式按(ALT +shift+Ctrl + S)。然后保存的图像文件夹文件名为background.jpg。

Code a Web Template from PSD to HTML

设置 背景样式

打开 style.css文件,设置基本样式,还有背景样以及主体部分的宽度,如下代码:

* {
margin: 0px;
padding: 0px;
}
body
{
background:url(images/background.jpg);
}
#container
{
margin: auto;
width: 960px;
}

切割 头部

返回 photoshop,隐藏所以图层,除头部背景外,并用同样的方法,把头部背景图片切割保存为web格式,保存文件名为head.jpg。

编辑 头部背景代码

在 style.css文件里编辑如下代码:

#header
{
background:url(images/header.jpg);
height:124px;
}

切割 头部logo

在这 时,切割logo层,隐藏所有图层,包括背景层,如上同样方法切割logo层保存为logo.png,注意:保存为png格式图片

Code a Web Template from PSD to HTML

添加 在页面添加logo

现在返 回到html中,在#header #container内,添加下面的代码<div id="logo">....</div>.

<div id="header">
<div id="container">
<div id="logo"><a href="#"><img src="images/logo.png" class="logo"></a></div>
</div>
</div>

现在, 下面切换到style.css文件,编写#logo样式.

#logo
{
margin-top:20px;
border:none;
}

编辑 导航代码

下面是 页面里的代码,头部header包括logo和导航两个部分.

<div id="header">
<div id="container">
<div id="logo"><a href="#"><img src="images/logo.png" class="logo"></a></div>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Work</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
</div>

导航 样式如下:

现在, 添加css表里的导航样式~,ul、li和链接a的样式:

#header li
{
color:#959595;
list-style:none;
float:left;
margin-right:20px;
font-family:"Myriad Pro",arial;
font-weight:bold;
font-size:24px;
}
#header li a
{
color:#959595;
text-decoration:none;
padding:10px;
}
#header ul
{
float:right;
margin-top:-40px;
}
#header li a:hover
{
background:#202020;
color:#d2d2d2;
-moz-border-radius:5px;
-khtml-border-radius:5px;
-webkit-border-radius:5px;
}

现在 制作中间部分

现在我 们在页面的中间部分content添加两个div,如下图:

<div id="content">
<div id="container">
<div id="featured">

</div>
<div id="paragraphs">

</div>
</div>
</div>

切换到 photoshop的psd页面, 切下中间部分,取名为featured.jpg. 如下图:

Code a Web Template from PSD to HTML

在你的 HTML页面添加如下代码, 和一些文字介绍:

<div id="content">
<div id="container">
<div id="featured">
<a href="#">MORE PROJECTS</a>
<p class="dummytext"><span>Portfolio project, Jan 5th, 2010</span> Have you
ever wanted to create clean and nice portfolio design? In this tutorial I
will show you how to design clean blue portfolio layout. Have you ever wanted
to create clean and nice portfolio design? In this tutorial I will show you how
to design clean blue portfolio layout in Adobe Photoshop.</p>
</div>
<div id="paragraphs">

</div>
</div>
</div>

在 PSD文件里,隐藏其他所以图层,只留下按钮图层部分,切下按钮部分,保存png格式,命名为button.png.

Code a Web Template from PSD to HTML

现在我 们把这些图片添加到页面中去,切换到css文件页面,添加如下代码,这里包括背景样式,和按钮的样式.

#featured
{
background:url(images/featured.jpg) no-repeat;
height:381px;
margin-top:30px;
margin-left:80px;
}
#featured a
{
background:url(images/button.png);
height:30px;
width:124px;
text-indent:-9999px;
position:absolute;
margin-top:330px;
margin-left:180px;
}
#featured a:hover
{
background-position:0px 30px;
}

现在我 们添加些dummytext(文字介绍)的样式:

.dummytext
{
color:#d2d2d2;
width:245px;
margin-top:150px;
position:absolute;
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
line-height:180%;
margin-left:290px;
}
.dummytext span
{
font-size:16px;
color:#191919;
font-weight:bold;
}

下面 添加添加图片展示下面的分类介绍部分

页面的 代码部分如下.

<div id="paragraphs">
<p class="paragraph">
<span>BEAUTIFUL</span>WebDesignFan is a design related blog about web design, photoshop, freebies
and tutorials. We publish useful information dedicated to web designers and developers. Here you can find free
resources like vectors, wordpress themes and a lot of inspiration.
</p>

<p class="paragraph">
<span>EFFECTIVE</span>WebDesignFan is a design related blog about web design, photoshop, freebies
and tutorials. We publish useful information dedicated to web designers and developers. Here you can find free
resources like vectors, wordpress themes and a lot of inspiration.
</p>

<p class="paragraph">
<span>FUNCTIONAL</span>WebDesignFan is a design related blog about web design, photoshop, freebies
and tutorials. We publish useful information dedicated to web designers and developers. Here you can find free
resources like vectors, wordpress themes and a lot of inspiration.
</p>
</div>

我们中 间部分的内容,整体看起来应该是这样的:

<div id="content">
<div id="container">
<div id="featured">
<a href="#">MORE PROJECTS</a>
<p class="dummytext"><span>Portfolio project, Jan 5th, 2010</span> Have you
ever wanted to create clean and nice portfolio design? In this tutorial I
will show you how to design clean blue portfolio layout. Have you ever wanted
to create clean and nice portfolio design? In this tutorial I will show you how
to design clean blue portfolio layout in Adobe Photoshop.</p>
</div>
<div id="paragraphs">
<p class="paragraph">
<span>BEAUTIFUL</span>WebDesignFan is a design related blog about web design, photoshop, freebies
and tutorials. We publish useful information dedicated to web designers and developers. Here you can find free
resources like vectors, wordpress themes and a lot of inspiration.
</p>

<p class="paragraph">
<span>EFFECTIVE</span>WebDesignFan is a design related blog about web design, photoshop, freebies
and tutorials. We publish useful information dedicated to web designers and developers. Here you can find free
resources like vectors, wordpress themes and a lot of inspiration.
</p>

<p class="paragraph">
<span>FUNCTIONAL</span>WebDesignFan is a design related blog about web design, photoshop, freebies
and tutorials. We publish useful information dedicated to web designers and developers. Here you can find free
resources like vectors, wordpress themes and a lot of inspiration.
</p>
</div>
</div>
</div>

去你的 CSS文件添加下面的代码,

#paragraphs span
{
font-family:"Myriad pro", Helvetica, sans-serif;
font-size:22px;
font-weight:600;
letter-spacing:-2px;
}
#paragraphs
{
margin-left:80px;
font-family:Arial, Helvetica, sans-serif;
color:#191919;
font-size:12px;
margin-top:15px;
}
.paragraph
{
width:250px;
margin-left:15px;
float:left;
}

这个就 是我们到目前位置的效果:

Code a Web Template from PSD to HTML

下面 处理网站底部

现在, 我们完成该部分内容,我们将开始创建页脚.电脑 知识

首先, 在你的PSD文件中,隐藏除页脚和页脚纹理层外的其他层,然后把页脚文件夹的东西切片并保存为footer.jpg.

Code a Web Template from PSD to HTML

然后再 切一遍,把按钮和鸟的图形切下来.分别取名为follow.png和 bird.jpg.

编辑 底部代码

底部页 脚包括一些文字和一个带有链接的小鸟图片.

所以在 HTML页面添加如下代码.

<div id="footer">
<div id="container">
<p>2010 © Fictional Design Studio. Design by Webdesignfan.</p>
<a href="#">Follow us on Twitter</a>
<img src="images/bird.jpg" />
</div>
</div>

现在, 编辑底部footer样式的代码,如下:

#footer
{
background:url(images/footer.jpg);
height:71px;
margin-top:191px;
}
#footer p
{
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
color:#959595;
position:absolute;
margin-top:30px;
}
#footer a
{
background:url(images/follow.png);
text-indent:-9999px;
position:absolute;
height:27px;
width:124px;
margin-left:730px;
margin-top:30px;
}
#footer img
{
float:right;
margin-top:10px;
}

我们用footer.jpg 做页脚的背景,然后添加一些文字的样式.

对于底 部的鸟图片的链接,我们用之前同样的办法,利用浮动效果定位。

最终 效果

Code a Web Template from PSD to HTML

文件下载地址 (0,7 MB)

到现在 就算是结束了,不知道大家有没有看懂,不懂的就留言,什么地方不懂,我再添加修改下,哈哈~
http://www.oustudy.com/index.html

Vimperator常用的一百条命令

因为Vimperator命令很多,所以写个稿子来记录一下,省得以后忘记了。主要就是一些常用命令,配置文件,Macos,Map及脚本命令另外再说
注:严格区分大小写,+表示需要添加的内容,- 表示组合键,Ctrl表示为C
进入各种模式的命令
:命令行模式;esc 退出命令行模式;F7 caret模式;F7+v visual模式;C-z pass through模式;C-v
pass through模式一次;:set go+=mTb 显示菜单栏 书签栏 工具栏;:set go= 回到Vimperator显示模式
各种控制台相关命令
:dl 或者: downloads 打开下载管理器;:addons 扩展管理器;:js 脚本管理器;:prefs!
about:config;:h 帮助 如果需要查看gt帮助,则输入:h gt 以此类推;:dialog searchengines
搜索引擎对话框;:history 显示打开过的网址历史;:tab addons 为新标签打开扩展管理器,以此类推,如;:tab js
常用命令
d 关闭当前标签,2d,关闭本标签往后的两个标签,包括本标签
u 撤销最近关闭的标签;2u 撤销最近两次关闭的标签,以此类推
:undoa或:undoall 撤销最后打开的十个标签
t+网址 新标签打开网址;t+网址,网址,网址 用新标签打开三个网址,以此类推
t+网址关键词 如果你定义了网址关键词,如google.con定义为g,则t+g就在新标签栏打开google.com
t+搜索关键词 如果你定义了搜索关键词,如imdb.com的搜索定义为m,则t+m就是在新标签中显示imdb搜索的结果
T 新标签打开当前网址
:wino+网址 新建一个窗口打开网址
y 剪贴当前网址
Y 剪贴已选中的内容
f 进入hint fit模式
F 在新标签中打开已标记的网址
ctrl+o或H或:ba 或者:back 后退;2H 表示后退两步,以此类推
ctrl+i或或:fo或I 前进;3I 表前进三步,以此类推
j 下移 20j 下移20个单位,以此类推
k 上移 20k 上移20个单位,以此类推
h 左移 20h 左移20个单位,以此类推
l 右移 20l 右移20个单位,以此类推
gt 下一标签;3gt,当前标签后的第三个标签,以此类推
gT 上移标签;3gT,当前标签前的第三个标签,以此类推
gB 跳到最后一个标签
g$ 跳到第一个标签
b 打开标签选择对话框;如你的标准中有google,就输入b+google打开该标签,如果该标签是第三个标签也可以输入b+3打开该标签
B 列出所有激活的标签
gg 移到页首 20gg距页首百分之二十处,以此类推
G 移到页尾 20G距页尾百分之二十处,以此类推
C-d 上移半页
C-u 下移半页
gf 查看当前网页源代码
go+快捷键 打开已指定的快捷网址
gn+快捷键 在新标签中打开快捷网址
:delqm+快捷键 删除已指定的快捷键
:qmark+快捷键 添加当前网页到快捷方式并指定给一个快捷键
:qmarks 显示所有快捷网址
C-g 查看网页基本信息
g+C-g或:pa 查看网页详细信息
:ha 打印当前网页
:res或:restar 重启浏览器
:mkv 将当前设置保存至一个文件 如果没有该文件 则系统写入一个/.vimperatorrc的文件
:w或:write或:sav或:saveas 保存当前网页为一个文件
C-c 停止载入当前网址
:reloada或:reloadall 停止载入所有标签页
R 跳过缓存 刷新当前页
gh 在当前标签打开主页
gH 在新标签打开主页
gu 回到网站上层目录,3gu 回到网站上三层目录,以此类推
gU 回到网站根目录
O 移到最左边 20gg距最左边百分之二十处,以此类推
S 移到最右边 20G距最右边百分之二十处,以此类推
zi 将当前网页字体放大一倍
zm 将当前网页字体放大两倍
zo 还原网页字体
a或:bma或:bmarks 收藏当前书签,a -t="网址名" 以该网址名收藏进书签;-T=标签1,标签2
该网址标记为标签1和标签2,想要多加标签,隔开就可以了;-k=关键字 将该网址标记为此关键字
:bmarks 列出当前已收藏的标签
:delbm 删除当前标签
/ 进入站内搜索;n为下一搜索结果,N为上一搜索结果
gi 跳到上次使用的文本输入框
ZZ 记住现在打开的页面并关闭浏览器
[[ ]] 打开指定连接

2011年2月20日星期日

如何更改CS1.6背景、LOGO、皮肤、CS字符、欢迎信息、喷图、H菜单、音乐、脚本

前言:
CS是一款DIY性强的游戏,很多CSer都想有一个自己个性的CS版本,但又苦于
对DIY的不熟悉和不了解,无从下手。其实DIY没有你想的那么难,相反,只要你
稍懂一些电脑知识就能很轻松的做出一个很个性的CS版本。为了广大CS玩家,小废
我就为各位送上手把手教程,谢谢大家对废客的支持。


玩过CS1.6 的人都知CS游戏目录中有个cstrike_schinese文件夹,这就是CS的中文
语言目录。即然你用的是中文版,那所有文件的读取就先从这文件夹开始,没有时
CS才会到cstrike目录下(原英文版目录)去查找。也就是说只要在cstrike_schinese
文件夹里有的东东,就不会去用cstrike目录里的东东。我就从他开始解说。

我们所做的所有修改都将放于cstrike_schinese目录内。


■怎么修改CS的背景?

背景文件一般存放于 cstrike_schinese esource\background 目录或是
cstrike esource\background 目录下
首先准备[切片文件] (这要有一点PS知识)
用PS打开切片文件后导入你想要的图,然后再存储为 Web 所用格式即可
再将JPG文件转换为TGA,注意转换时在TGA选项里选择方向由底向上即可
再把TGA文件复制到cstrike_schinese esource\background背景文件夹里
关于背景制作网上有很多教程,这里就不一一多说了.


■怎么修改左下角的菜单LOGO?
cstrike_schinese目录也相对是cstrike目录,看文件在哪你就上哪个目录找。
cstrike esource\game_menu.tga 这是原图
cstrike esource\game_menu_mouseover.tga 这是鼠标移到上面后的图
找几个图,再用PS去制作它就行,注意文件内有通道模板,所以要加上它才会透明
然后再把做好的TGA文件放置到
cstrike_schinese esource\game_menu.tga
cstrike_schinese esource\game_menu_mouseover.tga
这样,左下角的菜单LOGO也个性起来了,呵。

■怎么个性化 Steam/CS1.6皮肤(就是控制台或设置界面窗口的颜色和样式)
此文件存于 cstrike esource\TrackerScheme.res 资源文件里。
关于皮肤的制作你可以去下载一个小程序ilovesteam,至于 TrackerScheme.res文件
里的一此参数详解各大论坛都有,全可用ilovesteam这软件来实现。包括控件的添加
例如文本框或图片框都可以。
这样,你就可以打造一份个性的Steam皮肤。
把TrackerScheme.res文件复制到 cstrike_schinese esource目录下即可!

■怎么修改CS字符资源?
是不是看到进入游戏后什么什么专业版,什么什么战队版,自己也心痒呢。来吧。我告诉你几个
资源文件,你只要用记事本打开,再用记事本的查找功能 Ctrl + F 找到你想要修改的字符就行
第一个文件:
位于\cstrike_schinese esource\cstrike_schinese.txt (主要是游戏里的一些字符资源)
第二个文件:
位于\valve esource\gameui_schinese.txt (主要是游戏设置里的一些字符资源)
注:保存时文件编码要为 Unicode,切记。
改好后把这二个文件也通通放到cstrike_schinese esource目录下即可!

■怎么做进入游戏后的欢迎信息?
此文件位于cstrike\motd.txt把它复制到cstrike_schinese目录里并重命名为motd.htm
这样你就用HTML去制作并编写它,网页里关连的图片什么的都可以放到cstrike_schinese目录里,
完成后保存改名为motd.txt即可。

■ 怎么做CS1.6喷图文件?
在CS1.6里喷图文件名为tempdecal.wad,制作方法和1.5一样,只是文件名不同而已
首先去下载一款喷图制作软件 Halflife Logo Creator V1.0
用它制作好LOGO后把pldecal.wad改名为 tempdecal.wad并复制到cstrike_schinese 目录里
这样个性喷图就OK了。

2011年2月17日星期四

了解javascript中的prototype属性

一说到prototype很多人可能第一个想到的是著名的prototype.js框架,当然我们今天说的不是它,而是
Javascript中的prototype属性,一般都被翻译为"原型"。这是一个比较特殊的属性,Javascript中
的继承一般都依赖这属性实现。

在Javascript中,一切都是对象,字符串是对象,数组是对象,变量是对象,函数也是对象,所以才会允许['a','b','c'].push('d');这
样的操作存在。类本身也是一个对象,也可以定义属性和方法:

function Test(){};
Test.str = 'str';
Test.fun = function(){return 'fun';};
var r1 = Test.str; // str
var r2 = Test.fun(); // fun
var inst = new Test();
var r3 = inst.str; // undefined
var r4 = inst.fun(); // undefined

prototype就是一个作用于类的属性。默认情况下,所有Javascript类都会有一个prototype属 性,但是类实例没有。

function Test(){};
var p1 = typeof(String.prototype); // object
var p2 = typeof(Test.prototype); // object
var p3 = typeof(new Test().prototype); // undefined
var p4 = typeof(Object.prototype); // object
var p5 = typeof(new Object().prototype); // undefined

取值与赋值

在Javascript中,当我们取一个对象中并不存在的属性或是方法时,它会试图查看该对象所对应的类中的prototype属
性中是否包含该属性或是方法,而prototype也是一个Javascript对象,若是其中也没有,该prototype又
会访问它对应的类的prototype,如此一级级地向上访问,直到找到需要的属性或方法,或是prototype属 性为null。

function Test(){};
Test.test = 'str';
function pt1()
{ this.test1 = 'pt1'; };
function pt2()
{ this.test2 = 'pt2'; };
pt2.prototype.test3 = 'test3';
pt2.prototype.test1 = 'test4';
pt1.prototype = new pt2();
Test.prototype = new pt1();
var inst = new Test();
var p1 = inst.test; // undefined
var p2 = inst.test1; // pt1 而不是 test4
var p3 = inst.test2; // pt2
var p4 = inst.test3; // test3

相对于取值,赋值就简单得多了。它并不会一层层向上查找prototype中的属性值,而直接对当前的实例进行赋值,没有则创 建。

内置类的增强

在Javascript中并不能直接修改内置类的prototype。但是可以通过修改prototype的 属性达到修改内置类行为的目的。

Array.prototype = {push:function(){alert('test1');}}; // 不起作用
Array.prototype.push = function(){alert('test2');}; // 可以
var test = new Array('a','b','c');
test.push('d'); // test2

一次可以插入多个元素的Array.push函数:

Array.prototype.pushs = function()
{
var pos = this.length;
for(var i=0; i<arguments.length; i++)
{
this[++pos] = arguments[i];
}
return this.length;
}
var test = new Array('a','b','c');
test.pushs('d','e');

值得注意的是,为内置类的prototype添加的函数,在使用for语句输出属性时,也会被显 示:

var str;
for(var i in test)
{
str += (' ' + i); // '0 1 2 3 4 5 pushs' pushs自定义函数。
}

但是可以通过hasOwnProperty()进行判断:

var str;
for(var i in test)
{
if(test.hasOwnProperty(i)) // 过滤掉pushs函数。
{ str += (' ' + i); }
}

一点点注意事项

前面说过,prototype是类的一个属性。更改prototype中的属性值,有可能会带来意 想不到的灾难!

function Test(){}
Test.prototype.num = 3;
var inst1 = new Test();
var inst2 = new Test();
Test.prototype.num = 4; // 所有指向Test.prototype.num的值。
var p1 = inst1.num; // 4
var p2 = inst2.num; // 4
inst1.num = 5; // 赋值,会为inst对象创建一个num属性。
Test.prototype.num = 6; // 所有指向Test.prototype.num的值。
var p3 = inst1.num; // 5 这里返回的是刚创建的inst1.num的值,而不是Test.prototype.num的值。
var p4 = inst2.num; // 6
delete Test.prototype.num;
var p5 = inst1.num; // 5 inst1.num依然存在。
var p6 = inst2.num; // undefined Test.prototype.num 被删除了。

本文采用 知识共享 署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议 进行许可。
转载时请注明出处:http://www.caixw.com/archives/intro-to-javascript-prototype.html

1st JavaScript Editor Pro的完美破解补丁加注册文件--编写JavaScript脚本非常好的编辑器

st JavaScript Editor Pro
version : 5.1
author   : Yaldex Software
www      : http://www.yaldex.com
contacts : http://www.yaldex.com/help.htm

Compatibility:
Any windows

官方下载最新1st JavaScript Editor Pro v5.1

安装完成后,用破解文件替换1st JavaScript Editor Pro的安装目录下的fJSE.exe,OK,

破解完成,enjoy it!

小记,这里破解后,有个小问题,就是自动提示不能用很久,用一会就不提示啦

所以要用这个注册表文件,导入一下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Yjsf3\Colors]
;"htm.Zam.Background"="5201234567890123456789012345678901234567890123456789"
"htm.Zam.Background"="注册码保存的位置,程序会做长度校验,长度必须是52个字节"

;将上面的保存为reg.reg文件,然后导入注册表就ok啦,看看自动提示是不是可以永久啦,,

注:所需破解文件在http://rapidshare.com/files/336091441/1st.JavaScript.Editor.Professional.Edition.v5.1-EMBER.rar

顺便推荐一个好的搜索rapidshare资源的一个网站:

http://rapiddigger.com/

2011年2月14日星期一

PHP中获取文件扩展名的N种方法

从网上收罗的,基本上就以下这几种方式:

第1种方法:

  1. function get_extension($file)
  2. {
  3.     substr(strrchr($file, '.'), 1);
  4. }

第2种方法:

  1. function get_extension($file)
  2. {
  3.     return substr($file, strrpos($file, '.')+1);
  4. }

第3种方法:

  1. function get_extension($file)
  2. {
  3.     return end(explode('.', $file));
  4. }

第4种方法:

  1. function get_extension($file)
  2. {
  3.     $info = pathinfo($file);
  4.     return $info['extension'];
  5. }

第5种方法:

  1. function get_extension($file)
  2. {
  3.     return pathinfo($file, PATHINFO_EXTENSION);
  4. }

以上几种方式粗看了一下,好像都行,特别是1、2种方法,在我不知道pathinfo有第二个参数之前也一直在用。但是仔细考 虑一下,前四种方法都有各种各样的毛病。要想完全正确获取文件的扩展名,必须要能处理以下三种特殊情况。

  1. 没有文件扩展名
  2. 路径中包含了字符.,如/home/test.d/test.txt
  3. 路径中包含了字符.,但文件没有扩展名。如/home/test.d/test

很明显:1、2不能处理第三种情况,3不能正确处理第一三种情况。4可以正确处理,但是在不存在扩展名时,会发出一个警告。只有第5种方法才是最正确的方 法。顺便看一下pathinfo方法。官网上介绍如下:

  1. $file_path = pathinfo('/www/htdocs/your_image.jpg');
  2.  
  3. echo "$file_path ['dirname']\n";
  4. echo "$file_path ['basename']\n";
  5. echo "$file_path ['extension']\n";
  6. echo "$file_path ['filename']\n"; // only in PHP 5.2+

它会返回一个数组,包含最多四个元素,但是并不会一直有四个,比如在没有扩展名的情况下,就不会有extension元素存 在,所以第4种方法才会发现警告。但是phpinfo还支持第二个参数。可以传递一个常量,指定返回某一部分的数据:

  1. PATHINFO_DIRNAME - 目录
  2. PATHINFO_BASENAME - 文件名(含扩展名)
  3. PATHINFO_EXTENSION - 扩展名
  4. PATHINFO_FILENAME - 文件名(不含扩展名,PHP>5.2)

这四个常量的值分别是1、2、4、8,刚开始我还以为可以通过或运算指定多个:

  1. pathinfo($file, PATHINFO_EXTENSION | PATHINFO_FILENAME);

后来发现这样不行,这只会返回几个进行或运算常量中最小的那个。也就是四个标志位中最小位为1的常量。

2011年1月24日星期一

叫床”大观(迅速提高你的性学知识和外语水平!)

为何女性交欢时会发出叫床的声音呢?倘就医学的观点言,性的刺激是与大脑的某些 部位有关连的。譬如说,男性主要是刺激大脑皮质。这地方掌管最高层次精神功能之处。相对的,女性则是在间脑的下视丘,而这里只是能够左右原始本能产生兴奋 度的地方。换言之,当受到性刺激时,男性会产生高次元的反应,女性则只在低次元本能的地方来接受这种刺激。因此,女性会产生强烈的告白欲望。亦即,当性行 为达到高潮时,女性会情不自禁发出各种叫床的声音。

  由此项研究而感,或许不少男性会认为:"这么说来,女性还是比男性低等罗!"其实 这也不能全算对,因为据多位风月场所的女子表示,在她们男性客人当中,竟然也有60%会发出类似这种欢愉的叫床声。总之,声音和**是有绝对密切关系的。 走笔至此,凑巧听到了隔壁那只发春期的猫咪叫声。诸位倘有幸亦得而闻之,并相对照一下后想想,或许你就可以更加了解叫床而必恍然有所悟。原来猫咪会发出仿 碍我们睡眠、使我们感到困扰的声音,就是生殖期(发情期)需要异性的时候,这对它们而言是十分必要、不可或缺的哩。

  女生叫床的叁种类

   首先,女人叫床可分成叁种类,这是每位男生必须记住的:1.因为有感觉而出声。人会发出声音是由大脑的左半部,亦即由语言中枢所控制。然而在某一些场合 或近於丧失心智的状态下,此时人们却没有办法接受大脑皮质的指示,只是会无意识地、反射性的发出声音。例如强烈性兴奋达到高潮的场合就是如此,全身紧张产 生一种缺酸的状态,意识也会变的模糊,在无意识中发出的声音就是一种"喜悦之声"。2.为了要有感觉而出声。例如有些女性,无论男生如何的努力,却都无法 达到高潮。然而她们会因为听到自己的声音,而产生了无比强烈的性兴奋。所以这类女性她会尽量叫出声音来,不管"啊!"也好,"呜!"也好,或者是加上一些 暧的字眼也没关系。她叫床的目的,不过是为了要使自己可以达到高潮而已。3.虽然没有感觉,但还是出声。譬如妓女、风尘女郎等。

  她们 总是希望客人们能够越早结束越好,因此发出叫床声就是她们常使用的方法之一。此外,有时候女方因为过於疲倦、或者兴致缺缺,但是男方却要求作爱,故而只好 尽量的发出声音。每次都装出好像很有感觉的样子,让丈夫感到兴奋,然后以便很快的结束。

  然而,很遗憾的是,很多男性对於女生所发出的 声音,所代表的到底是什么意义,却往往不能够加以区别。亲吻的时候如果对方张开眼睛的话,男性也许是可以了解对方的想法,但是在声音方面却无法分辨。作爱 时,如果女生突然"啊!"的大声叫,由於男性都是单细胞物,很快地就会被女性的叫声带入高潮而草草结束。

  叫床的古典统与流行最典型、 最传统、的"叫床"如下:"啊……"是一种自我陶醉的型态、"哇(伊)……"是一种快感的表现型态、"呜……"是自我压抑的呻吟型态、"唉(嗯)……"是 一种感动的型态、"喔……"是一种野性的型态。然而,近年来由於性知识的普及、女权情欲自主的推波助浪、加上最近北大女舍观看A片的公开化……等,叫床已 不再是仅仅限於上述这言词语句、声音,另外一些词语,也都广泛地被用来加强情绪的表现,甚至变成了一种流行。譬如:"我快要死了"这句话,大家已经可以常 常在床第上听到了。往往如此单纯的一句话,常会让双方感到更为陶醉。也往往因这句话,而令男生感到全身颤动不已。"你的花园好像很濡……"这是属於喜欢作 梦作诗的型态。"啊!我快飞走了,抓住我!"这种觉得自己在飞翔的女性,是属职业妇女型态。"好可怕!"遇到人间凶器。"杀了我吧!"(……?)

   各论篇--"叫"的种种类类

  甲)中国篇

  1.YES型这类型的叫声,如行文一般。非常有起、承、转、合、高、 低、起、伏,令听者有如沐春风、常喜不自胜……基本音效:"OH……N……ye……ye……ye……yes……"

  分析:事实上,在中 国几乎很少有女生是这样子叫的。这种叫床法大部份是发生在金发碧眼的外国女孩子身上。但有叁种例外情形:一、华裔美人。二、看太多外国A片而效法之。叁、 观光饭店赚取外汇的应召女郎。备注:本研究因限於地域问题、经验关系,只以黑发女性为主。

  2.春字型基本音效:"春……春…… 春……"分析:这是"性教育"失败的典范。因为仿间书刊常谓:当"作爱"时女性会忍不住叫春……於是天真无知的少女在献身给心爱的人时,唯恐被怀疑是"性 冷感",便唯妙唯肖的表演了起来:"春……春……春……"备注:本案例资料确实发生在各地绝非危言耸听。

  3.贤妻型基本音效: "喔……喔……喔……"(Repeat,可无限次循环)分析:这类型的女性,受了中国传统"优良文化"的薰陶,是贤妻良母型。她们认为:婚姻中应尽的义 务,就是在床第中让丈夫满足。所以她们使用最传统的声调呻吟着,无论节奏、拍子、强弱、都配的恰到好处,宛如一曲美妙的二重奏……一直到丈夫达到高潮,心 满意足的射精之后,自己脸上方敢露出传统女性满足的微笑,而停止这首可无限循环的室内交响乐章。备注:这型女生是不会去考虑:自己本身是否有达到高潮。

   4.淑女型基本音效:"嗯……嗯…嗯……嗯……"(若有似无,只可断续听到……)分析:这类型自小家教良好,在母亲细心调教下,她学会了喝汤不出声、笑 不露齿、走路臀部摆幅不超过7.5。因此,即使她受到了激烈的激汤,也能压抑住音量,只在喉间发出连续而含糊的声音,以传达心中喜悦的效果。备注:男生倘 不把耳朵挖乾净些,恐有听不见之虞喔。中国目前的女生,大多数应该都是属於此种类型。

  5.闷骚型基本音效:"……"(没有声音,就是 没有声音……)分析:别纳闷了,是真的没有声音。难道是喇叭坏了?哈……顾名思义,既是"闷"字,当然不叫罗。这类型的女人打破"女人与聒噪"间的自然法 则。泰半咬紧牙关、忍住了想叫的冲动。不敢将自己真实的感情流露出来。可能的原因如下:一、因为她的罗蜜欧是爬窗进来,两人偷情怕被人知道。二、隔墙有 耳、或她老爸正在楼下持关刀把大门,怕被别人听到。叁、她的"他"有口臭,所以她必需紧闭嘴巴,以避免接吻。备注:据统计:中国女生,至少有一半以上,都 属於不会叫的类型。这可能是受了中国五千年传统文化洗礼的关系……

  6.飙女型基本音效:"快、快!喔、喔……再一次、喔、喔……"分 析:这是男人梦寐以求的床上荡妇型。可是她并不是每个男人都有福气消受得了,必须自己本身要有相当足够的床第实力,才可以应付。这类型的女孩多半年轻、富 朝气、有活力、而且做风大胆。从小就懂得偷看老爸偷藏的A带、哥哥的PLAYBOY、弟弟的黄色小说……在中国是最近才掘起的时髦女,以前根本是不可能有 这款的代志。备注:这种女孩的确是有够劲!瞧……那人已被折磨的一身憔悴……

7.受虐型基本音 效:"NO!……NO!……No!……no!……"分析:可别报警,这不是强暴。这种女人心理上有某种程度所谓的"受虐妄想症"的倾向。是属於比较不适合 和男人作爱之类型。另外的可能是:一、男的身体太过於肥胖,快被压成碎骨头。二、或男的尺寸过长,被吓到啦……备注:藉此告诫普天下女孩:千万别以为 "他"越强壮,就越能保护你,尤其不幸你的身材又是特别细瘦的话!!切记。切记。

  8.碰撞型基本音效:"喔……碰!喔……喔…… 碰!"(音色繁多,不一而足)分析:这种类型是有地域性的。多半在非高级住宅区才听的到,尤其是大专校园附近、木板隔间房间、特别多的地方。其实,这种 "碰!碰!"的声音,是脚踢到木板床、木板墙之类发出来的。因为大学生穷酸、年纪既轻、血气又方刚、更流行什么试婚、校外同居、自然也就顾不了隔墙有耳 了。备注:有偷录"床上春天组曲"雅兴者,这地方是最上上乘之选。

  9.强人型基本音效:"快!……喔……喔……快!来不及了…… 喔……喔……"分析:一个外表威风八面的女强人,其实背后是很辛苦的。工作、家务、人事关系……样样都得面面俱到,由不得她随兴所至。一大堆事累积起来, 不管她到底爱不爱做,一天二十四小时根本是不够用的,更别说花时间去享受人生情趣啦!备注:女强人对男人而言,实是一种严重的威胁和考验。

   10.暴君型基本音效:"照我意思,乖乖的这样做,听到了没?"(充满魅力的声音)分析:这种类型的女人颇有主见,不肯乖乖的按照传统的方式叫床,一定 要搞东搞西的,哇啦啦的指挥那位可怜的男人。既不肯一丝丝的让步,更没有一点点温柔的味道,不浪漫至极。备注:当男人碰上这种女人,常被压的死死的,连翻 身机会都没。天啊!11.神女型基本音效:"哦……哦……甜心,真行。哦……哦……你比他强多了……"分析:这种女人可说最诚实了。刚刚火热缠绵得不可自 拔,马上就又飕地放出一支冷箭。使得这个男人彷佛被泼下一盆冷水,差点心脏病突发而去。此种情形多半在HOTEL、宾馆中发生。一男一女、一前一后、分别 进房唯恐被人发现了什么蛛丝马迹。而这种女人,往往所拥有的男人不只一个,手段操控自如、神乎其技、出神入化、神出鬼没……备注:简直厉害得不像凡人,故 称神女。12.好奇型基本音效:"陪人家试啦。哦…哦……好啦!不试怎知道?哦……哦……"分析:相信她,她绝对不是性变态狂。此型女孩外表上起来非常的 可爱、眼睛圆亮、爱玩、爱说话、教人全不起一点点提防之心。只是很爱看奇奇怪怪的书和杂志,所以时常会有很多令人意外的点子。备注:因为她太好奇了,所 以……有时难免会做些冒险和新的尝试。

  13.木偶型基本音效:"喔喔……然后呢?……哦哦……再来呢?……哦……哦……"分析:这类 型女孩,一个口令、一个动作、凡而降、克制不住内心的兴奋、那个男人的声音此刻提高了八度,所以乍听之下根本无法分辨出到底是谁在叫。备注:此时的叫声此 起彼落、两相呼应、高低有致、实乃人间至美天籁也。

  乙)、外国篇一般最常说的语句:

  (1)美国、英国:

   1.啊!我来了!(I AM COMING NOW!)

  2.我已经不行了!(I AM LOST)

  3. 停!停!(STOP IT)

  4.GOOD

  5.I'M COMMING

  6.**** ME HARDER

  7.I CAN'T STOP……等

  (2)法国:

  1.啊!好啊! (啊.些比安)

  2.好棒!(蒙.雪利)

  3.快出来了!(沙、阿里乌、比安斗乌)

   (3)义大利:

  1.好啊!(毛鲁得)

  2.拜托、拜托(普利哥)

  3.快融化了(啊弗玛 西、那得)

  (4)德国、奥地利:

  1.哦!快出来了(啊、可姆得、可姆得)

  2.再用力、 再用力(比特、比特)

  (5)西班牙、墨西哥:

  1.快!快!(普罗得、普罗得)

  2.燃烧 了,快燃烧中!(卡利安得.姆琴.卡利安得)

  (6)葡陶牙、巴西:

  1.啊!已经好极了(哦、哦特摩)

   2.好啊(澎)

  (7)瑞典:

  1.爱我(爱路斯卡玛)

  2.已经不行了(雪依克码奴)

   (8)菲律宾:

  1.舒服极了(玛.沙拉普)

  (9)泰国:

  1.好啊!(利码库)

   (10)韩国:

  1.流出来了!(卡约、卡约)

  2.好啊(切达) ---多多看A片,多多学习啦---

   结论篇--"叫床"的结结论论

  本篇是本书的"真正精华"。是阿里巴巴启门的"要诀",看来简单,运用困难,除了要有敏锐的观察力以 外,还要有"各方面"的知识与学养,否则必如雾里看花,似懂非懂,最后,还莫明其妙。

  1.叫床小声呻吟:音调柔美……舒服凄惨……

   痛苦大声尖叫:突然疼痛……刺耳大高潮……悦耳狼吼:从子宫头深处出来……罕见的高潮从口鼻间出来……非常的须要高潮的来临

  2.摇 床、拆床左右摇……平衡好,适合侧击为主。前后摇……劲力够,适合上位。左右摇又前后枫……适合各种体位。动作无奇不有且大而持续……拆床专家。

   3.软床、硬床喜软床……藉力为主,喜"温柔"。喜硬床……实力为主,喜"体贴"。二床皆喜欢(换着用)……经验丰富,喜温柔与体贴。

   4.敦伦字语解析(女) (本两节因需"录音带"配合使用。故省略)

  5.敦伦字语解析(男)

  6.习惯用单 字者──譬如:不、要、想、爱、啊、吧、嗯、痒、痛、爽、快、慢、来、去、再、见、你、我、浅、深、左、右、动、停、转、退、进、浪、荡、婆、娘、父、 夫、哥、姊、弟、妹、干……───以上单字只用五个以内……脑子简单、乾脆。以上单字只用叁个以内……个性封闭、保守。以上单字用十五个以上……精敏能 干、脑子清楚。重覆单字、频仍使用……缠绵悱恻。音调低而乏力……没有兴趣、勉强应付。音调高、强而有力……很有兴趣、煞不住车.

2011年1月21日星期五

公共场所英文译写规范

随着国际化程度的加深,国内越来越多的公共场所开始提供英文标识。

但是,中国人的英语水平普遍不高,导致大量的翻译错误。比如,下面 四个真实的例子,你能看出错在哪里吗?(答案稍后公布)

  * 停车场:Park

  * 加油站:Oil Station

  * 汽车租赁店:Car Rent

  * 请勿拍照:No Photograph

这 种"中式英语"有一个专门的单词,叫做Chinglish。很多老外把它们当做笑话看。

去年,上海召开世博会,为了维护国际大都市的形 象,市政府决定系统性检查全市所有英文标识,保证翻译正确。为此公布了一个地方标准《公共场所英文译写规范》,还出版了一本书《公共场所英语标识语错误:解析与规范》。

(上面的四 个例子就是从这本书中摘录的,正确译法分别为Parking, Gas Station, Car Rental, No Photography)。

三 年前,北京也公布过一个类似的地方标准。但是,上海的这个标准分成十个部分,我感觉涵盖面更广,规定得更细。

下面是这 个标准的一个摘要,全文请下载浏览(zip文件,300KB)。

=========================================

公 共场所英文译写规范

Guidelines for English Translations in Public Places

上海市地方标准 DB31/T 457.1-2009

上海市质量技术监督局 发布

2009-10-01 实施

前 言

为规范本市公共场所的英文译 写,提升上海的城市文明形象,进一步推动上海的国际化进程,根据《中华人民共和国国家通用语言文字法》《上海市实施〈中华人民共和国国家通用语言文字法〉 办法》《上海市人民政府关于加强本市公共场所英文译名使用管理的若干意见》《上海市公共场所中文名称英译基本规则》以及国家和上海其它相关法律法规、规范 标准的有关规定,制定本标准。

第1部分:通则

一、译写原则

1. 合法性原则

公共场所的英文译写应当符合国家法律法规、规范标准的规定。

符合《中华人民共和国国家通用语言文字法》,在首先 使用国家通用语言文字的前提下进行译写。

地名标志应符合GB 17733-2008的规定。

设施及功能信息、警示和提示信息 属于GB/T 10001所列范围的,应当首先使用公共信息图形标志。

2. 规范性原则

公共场所的英文译写应当符合英语规范 和使用习惯以及国际惯例。

3. 准确性原则

公共场所的英文译写应当根据使用环境,选用符合中文内涵的英文词语。

英 语中没有直接对应词语的中文,应对所指事物或概念进行分析,参照英语国家对同类事物或概念的指称用语,根据国际通用译法,选择使用相应的词语。如:道观 Daoist Temple。

英语中有多个对应词语的中文,应对所指事物或概念进行分析,结合具体的语言环境和文化背景,根据英语的使用习 惯选择最能贴切表达该事物或概念的词语。如:"通道"在表达"地面通道"时,译作Passage,表达"地下通道"时,译作Underpass。

4、 通俗性原则

公共场所的英文译写应当避免使用生僻的英语词汇和表达方法,尽可能使用英语的常用词汇和表达方法。

5. 文明性原则

公共场所的英文译写不得出现有损我国和他国形象或有伤民族感情的词语,也不得使用带有歧视色彩或损害社会公共利益的译法。

二、 翻译方法和要求

1.实体名称信息

实体名称应针对其构成分别采用汉语拼音拼写和英文译写。

用 汉语拼音拼写,应符合GB/T 16159的规定。

用英文译写的规则由本标准其他部分规定。

2. 设施及功能信息

以 译出设施的功能信息为主,如:行李安检通道Luggage Check,"行李安检"的功能必须译出,"通道"作为设施名称可不必译出。

应 尽量译出设施的特有性质,如:医药箱First Aid Kit。

安全保障设备应尽可能简明译出其使用方法,如:求助按钮Press for Help。

设施名称在英文中已习惯使用其缩写形式的,应采用相应的英文缩写,如:断层扫描室 CT Scan Room,自动取款机ATM。

标有阿拉伯数字的功能设施信息译写直接使用阿拉伯数字表示,如:2号看台 Platform 2,3号收银台 Cashier 3;也可以在阿拉伯数字前用"No.",如:12号门Gate No. 12。

通用类设施及功能信息的具体译法见本部分 附录A。

3. 警示和提示信息

以译出警示、提示的指令内容为主,如:旅客通道,请勿滞留Keep Walking或No Stopping,"请勿滞留"必须译出,"旅客通道"可不必译出。

应明确信息所警示、提示的对象主体,如:旅游车辆禁止入内 No Admittance for Tourist Vehicles,不宜简单译作No Admittance。

应结合使用环境,用语准确, 如:请在安全线外等候Please Wait Behind the Yellow Line,"安全线"译作the Yellow Line。

应 注意语气得当,如:"请勿......"一般用Please Do Not ...;也可使用Thank You for Not -ing,如:请勿触摸 Thank You for Not Touching;"请勿吸烟"在非明确严禁吸烟的场所可译为Thank You for Not Smoking。

通用类警示和提示信息的具体译法见本部分附录A。

4. 词语选用和拼写方法

内涵相 同,但词语选用或同一词语的拼写方法在不同英语国家和地区有差异的,应采用国际上较为通用的用词和拼写方法。

同一场合中的词语选用和拼写方 法应保持一致。

5. 单复数

译文明确指向一个对象,应使用单数;如果译文所指对象不明确,宜使用复数形式。如:监督投诉 Complaints。

三、书写要求

1.大小写

字母大小写应根据英语使用 习惯。需要特别强调的警示性、提示性独词句可全部大写。

短语或短句中第一个单词和所有实义词的首字母大写。

语句或短语换 行时第一个词即使是介词或冠词,该介词或冠词的首字母也需大写。

使用连接符"-"连接两个单词时,连接符后面如果是实词则首字母大写,如果 是虚词则首字母小写,如Door-to-Port Delivery。

2.缩写

采用缩写形式应符合国际惯例。来自外来概念的 中文缩略语,应使用外来概念原词的英文缩写。如:"世贸组织"应使用WTO。

3.标点符号

完整的语句应使用英文标点符号。单 词或短语一般不使用标点符号,但若需要加以警示、强调时可使用惊叹号。

短语类信息可使用符号代替相应的英文词语,如用"&"代替 and。

4.空格

英文按单词分写,单词间空一格。

标点符号后空一格。但"&"前后各空一格,连接符和 斜杠符前后不得空格。

英语单词使用括号时括号外前后需空一格,但括号内不空格,如:中医科 Traditional Chinese Medicine (TCM) Department。

5.换行

一般不换行。需要换行的,应尽量避免词中换行,无法避免的, 应按音节分开,使用连接符"-"。连接符置于第一行行末。

6.字体

制作标志时应使用没有衬线的英文黑体字。

第 2部分:实体名称译法

译写实体名称,应针对其构成分别采用汉语拼音拼写和英文译写。实体名称的构成一般可分析为冠名、专 名、序列名、属性名和通名等。如:上海市(冠名)第三(序列名)女子(属性名)中学(通名),上海(冠名)虹桥(专名)国际(属性名)机场(通名)。

一、 冠名

涉及中国人名、地名的用汉语拼音拼写。如:闸北(闸北区中心医院)Zhabei,周恩来(周恩来故居)Zhou Enlai。但表示国际、国家、大区的名称可用英文译写,如:中国(中国银行)China,华东(华东师范大学)East China;人名译写有习惯用法的,遵循"名从主人"的原则,可沿用其习惯译法,如:宋庆龄(宋庆龄故居)Mme. Soong Ching-ling。

" 市""区""县""镇(乡)"等用英文译写,选用相应的英文词语。在不产生混淆的情况下,可以省去。本标准其他部分另有规定的除外。

二、 专名

用汉语拼音拼写。如:长风(长风公园)Changfeng。有习惯译法的除外,如:美琪(大戏 院)Majestic。

三、序列名

用英文译写,可选择采用序数词或"No.+数字"的形 式。如:上海市第一人民医院Shanghai First People's Hospital,上海市第一中级人民法院Shanghai No. 1 Intermediate People's Court。

如需要用序数词表达时,其英文写法可采用省略式,如:1st, 2nd, 3rd 等。

四、属性名

用英文译写。如:海事(上海市海事法院)Maritime。但 实体已失去属性名所指称的性质的,属性名视作专名,用汉语拼音拼写。如:远洋(上海远洋医院)Yuanyang。

可采用顺译法,将属性名置 于通名之前,如:上海市工人文化宫Shanghai Workers Cultural Palace;也可将属性名置于通名之后,用介词连接,如:上海市临床检验中心Shanghai Center for Clinical Laboratory。

五、通名

用英文译写。如:大学University,电影院 Cinema。

没有显示通名的实体名称,为便于识别,在译写成英语时应视情况将通名补出。如:梅园村Meiyuancun Restaurant。

六、各构成成分的不同组合方式

保持译名简洁。属性名和通名可以合 并用一个英文词语译出的,作为一个整体视作通名,不需再作区分并分别译出。如:管理局Administration,高等专科学校College。

现 有译名不符合上述规定,但已经成为注册商标,或使用较长时间并在国际上具有一定影响的,可以沿用,如:外滩The Bund,国际饭店Park Hotel。

实体名称中的汉语拼音可以不标声调符号。

汉语拼音中以a, o, e开头的音节连接在其他音节后面的时候,如果音节的界限发生混淆,用隔音符号(')隔开,该符号前后不空格,如:静安Jing'an。

第 3部分:交通

一、交通场所

机场译作Airport。

火 车站译作Railway Station。

大型港口译作Port;客运码头、轮渡站译作(Passenger) Ferry Terminal或Pier;货运码头译作Wharf;装卸码头(站)译作Loading/Unloading Dock。

可换乘其它交通 线路的交通枢纽、站点译作Terminal。长途汽车客运枢纽(站)、公交枢纽(站)均译作Bus Terminal;轨道交通枢纽(站)译作Metro Terminal;轮船客运枢纽(站)译作Passenger Terminal。

具有集散作用的交通枢纽、站点可译作Center。汽 车客运集散枢纽译作Bus Center,如:上海旅游集散中心Shanghai Tourist Bus Center。轮船客运集散枢纽译作Passenger Center,如:上海港吴淞客运中心Shanghai Port Wusong Passenger Center。

二、交通工具

飞机译作Airplane;航空、航线 译作Airline。

火车译作Train;铁路译作Railway。

轮船译作Ship。

公共汽车译作Bus, 长途汽车译作Long-Distance Bus。

轨道交通(包括地铁和轻轨)译作Metro;磁浮列车译作Maglev或Maglev Train。

出租车译作Taxi。

三、站点、线路指示设施

公共汽车站译作 Stop,如:前方有公共汽车站Bus Stop Ahead。轨道交通车站译作Station,如:列车前方到站The Next Station。实指某一具体站点时,"站"一般不需译出,如:徐家汇站(轨交1号线站名)到了We are arriving at Xujiahui。

轨道交通共线站译作Interchange Station;轨道交通换乘站译作Transfer Station。

出 租车扬招点译作Taxi Stand。

四、交通线路

城市公交、轨道交通线路直接用阿拉伯 数字表示,如:公交63路Bus Line 63;轨道交通1号线Metro Line 1。

飞机、火车、轮船航班用大写字母和阿拉伯数字 表示,具体根据相关行业标准或惯例执行。

五、服务和功能设施

用英文直接译写,如:国内出 发(区)Domestic Departures。

应使功能指示明确,如:危险品检查仪Security Check,不必按中文直译。

应 结合使用环境,保持译文简洁,如:轨道交通网络换乘查询Transfer Information,在特定使用场合(如轨道交通站点中)下可简译。

安 全保障设施应尽可能译出简明使用方法,如:求助按钮Press for Help。

六、警示和提示信息

用 英文直接译写,如:列车门关闭,请立刻退到安全线以内!Door Closing. Please Stay Behind the Yellow Line。

应使警示和提示的指令清晰,如:请勿将身体伸出扶梯外Keep Body in Escalator。

应结合使用 环境,保持译文简洁,如:小心列车与站台间隙Mind the Gap,在特定使用场合(如轨道交通站点中)可简译。

交通类警示和提示信息 的具体译法见本部分附录B。附录B以外的,其英文译写应当遵从本标准通则5.2和5.3的规定。

第4部分:旅游

会 址译作Site;故居译作Former Residence或Memorial Residence。

公园译作Park;园、圃、苑译作 Garden。

动物园译作Zoo;植物园译作Botanical Garden。

陵园译作Cemetery;烈士陵园译作 Revolutionary Martyrs' Cemetery。

乐园、游乐园译作Amusement Park。儿童乐园(设在旅游景区内)译作Children 's Playground;主题公园译作Theme Park。

水族馆译作 Aquarium,海洋馆、海洋公园等均译作Ocean Park。

与宗教有关、每层顶部都有装饰的塔译作Pagoda,如:松江方塔 Songjiang Square Pagoda。其他的塔译作Tower,如:东方明珠广播电视塔Oriental Pearl Radio and TV Tower。

佛教的寺译作Temple,如:静安寺Jing'an Temple。道观译作Daoist Temple,如:白云观Baiyun Daoist Temple。清真寺译作Mosque。教堂译作Church或Cathedral,如:上海国际礼拜堂Shanghai Community Church;董家渡天主堂Dongjiadu Cathedral。

绿地译作Green Land。

度假村(区)译作 Resort;旅游城译作Tourist Town。

第5部分:文化体育

博物馆、科技 馆、纪念馆等均译作Museum。

文史馆译作Research Institute of Culture and Hiistory。

展 览馆、陈列馆、展览中心等具有展示、陈列功能的场馆可译作Exhibition Center或Exhibition Hall。

博览 (会)译作Exposition或Expo,如:世界博览会World Exposition或World Expo,中国2010年上海世博会Expo 2010 Shanghai China。

美术馆译作Art Gallery或Art Museum。

图书馆译作 Library。

音乐厅译作Concert Hall。

剧场、剧院、舞台、戏苑均译作Theatre。

艺术中 心、艺术馆均译作Art Center。

社区文化(活动)中心译作Community Cultural Center。文化艺术指导中心和具有艺术指导职能的区县级文化馆译作Cultural Guidance Center。

电影院、电影 厅、影都、放映公司及以放电影为主的影剧院均译作Cinema。"影城"一般也译作Cinema,特殊情况如规模特别大、或者有同名的电影院需要区分的可 译作Cinema City或Cineplex,如:新天地国际影城Xintiandi UME International Cineplex。

文 化宫、少年宫、青年宫等中的"宫"可以沿用Palace。

电脑屋、网吧等译作Internet Café 或 Cybercafé。

体 育馆译作Gymnasium或Indoor Stadium。

体育场译作Stadium。足球场译作Football Stadium。

体 育中心译作Sports Center。

游泳馆一般译作Swimming Center,也可译作Natatorium。

第 6部分:教育

一、高等学校

大学译作University。大学的二级 学院一般译作College。研究生院译作Graduate School。

本、专科学院一般译作College。职业学院可译作 Vocational College。职业技术学院可译作Polytechnic College(理工科性质较强)或Vocational & Technical College(职业教育性质较强)。

专科性较强的学院可译作Institute。

艺术类 学院及研究性教育机构可译作Academy,如:上海戏剧学院Shanghai Theatre Academy。

高等专科学校可译作 College。

二、中等学校

初级中学一般译作Middle School或Junior High School。

高级中学一般译作High School,特殊情况下(如与初级中学对比)可译作Senior High School。

完全中学(含高中和初中)译作High School。

职业高级中学、中等职业学校、中等专业学校均译作Vocational School。

三、 九年一贯制学校

含小学和初中的九年一贯制学校译作School。

四、小学

小 学译作Primary School。

五、幼儿园

幼儿园译作Kindergarten。

六、 成人教育

业余大学译作Part-time University或者Part-time College。

电 视大学译作Television University。

职工大学译作Workers College。

继续教育学院译作 College for Continuing Education。

网络教育学院译作Online Education College。

七、青少年校外教育

青少年活动中心、基地等均译作Youth Center。

八、政治类院校

党校译作Party School或Party Institute。

社会主义学院译作Institute of Socialism。

行政学院一般译作 Administration Institute。

干部学院一般译作Cadre Institute。

九、 终身教育

终身教育进修学院译作Lifelong Education Institute。

培训中心译作 Training Center。

社区学院译作Community College。

十、特殊教育

特 殊教育类学校、辅读学校一般译作Special School。

十一、其他

神学院译作 Seminary。

佛学院译作Buddhist Academy。

十二、注意事项

属 性名需译成两个及以上英文单词时,一般置于通名之后,用介词of或for连接,如:华东政法大学East China University of Political Science and Law。属性名只有一个英文单词时,一般置于通名之前,如:上海海洋大学Shanghai Ocean University。

附属译作Affiliated to,如:华东师范大学附属幼儿园The Kindergarten Affiliated to East China Normal University。

实验译作Experimental,如:南阳实 验幼儿园Nanyang Experimental Kindergarten。

模范译作Model,如:上海市南洋模范中学(高 中)Shanghai Nanyang Model High School。

联合译作Joint,如:上海市嘉一联合中学(初 中)Shanghai Jiayi Joint Middle School。

第7部分:金融

一、 银行

1.银行译作Bank。

2. 分行译作Branch。

各银行的在沪分行均译作 Shanghai Branch,并置于上位译名(所属总行译名)之后,如:中国人民银行上海市分行The People's Bank of China, Shanghai Branch。

3. 支行译作Sub-Branch。

各银行的支行译作Sub- Branch,一般置于上位译名(所属总行、分行译名)之后,如:中国银行上海市分行普陀支行Bank of China, Shanghai Branch, Putuo Sub-Branch。也可省去分行译名,简作:中国银行普陀支行Bank of China, Putuo Sub-Branch。

4. 支行以下分支机构的具体译法

营业部译作Banking Center或Banking Department。

分理处译作Office。

储蓄所译作Savings Office或Savings Agency。

5. 译写顺序

一般省去上位分行、支行译名,置于总行译名之前,用","隔开,如:中国农业银行(上海市分行嘉定支行)纪王分理处Jiwang Office, Agricultural Bank of China。

二、交易所

交 易所译作Exchange。

证券交易所译作Stock Exchange,如:上海证券交易所Shanghai Stock Exchange。

期货交易所译作Futures Exchange,如:上海期货交易所Shanghai Futures Exchange。

三、证券公司

证券公司(股份有限公司、有限责任公司)译作 Securities Limited Company(Limited Company可缩写为Co., Ltd.,下同),如:华泰证券有限责任公司Huatai Securities Co., Ltd.。

四、保险公司

保 险公司(股份有限公司、有限责任公司)译作Insurance Limited Company,如:民生人寿保险股份有限公司Minsheng Life Insurance Co., Ltd.。

人寿保险译作Life Insurance。

财产保险译作 Property Insurance。

第8部分:医疗卫生

一、 医院

医 院译作Hospital,如:上海梅山医院Shanghai Meishan Hospital。

职工医院译作Workers' Hospital。

中心医院译作Central Hospital。

人民医院译作People's Hospital。

中 医医院译作Traditional Chinese Medicine Hospital,如:上海中医医院Shanghai Traditional Chinese Medicine Hospital。中医可缩写为TCM。

护理医院译作Nursing Home。

中西医 结合医院译作Hospital of Integrated Traditional Chinese and Western Medicine。如:岳阳中西医结合医院Yueyang Hospital of Integrated Traditional Chinese and Western Medicine。也可直接译作Hospital,属性名(中西医结合)可不译出,如:岳阳中西医结合医院Yueyang Hospital。

实体已失去属性名所指称的性质的,属性名视作专名,用汉语拼音拼写。如:上海远洋医院Shanghai Yuanyang Hospital。

大学附属医院,需要译出大学名称时,将大学名称置于医院名称之后,中间用","分隔。

二、 其他医疗机构

疾病防治院(所)译作Clinic for (疾病名)Disease Prevention and Treatment,或简译作(疾病名)Clinic,如:静安区牙病防治所Jing'an Dental Clinic。

疾病预防控制中 心译作Center for Disease Control and Prevention。

社区卫生服务中心译作Community Health Center。

精神卫生中心译作Mental Health Center。

献血办译作Blood Donation Office。献血(血液)中心译作Blood Center,如:上海市(红十字)血液中心Shanghai (Red Cross) Blood Center。

(医疗卫生)研究所一般译作Research Institute,也可译作Institute。

第9部分:邮政电信

一、 邮政实体名称

邮政集团公司译作Post Group Company;邮政公司译作Post Company。

邮 政公司各营业网点对外统一使用"中国邮政"的标志,译作China Post。

快递(速递)公司译作Express Company,如:上海中诚快递公司Shanghai Zhongcheng Express Company。快递(速递)有限公司译作Express Limited Company(Limited Company可缩写为Express Co., Ltd.),如:威鹏达航空速递有限公司Weipengda Airmail Express Co., Ltd.。也可简译作Express,如:民航快递(公司)China Civil Aviation Express。

二、 电信实体名称

可使用各相关服务品牌名称作为实体名称,不必译出机构全名。如:中国移动(中国移动通信集团)China Mobile。其他如:中国电信China Telecom;中国联通China Unicom;中国铁通China Tietong;中国网通China Netcom。

各营业网点、窗口服务机构的通名译作Customer Service Center,属性名使用所属相应服务品牌,如:中国电信营业厅China Telecom Customer Service Center。

第 10部分:商业服务

一、商业区

中央商务区、中央商业区、商务中心区译 作Central Business District (CBD)。

商业副中心译作Sub-CBD,如:五角场商业副中心 Wujiaochang Sub-CBD。

商圈译作Business Zone,如:徐家汇商圈Xujiahui Business Zone。

商业街译作Commercial Street,如:四川北路商业街Sichuan Rd.(N) Commercial Street。

步行街译作Pedestrian Street,如:南京东路步行街Nanjing Rd.(E) Pedestrian Street。

金融区译作Financial District或Financial Zone,如:陆家嘴金融贸易区Lujiazui Financial & Trade Zone。

二、商业、休闲广场

主要功能为 购物、餐饮和商业活动的大型场所,中文名称为"广场"的,可以译作Plaza,如:万达广场Wanda Plaza。

在城市中用作花园或休 闲场所,四方形的开放区域译作Square,如:人民广场People Square。

三、 大厦、大楼

商 业性写字楼可译作Tower或Building或Mansion,如:金茂大厦Jinmao Tower。

具有购物、餐饮等功能的大楼、大 厦可译作Plaza,如:腾飞大厦Ascendas Plaza。

四、购物中心

规模巨 大,集购物、休闲、娱乐、餐饮等于一体,包括百货店、大卖场以及众多专业连锁零售店在内的超级商业中心译作Shopping Mall。

中 等规模的购物中心译为Shopping Center,如:上海锦江国际购物中心Shanghai Jinjiang International Shopping Center。

五、超市

设有自选购物区的超市译作 Supermarket;特大型超市、大卖场可译作Hypermarket。

六、商场、商店

只 针对货品进行分类销售、不具有休闲娱乐等多种功能的较小规模的商店、店铺一般译作Store或Shop。

百货商店(公司)译作 Department Store。

家居建材商店译作Home Furnishing and Decorating Materials Store (Shop);书店译作Bookstore,书城译作Book Mall;音像制品店译作Audio-Video Store (Shop);干洗店译作Dry Cleaning Store (Shop);南(北)货店(土特产店)译作Specialty Store (Shop);成人用品商店译作Adult Store (Shop);珠宝商店、银楼等直接译作Jewelry;金店可译作Gold Store (Shop)。

便利店译作Convenience Store (Shop);精品店译作Boutique;折扣店译作Discount Store (Shop)。

专卖店采用"品牌名+Store (Shop)"的体例译写。

七、服务业

美 容美发中心(店、厅)译作Beauty Salon。

温泉浴场译作Spa;浴场、洗浴中心译作Bath Center,也可直接译作Bath。

婚庆服务公司(商店)译作Wedding Service或Wedding Planner。婚纱店译作Wedding Dress Store。婚纱摄影店译作Wedding Photography Studio。

房 屋中介、房地产经纪公司等可译作Real Estate Agency。

典当行译作Pawn或Pawnshop,如:东方典当 Oriental Pawn。

家政服务、保姆介绍服务机构译作Maid Service或Housekeeping Service。

拍 卖行译作Auction,如:上海拍卖行Shanghai Auction。

租赁公司等译作 Leasing Company或Rental (Company) 或Rental Shop,如:上海鑫威汽车租赁有限公司Shanghai Xinwei Automobile Leasing Co., Ltd.。

八、饭店

酒家、酒楼、酒 店、菜馆、餐馆、餐厅、饭庄、食府,以及饮食店等仅提供餐饮服务的服务机构,均译作Restaurant,如:老正兴餐馆Laozhengxing Restaurant。

快餐店、快餐厅译作Fast Food Restaurant或Snack Bar。自助餐厅译作Buffet。

火 锅(店)译作Hot Pot,如:南华火锅楼Nanhua Hot Pot。

中文名称中含有"阁、轩、府、坊、村"等的,视作专名的一部 分,连同专名一起音译,如:绿波廊Lubolang Restaurant。

九、酒吧、茶馆

咖 啡馆(厅、店)译作Café,如:泰晤士咖啡厅Thames Café。

酒吧译作Bar,如:迈阿密酒吧Miami Bar。

茶 馆译作Teahouse,如:得和茶馆Dehe Teahouse。

十、宾馆

宾馆,以及 提供住宿的酒店、饭店等可译作Hotel,如:上海浦东大酒店Shanghai Pudong Hotel。

经济型的连锁旅馆可译作 Motel或Inn,如:锦江之星Jinjiang Inn。

十一、旅行社

旅行社等旅游 服务商业机构一般译作Travel 或 Travel Service,如:上海国际友好旅行社Shanghai International Goodwill Travel。

十二、分支机构

商业、服务业单位的分支机构,一般译为 Branch。

(完)

在PHP语言中使用JSON

目前,JSON已经成为最流行的数据交 换格式之一,各大网站的API几乎都支持它。

我写过一篇《数据类型和JSON格式》,探讨它的设计思想。今天,我想总结一下PHP语言对它的支持,这是开发互联网应用 程序(特别是编写API)必须了解的知识。

从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。

一、 json_encode()

该函数主要用来将数组和对象,转换为json格式。先看一个数组转换的例子:

   $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

  echo json_encode($arr);

结果为

   {"a":1,"b":2,"c":3,"d":4,"e":5}

再看一个对象转换的例子:

   $obj->body = 'another post';

  $obj->id = 21;

  $obj->approved = true;

   $obj->favorite_count = 1;

  $obj->status = NULL;

   echo json_encode($obj);

结果为

  {
    "body":"another post",

    "id":21,

    "approved":true,

     "favorite_count":1,

    "status":null
  }

由于json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编 码,否则会得到空字符或者null。当中文使用GB2312编码,或者外文使用ISO-8859-1编码的时候,这一点要特别注意。

二、 索引数组和关联数组

PHP支持两种数组,一种是只保存"值"(value)的索引数组(indexed array),另一种是保存"名值对"(name/value)的关联数组(associative array)。

由于 javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。

比如,现在有一个索引数组

   $arr = Array('one', 'two', 'three');

  echo json_encode($arr);

结 果为:

  ["one","two","three"]

如果将它改为 关联数组:

  $arr = Array('1'=>'one', '2'=>'two', '3'=>'three');

  echo json_encode($arr);

结果就变了:

   {"1":"one","2":"two","3":"three"}

注意,数据格式从"[]"(数组)变成 了"{}"(对象)。

如果你需要将"索引数组"强制转化成"对象",可以这样写

   json_encode( (object)$arr );

或者

   json_encode ( $arr, JSON_FORCE_OBJECT );

三、类 (class)的转换

下面是一个PHP的类:

  class Foo {

     const ERROR_CODE = '404';

    public $public_ex = 'this is public';

    private $private_ex = 'this is private!';

     protected $protected_ex = 'this should be protected';

    public function getErrorCode() {

      return self::ERROR_CODE;

    }

  }

现在,对这个类的实例进行 json转换:

  $foo = new Foo;

  $foo_json = json_encode($foo);

  echo $foo_json;

输出结果是

   {"public_ex":"this is public"}

可以看到,除了公开变量(public), 其他东西(常量、私有变量、方法等等)都遗失了。

四、json_decode()

该函数 用于将json文本转换为相应的PHP数据结构。下面是一个例子:

  $json = '{"foo": 12345}';

  $obj = json_decode($json);

  print $obj->{'foo'}; // 12345

通 常情况下,json_decode()总是返回一个PHP对象,而不是数组。比如:

  $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

  var_dump(json_decode($json));

结果就是生成一个PHP对象:

   object(stdClass)#1 (5) {

    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)

  }

如果想要强制生成PHP关联数 组,json_decode()需要加一个参数true:

  $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

  var_dump(json_decode($json),true);

结果就生成了一个关联数组:

   array(5) {

     ["a"] => int(1)
     ["b"] => int(2)
     ["c"] => int(3)
     ["d"] => int(4)
     ["e"] => int(5)

  }

五、 json_decode()的常见错误

下面三种json写法都是错的,你能看出错在哪里吗?

   $bad_json = "{ 'bar': 'baz' }";

  $bad_json = '{ bar: "baz" }';

   $bad_json = '{ "bar": "baz", }';

对这三个字符串执行 json_decode()都将返回null,并且报错。

第一个的错误是,json的分隔符(delimiter)只允许使用双引号,不能 使用单引号。第二个的错误是,json名值对的"名"(冒号左边的部分),任何情况下都必须使用双引号。第三个的错误是,最后一个值之后不能添加逗号 (trailing comma)。

另外,json只能用来表示对象(object)和数组(array),如果对一个字符串或数值使用json_decode(),将会返回null。

   var_dump(json_decode("Hello World")); //null

六、 参考材料

  * PHP Manual

  * Ed Finkler, JSON is Everybody's Friend

(完)

2011年1月19日星期三

自行搭建twitter https代理IP

需求:

有ROOT权限的Linux服务器(VPS或独立服务器)

独立IP一个(做好心理准备,可能遭墙)

 

流程,以Ubuntu服务器为例,其他请参考:

  1. 安装xinetd:sudo apt-get install xinetd
  2. 修改配 置。注意等号前面必须有空格或者tab(傻逼的格式要求!):

sudo vi /etc/xinetd.d/https

service https

{

           disable        =no

           flags                =REUSE

           socket_type        =stream

           wait                =no

           user                =root

           port                =443

           protocol            =tcp

           redirect            =128.121.146.109 443 # 该IP为ping api.twitter.com获得的

        #bind                =你的local IP(如果你的服务器有多个IP)

}

 

然 后在hosts文件中加入

你的服务器IP twitter.com

你的服务器IP api.twitter.com

 

DONE