2011年8月26日星期五

一些简单分支判断语句的简写形式

有一些分支判断语句比较简单,可以不用if else语句来实现。
下面以Javascript语言为例来演示:


var a;
var f = function(m){
alert(m);
}


//示例一
if(a){
f();
}
//简写形式
a && f();


//示例二
if(!a){
f();
}
//简写形式
a || f();


//示例三
if(a>3){
f(1);
}else{
f(2);
}
//简写形式
a>3 ? f(1) : f(2);

在线城镇报制作

在线城镇报制作网站已完成,欢迎大家使用并反馈意见。

几点说明:

  • 1.此网站部署在内部网络

  • 2.网站采用了最新的WEB技术,不支持低于IE8版本的浏览器

  • 3.已对此网站生成的报文和之前软件生成的报文进行了逐字节对比分析,理论上不会出现格式错误,请放心使用

  • 4.所有预报数据在发布的同时也保存在了网站后台的数据库

  • 5.每次使用时会自动读取最近一次保存的预报和最新的省台指导报(自动识别.ZDB.01、.ZDB.02等订正报文)

  • 6.可在任何电脑上用最新版本的IEfirefox或者chrome等浏览器打开此网站,没有任何差别。当然你也可以用IPad等手持设备连接内网后使用此网站

  • 7.程序已自动对预报时次进行了合适的偏移,比如上次的预报是昨天20时,本次08时的预报会自动对天气状况进行12小时偏移,对最高温度偏移0小时,对最低温度进行24小时偏移。程序对省台指导报也自动进行偏移。

  • 8.其它问题和建议请在此页面留言或者发送邮件xu_work@qq.com给我

2011年8月21日星期日

php 字符编码(utf-8,gbk,gb2312)转换函数

php中有两个函数可以完成字符编码的转换



1. iconv函数


函数原型:string iconv ( string $in_charset , string $out_charset , string $str )
说明:此函数为php默认支持的,不需要安装其他模块,而且速度较快,推荐使用。
一些问题:当字符串中包含中文字符——(中文输入法下 shift+减号键)时此函数会舍弃此符号及之后的字符

2. mb_convert_encoding函数


函数原型:string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] )
说明:此函数需要启用 mbstring 扩展库( 在 php.ini里将 ;extension=php_mbstring.dll 前面的 ; 去掉)
一些问题:当php文件自身编码为UTF-8(含BOM)时,转换后的字符串开头有错误的字符。所以php文件一定要以UTF-8(无BOM)格式编码

示例:将字符串从UTF-8编码转换为GB2312编码

header("Content-type: text/html; charset=gb2312");

$str = "abcde 今天是个好天气";

echo mb_convert_encoding($str,"gb2312","UTF-8");

echo '
';

echo iconv("UTF-8", "gb2312", $str);

php字符串中单引号和双引号的区别

在php中可以用单引号或者双引号来表示一个字符串:


$str1 = 'this is a string';
$str2 = "this is a string";

以上的两个字符串是相同的 $str1 = $str2 = this is a string

但是两种表示方法在一些情况下是不同的

$str1 = 'a\nb\\c\$dd\t\'\"dfeee\x30mmm';
echo $str1;
$str2 = "a\nb\\c\$dd\t\'\"dfeee\x30mmm";
echo $str2;


str1将输出以下代码

a\nb\c\$dd\t'\"dfeee\x30mmm


str2将输出以下代码

a
b\c$dd \'"dfeee0mmm


在单引号表示的字符串中,只有\'\\会被进行转义
在双引号表示的字符串中,以下情况将被转义































































表示法 含义
\n 换行 (LF or 0x0A (10) in ASCII)
\r 回车 (CR or 0x0D (13) in ASCII)
\t 水平方向的 tab(HT or 0x09 (9) in ASCII)
\v 竖直方向的 tab (VT or 0x0B (11) in ASCII) (since PHP 5.2.5)
\f 换页 (FF or 0x0C (12) in ASCII) (since PHP 5.2.5)
\\ 反斜线
\$ 美金dollar标记
\" 双引号
\[0-7]{1,3}
符合该表达式顺序的字符串是一个八进制的字符
\x[0-9A-Fa-f]{1,2}
符合该表达式顺序的字符串是一个十六进制的字符

2011年8月20日星期六

wordpress代码高亮插件wp-codebox的使用方法详解

使用说明

<pre lang="LANGUAGE" line="1" file="download.txt" colla="+">
//这里写你的代码
</pre>

可用参数:
* lang="LANGUAGE" - 所用的语言
* file="download.txt" - 将创建一个下载链接.
* line="N" - 开始行号.
* colla="+/-" - The `+/-` 将打开/折叠 codebox.
* line,file,colla是可选的.

lang参数常用的值如下

c cpp php css javascript html4strict xml python perl reg mysql matlab ini java bash dos asp actionscript

示例代码1

<pre lang='cpp'>
#include <iostream>

int main()
{
int a=3;
double b=12.8;
char * m = "a string";

std::cout<<"a = "<<a<<"  b = "<<b<<"   m = "<<m<<std::endl;
}
</pre>

将产生如下输出

#include

int main()
{
int a=3;
double b=12.8;
char * m = "a string";

std::cout<<"a = "<

jQuery.post()函数的使用方法

函数原型: jQuery.post( url, [data], [success(data, textStatus, jqXHR)], [dataType] )
参数说明:
url 请求发送的地址
data 随请求发送的一个关联对象或者一个字符串
success(data, textStatus, jqXHR) 指定请求成功时执行的一个callback函数
dataType 预期从服务器接收的数据类型. 默认: 智能判断 (xml, json, script, or html).

返回值类型:jqXHR

此函数是下面函数的简写形式

$.ajax({
type: 'POST',
url: url,
data: data,
success: success,
dataType: dataType
});


使用示例:

$.post("test.php", { "func": "getNameAndTime" },
function(data){
console.log(data.name); // John
console.log(data.time); // 2pm
}, "json")
.success(function() { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });


关于dataType参数的详细说明
期待从服务器返回的数据类型. 如果不指定, jQuery 将基于返回结果的MIME类型 (XML MIME 类型将产生 XML, in 1.4 JSON 将产生 一个 JavaScript 对象, in 1.4 script 将执行 script, and 其他将作为字符串返回)尝试推断它. 可用的类型 (和传递给 success callback 函数第一个参数最终的结果) 是:

"xml": 返回一个可以通过jQuery解析的 XML 文档 .

"html": 把 HTML 作为普通文本返回; included script tags are evaluated when inserted in the DOM.

"script": 将返回值作为 JavaScript对待并以普通文本方式返回. Disables caching by appending a query string parameter, "_=[TIMESTAMP]", to the URL unless the cache option is set to true. Note: This will turn POSTs into GETs for remote-domain requests.

"json": 将返回值作为 JSON 对待 并返回一个 JavaScript 对象. In jQuery 1.4 JSON 数据使用严格的方式解析; 任何格式异常的JSON 都被拒绝并抛出一个parse error. (更多关于正确的JSON格式请参考 json.org 网站.)

"jsonp": Loads in a JSON block using JSONP. Adds an extra "?callback=?" to the end of your URL to specify the callback. Disables caching by appending a query string parameter, "_=[TIMESTAMP]", to the URL unless the cache option is set to true.

"text": 普通文本字符串.

多个以空格分隔的值: 从 jQuery 1.5, jQuery 能够将从Content-Type头中得到的dataType转换为你需要的其他类型 . 例如,如果你想将一个文本返回值作为XML对待,使用 "text xml" 作为 dataType. You can also make a JSONP request, have it received as text, and interpreted by jQuery as XML: "jsonp text xml." Similarly, a shorthand string such as "jsonp xml" will first attempt to convert from jsonp to xml, and, failing that, convert from jsonp to text, and then from text to xml.

怎样从文本文件执行SQL语句

mysql客户程序一般交互使用:

shell> mysql db_name

如果你需要在命令行上指定连接参数,命令应为:

shell> mysql -h host -u user -p < batch-file

Enter password: ********

还可以将SQL语句放到一个文件中然后告诉mysql从该文件读取输入。要想实现,创建一个文本文件text_file,并包含你想要执行的语句。然后按如下所示调用mysql:

shell> mysql db_name < text_file

还可以用一个USE db_name语句启动文本文件。在这种情况下,不需要在命令行中指定数据库名:

shell> mysql < text_file

如果正运行mysql,可以使用source或\.命令执行SQL脚本文件:

mysql> source filename

mysql> \. filename

有时想要使用脚本来向用户显示进度信息;为此可以插入下述行:

SELECT '' AS ' ';

将输出

如果你有一个产生多个输出的查询,你可以通过一个分页器而不是盯着它翻屏到屏幕的顶端来运行输出:

shell> mysql < batch-file | more

//你可以捕捉文件中的输出以便进行进一步的处理:

shell> mysql < batch-file > mysql.out

原文链接:client-side-scripts.html#batch-commands

2011年8月17日星期三

Javascript 中的 json与对象的转化

简单的说json是一种数据交换格式。具体说明请见官方网站中文站

将后台程序(如php)发送过来的json数据转化为javascript的数组或者对象的方法十分简单,代码如下

//假设后台发送的json数据为 '{a:2,b:1}' 存储于str中
var data = eval( '(' + str + ')' );


然而想将一个javascript对象转化为json格式的字符串却并不那么简单,特别是对象的属性值递归包含一个对象时(如 var obj={a:[2,3],b:{m:[3,4],n:2} } ),那么有没有什么方法将obj转化为json格式的字符串呢?

当然你可以自己写一个函数,递归遍历一个对象并将其转化为json格式的字符串,对于大部分人来说这有些困难并容易出错。
幸好已经有人做好了这件事情,你只用包含一段javascript代码即可。
打开官方网站http://www.json.org/json-zh.html ,找到Javascript分类下的 json2.js链接并打开,然后下载文件并解压,在你的网页中包含json2.js文件即可。

使用方法:










------------------------------------------------------------
补充:貌似现在新版的浏览器都原生支持JSON.stringify函数了。请见此文介绍:JSON对象和字符串之间的相互转换

Javascript 中的编码与解码

1.encodeURI/decodeURI 用于编码/解码整个带参数的URI,比如用函数新打开一个网址 注意参数为整个(或编码后的)url字符串

var url="http://grow.sinaapp.com/?test=a&str='a b+c 编码'";
var out= encodeURI(url);
alert(out);

运行以上代码

2.encodeURIComponent/decodeURIComponent 用于编码解码一个URI组件(url请求参数),比如ajax请求时的参数 注意参数为URL请求参数的一部分

var arg="http://grow.sinaapp.com/?test=a&str='a b+c 编码'";
var out= encodeURIComponent(arg);
alert(out);

运行以上代码

3.escape/unescape 对字符串进行编码/解码,用于html文档内部,比如对于文档dom的操作

var str="http://grow.sinaapp.com/?test=a&str='a b+c 编码'";
var out= escape(str);
alert(out);

运行以上代码

Javascript 中的引用与复制

1.当在javascript中执行下列语句后将改变什么

var b = a;

要根据不同情况而论

2.javascript中的变量类型分为基本类型和对象类型,除基本类型(bool, number, string)外其他皆为对象类型。当然基本类型也为简单对象,我们这里为了叙述方便加以区分。
除基本类型外,一切赋值皆为引用。看下面代码

var a={m:2};
var b = a;
b.m = 3;

上面a为对象{m:2}的引用,b也为此对象的引用。它们指向完全相同的对象。当执行第三行(b.m = 3;)后它们指向的对象变为{m:3},也就是说a.m === b.m ===3;
修改a的属性或者b的属性时也就是修改它们指向的对象的属性。

3. 赋新值后引用对象改变

var a={m:2};
var b = a;
b = {n:3};

执行上述第二行(var b = a;)后a和b指向相同的对象{m:2},但当执行第三行(b = {n:3};)后b引用了新的对象{n:3},a仍然引用之前的对象{m:2}。此时修改a或b时对彼此没有影响。

4. 判断赋值操作是否会影响到之前的对象
由上面分析可知,当对一个变量赋予新值时,这个变量解除之前的引用,指向新的对象。但当操作一个对象的属性时,会影响到所有指向这个对象的变量。

5.如果复制一个对象,而不是引用它,需要将该对象所有属性进行递归深度复制

2011年8月12日星期五

CSS框模型:一切皆为框 -- 从行框说起

1.行框 看图说话
[caption id="attachment_685" align="alignnone" width="355" caption="css 行框 各部分详解"]css 行框[/caption]

上图代表了框模型中的行框。line-height 属性设置行间的距离(行高)。该属性会影响行框的布局。在应用到一个块级元素时,它定义了该元素中基线之间的最小距离而不是最大距离。

line-height 与 font-size 的计算值之差(在 CSS 中成为“行间距”)分为两半,分别加到一个文本行内容的顶部和底部。可以包含这些内容的最小框就是行框。[来源]

2.框模型 继续看图
css 框模型

上图代表了CSS中的框,每个框有高度(height)、宽度(width)、内边距(padding)、边框(border)、外边距(margin)等属性。

3.css中元素的分类

元素是文档结构的基础,在CSS中,每个元素生成了一个包含了元素内容的框(box,也译为“盒子”)。但是不同的元素显示的方式会有所不同,例如<div>和<span>就不同,而<strong>和<p>也不一样。在文档类型定义(DTD)中对不同的元素规定了不同的类型,这也是DTD对文档之所以重要的原因之一。[来源]

i. 替换和不可替换元素

从元素本身的特点来讲,可以分为替换和非替换元素。

a) 替换元素

替换元素就是浏览器根据元素的标签和属性,来决定元素的具体显示内容。

例如浏览器会根据<img>标签的src属性的值来读取图片信息并显示出来,而如果查看(X)HTML代码,则看不到图片的实际内容;又例如根据<input>标签的type属性来决定是显示输入框,还是单选按钮等。

(X)HTML中的<img>、<input>、<textarea>、<select>、<object>都是替换元素。这些元素往往没有实际的内容,即是一个空元素,例如:




浏览器会根据元素的标签类型和属性来显示这些元素。可替换元素也在其显示中生成了框。

b) 非替换元素

(X)HTML 的大多数元素是不可替换元素,即其内容直接表现给用户端(例如浏览器)。例如:

非替换元素

段落<p>是一个不可替换元素,文字“段落的内容”全被显示。

ii. 显示元素 块级元素和行内元素

除了可替换元素和不可替换元素的分类方式外,CSS 2.1中元素还有另外的分类方式:块级元素(block-level)和行内元素(inline-level,也译作“内联”元素)。

a) 块级元素

在视觉上被格式化为块的元素,最明显的特征就是它默认在横向充满其父元素的内容区域,而且在其左右两边没有其他元素,即块级元素默认是独占一行的。

典型的块级元素有:<div>、<p>、<h1>到<h6>,等等。

通过CSS设定了浮动(float属性,可向左浮动或向右浮动)以及设定显示(display)属性为“block”或“list-item”的元素都是块级元素。

但是浮动元素比较特殊,由于浮动,其旁边可能会有其他元素的存在。而“list-item”(列表项<li>),会在其前面生成圆点符号,或者数字序号。

b) 行内元素
行内元素不形成新内容块,即在其左右可以有其他元素,例如<a>、<span>、<strong>等,都是典型的行内级元素。

display属性等于“inline”的元素都是行内元素。几乎所有的可替换元素都是行内元素,例如<img>、<input>等等。

不过元素的类型也不是固定的,通过设定CSS 的display属性,可以使行内元素变为块级元素,也可以让块级元素变为行内元素。

4.回到行框

平时块状元素用得比较多,也比较熟悉,可对于行内元素才是真正包含文字数据的地方,也是重点需要修饰的地方。

一般的行内元素(span,img,input)具有框模型中规定的边框背景等css属性,但一些属性对于行内元素来说可能是没有效果的。

height/width 属性设置元素内容区的高度和宽度,在内容区外面可以增加内边距、边框和外边距。

行内非替换元素(如span)会忽略这两个属性。

『关注』真实的印度,在成见之外

『关注』真实的印度,在成见之外人口红利高峰在中国渐渐退去,但正在印度强劲到来。印度会超过中国吗?这是一个无法避开的话题。印度,这个一直因其“肮脏混乱”被轻视和取笑的国家,似乎正在奔向与中国匹敌的地位。在我们观察印度的时候,遗漏了什么?印度蕴含了什么能量,还为我们所不了解?印度的脚步声逼近之际,已经到了我们抛弃成见、重新观察印度的时候。

“印度是一个乱七八糟的国家。”把生命奉献给印度独立运动的圣雄甘地曾这么说自己的祖国。

“你知道Delhi Belly这个词吗?”英国广播公司(BBC)摄影记者马尔科斯一脸坏笑地问本报记者—这是一个“印度造英语”单词,可以翻译成“德里腹泻”。马尔科斯正准备前往印度进行一个主题拍摄。和很多对印度有一知半解的旅行者一样,他已经做好了腹泻一周的打算。2010年英联邦运动会在德里举行时,曾被称为“肮脏运动会”。连久离故土的印度游子也难以适应故土,诺贝尔文学奖获得者、印度裔英国作家奈保尔在首访印度的时候,曾惊讶于祖国的肮脏无序、混乱不堪,惊讶于农村普遍存在的各种陋习和近乎蒙昧的状态,以至于他在游记中含讥带讽地写下了“(在印度)大便是一种社交活动”这样的语句。

『关注』真实的印度,在成见之外混乱肮脏的印度,还是闪光的?在一贯以政府效率、基础设施和工业现代化进展著称的中国,普通民众看待印度时,难免产生优越感。中国网络上流传的一个笑话说,在印度洗淋浴的时候,千万不能唱歌,否则就会闹肚子。印度的传统葬礼仪式照片,被中国网民以“恒河浮尸”的惊悚标题广为传播。信息时代的猎奇者,依然能搜集到足够的图片和见闻,来支持外界对印度的传统想象,如糟糕的卫生、肮脏的环境、过于密集的人口、残酷的种姓制度等等。在甘地去世63年之后,中国现代国际关系研究院的印度问题专家马加力教授依然承认:“中国的多数人认为,印度是一个非常保守、混乱和落后的国家。”右图:在印度东部丛林地区,村民开始使用太阳能,传统生活方式有所改变

但是,旅行者的图片和文字构建的印度形象,与一个数字和概念构建的印度形象却不甚相容。猎奇游客的惊鸿一瞥,并不妨碍观察家们作出一些闪光的评价:“印度是世界上人口最多的民主国家”,“印度是世界上经济发展最快的国家之一”,“印度要当世界的办公室”、“全球外包中心”,“印度宝莱坞是仅次于美国好莱坞的第二大电影工业基地”……而在过去十多年里,后者是全球各大媒体和评估机构最着迷的题目,尤其是因为它们与印度混乱的表象同时存在。

据国际货币基金组织(IMF)的统计,在过去20年中,印度的年均GDP增速高达5.8%,在发展中国家当中名列前茅。目前,它已经是世界上第十大经济体。要是按照购买力评价(PPP)来计算的话,印度是世界上第四大经济体。印度总理曼莫汉·辛格(经济学家,印度的“改革之父”)在2010年雄心勃勃地宣称:“印度经济增长率有望在未来两年达到10%,与中国相媲美。”这并非不切实际的话—在中国刚刚通过的“十二五规划”当中,下一个5年里GDP的平均增速被设定为7%。印度的GDP增速要超过中国,看来在短期之内就能够实现。虽然印度表面并不闪闪发光,其内核竞争力之强劲却是毋庸置疑的。

『关注』真实的印度,在成见之外中国人,走近些
中国人对印度的情感微妙复杂,因为印度与中国有很多相似之处,使得它们之间的竞争颇似两个表亲之间的较劲:同样是数千年文明,同样拥有十多亿人口(并且比中国人口年轻),同样拥有核武器和不断壮大的海军,同样经济高速发展,同样被认定为“新兴市场国家”,同属“金砖五国”之一—这个国家恰好又跟中国在并不久远的现代史中有过一场失败的战争,有着漫长的边界和大面积的领土争端,并扼守在中国能源进口通道南线的印度洋之上。它们曾经是不结盟运动的合作者,又曾在大国外交当中满怀猜忌:中国和“印度的宿敌”巴基斯坦维持“全天候的友好关系”,印度则选择与俄罗斯保持“特殊利益的安全关系”,彼此之间进行牵制。直到世纪之交,两国的外交关系才走向现实。2005年,中印双方宣布建立“战略合作伙伴关系”。第一条新德里到北京的直飞航线,是在2006年才正式开通的。右图:印度古吉拉特邦的妇女身着传统服装,坐在家里打手机

正因如此,不少中国人对印度的判断依然很容易失之轻率和表面化,无论是对习俗、文化、国际关系还是国内体制。不过,这些判断在更深一层的接触和观察之后,就会改变。

印度是一个有着多元宗教的国度,习惯“大一统”的中国人是难以想象的。著名的印度裔诺贝尔经济学奖得主阿玛蒂亚·森在《善于争鸣的印度人》一书中提到,印度有印度教、伊斯兰教、基督教、佛教、锡克教、耆那教、琐罗亚斯德教(即拜火教)和犹太教等多重宗教信仰,仅在印度教当中,信仰的神祇就多达3.3亿(印度超过80%的人口是印度教信徒)。此外,这个国家还有23种官方语言。要保留和尊重这么多的宗教和信仰,就必须保留和尊重长久以来的一些习俗,即便它们看上去与现代社会格格不入。对于前述中文网络上广为传播的“恒河浮尸”,在北京外国语大学任教的印度人B·辛格先生向本报记者解释说:“我的祖父去世之后,骨灰撒入恒河。这是我们的习俗。”另一方面,印度博大精深的文化在中国有大批的拥趸,如在过去几年中,印度大师克里希那提关于修行的经典书籍在中国城市里流行,让人想起1990年代瑜伽在中国的风行。今年5月,北京将举办庆祝印度诗人泰戈尔诞辰150周年的纪念活动。历经高速城市化的中国人开始重新看待印度的宗教,中国一位著名记者在印度旅行了一个月之后,对本报记者总结道:“这是一个有信仰的国度,对比中国社会的喧嚣和浮躁,印度人的心态十分平和。”

『关注』真实的印度,在成见之外看待地缘政治时,中印双方依然都存在“零和游戏”(一方所得正是另一方所失)的思维习惯,这是冷战的遗产。中国《环球时报》2011年4月份报道印度的时候,用“印(度)……将(中国)区域互动当做战略威胁”的措辞,批评印度对于中国的戒心。印度前驻华记者艾蓓(Pallvi Aiyar)对本报记者说:“能源问题导致的印中竞争是‘结构性’的,何况两国还存在领土争端。”右图:2011年4月7日,一位象夫坐在象背上,在新德里马路边的停车区休息

但“零和游戏”远非中印之间唯一的关系。中国媒体和网络上,批评印度联合美国(或者日本)制衡中国的声音不绝于耳。印度驻华大使苏杰生在接受本报记者采访时,认为“印度和中国既有竞争也有合作”,他用一句简单的话总结了网上流行的冷战思维:A和B联手针对C,或者B和C联手针对A,这种合纵连横的战略手腕如今“都是一些老套的思路”。在2009年年底召开的联合国气候变化会上,中国就和印度携手合作,组成了独立于西方世界之外的“基础四国”,致力于改变西方国家在气候变化问题上制订的不利于发展中国家的游戏规则。在海南三亚刚刚结束的“金砖五国”峰会上,中印共同提出改革全球治理机制、改革国际货币体系的呼吁。艾蓓对于目前中印关系的总结更加清晰:“我觉得,现在世界发展的趋势是松散化。你可以在这个领域跟此方结盟,然后在那个领域跟它竞争。”

『关注』真实的印度,在成见之外对印度看似“十分混乱”的民主制度,中国人也逐渐意识到它自有其规律。在马加力教授的著作《崛起中的巨象》里,观察了2009年印度大选:选举持续了一个月,7.14亿印度选民冒着40℃的高温投票,1000多个政党参选。有600万工作人员为选举提供服务—它并没有乱成一团,反而进行得越来越好。北京大学印度研究中心副主任姜景奎教授认为:“印度的政治是稳定的,其根本在于它有民主制度。”正是这个制度,保证了一个有数亿神祇、23种官方语言和11亿人口的国家20多年持续发展,而且早在1947年独立之后,就历史性地消除了本国的饥荒问题。这个制度并非在印度凭空产生。B·辛格先生认为,英国人留下的民主制度、文官制度以及英语,是印度至今维持稳定和发展的根本原因。有一个例子让人颇感意外:1965年,印度南方因为语言问题发生骚乱。当地人宁可使用英语作为自己的官方语言,也不肯承认印地语的官方语言地位,并声称要脱离印度。最后解决问题的方式,竟是延长了英语作为官方语言的时限,这次分裂危机就此暂时渡过。虽然英语是一种“外来语”,殖民史也已经过去很久,但它依然能在印度政治中起到粘合剂的作用。右图:印度宝莱坞号称“世界最大电影生产基地”,每年大约生产900部电影。图为宝莱坞影片在孟买上映

当然,印度人也要忍受民主的软肋和弱势政府的表现。《印度斯坦时报》驻华记者帕蒂尔在清华大学演讲时,说了一个笑话:“新德里和北京都是堵车严重的国家首都。北京堵车是因为汽车过多,而新德里堵车却是因为示威游行的民众太多。”1989年到1999年期间,印度的政坛动荡导致9次政府更迭。自1990年代起,因为印度教教派主义运动的兴起,一度引发了印度教教徒和穆斯林之间的冲突。官僚机构效率低下,令外来者难以忍受。但印度人依旧为民主制度感到骄傲,不愿为了效率将其牺牲。1970年代,当英迪拉·甘地试图建立国大党的威权专制时,她被选民所抛弃,直到她改变选举方针,才在1980年重新当选印度总理。

『关注』真实的印度,在成见之外当中国人朝印度走近些,他们的看法自然就会分化。2011年,北京大学的学生做了一个调查—“中印青年对对方国家的看法”,据姜景奎教授告诉本报记者,北大和印度德里大学的受调查者当中,都有“百分之十几”的人认为两国互为竞争对手。另外一所中国大学西安交大的被调查者当中,却有“百分之四五十”的人认为印度是中国的竞争对手。“在同一个国家里,对外国的认知也是有差别的。如何看印度,是一个视角取舍的问题。”姜景奎教授总结说。他认为,不能用别人的尺度来衡量中印关系,中国现在对于印度的认识,“建立于西方认知的基础之上”:以所谓中印之争是“龙象之争”为例,其实印度人崇拜的偶像是孟加拉虎,“大象”这个象征是西方世界加给它的,归根结底,“龙象之争”是部分英语精英提出的,但在普遍意义上,这不为印度人所接受。右图:印度公立小学的学生享用免费午餐。“Mid Day Meal”计划旨在使所有学生免于饥饿,增加入学率,降低缺课率,增进不同种姓学生的交流

矛盾的印度和镜子和许多发展中国家一样,印度依然充满难以想象的矛盾。

虽然它解决了饥荒问题,却仍有4亿印度人营养不良。它在孟买建起了现代化的大都市,却在市郊存在世界上最大的贫民窟。印度以自己作为“世界的办公室”、承接大量美国外包产业而自豪,但庞大的乡村却停留在农业时代。曾在印度卡纳特卡邦农村调研的人民大学博士研究生石嫣告诉本报记者,在村子里,除了向导没人会说英语,手机普及率几乎为零,只有村长家里才有手机和电话。“整个村庄还沉睡在封建时代当中,年轻人跑到城市里去了。”石嫣说。在美国中央情报局(CIA)的Factbook数据统计中,2011年印度的识字率是71%,虽然已较刚独立时有了极大提升,但知识阶层和普通民众之间仍存在知识鸿沟。

中国的学界也一度发现印度民主制度之中的矛盾—它实际上是民主制度之下的“一党专政”。B·辛格先生认为,这是印度的民主特色,而并非“专政”。在印度独立后的64年间,尼赫鲁-甘地家族领导的国大党执政时间长达52年。北大从事印度研究的硕士生张忞煜从另一个角度提到了以尼赫鲁为代表的印度北方政治集团:“当年尼赫鲁和国大党政治斗争的失败,在于他们仅仅了解德里那个小英语圈子的媒体在说什么,并且以为那就是印度人的想法。”印度的英语精英和印度普通阶层之间,存在巨大的差异。

城乡差异,南北文化和政治差异,阶层差异,这三种差异使印度的不少精英也为之焦虑。艾蓓在中国的7年时间里,一直为此感慨:“印度的城乡贫富差距和现代化差距……甚至比中国城乡之间的差距还要大很多。农村的落后不仅体现在基础设施和生活设备上,更体现在精神层面上。”当中国人观察印度的时候,他们的看法往往比印度本国人更加尖锐。“现在的年轻人……因为中国发展太快,在看印度的时候会带上一点轻视,甚至是蔑视。”马加力教授说。这种带有自我优越感的眼光,并不能让人客观地认识印度。

但不论是以优越感、西方尺度还是冷战思维看待印度,印度的崛起已经是不可阻挡的事实。“不管你愿不愿意,印度是个大国,你必须和它交往。”姜景奎教授说。他认为,印度将来的发展会超过俄罗斯。即使不能完全摒弃西方尺度和冷战思维,也要跳出这些习以为常的思维模式,正视印度作为发展中大国的角色,客观评判它在国际舞台上的各种表现。从这个意义上来说,我们对于印度的认识才刚刚起步。对中国和中国人而言,印度不仅是竞争对手与合作伙伴,也可以是一个充满混乱和生机的灵感,一面镜子—在这当中,我们既能看到我们的优点,也能看到自身惆怅的缺失。

『周末画报』撰文 吴梦启

原文链接:http://m.metroer.com/post/964/

php 用header下载文件

你希望客户要填完一份表格,然后就将网址指到该文件,这样客户才能下载,但如果你想做一个关于"网上购物"的电子商务网站,考虑安全问题,你不想用户直接复制网址下载该文件,笔者建议你使用PHP直接读取该实际文件然后下载的方法去做。程序如下:

一 下载当前服务器文件


$file_name = "info_check.exe";
$file_dir = "/public/www/download/";
if (!file_exists($file_dir . $file_name)) { //检查文件是否存在
echo "文件找不到";
exit;
} else {
$file = fopen($file_dir . $file_name,"r"); // 打开文件
// 输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);
// 输出文件内容
echo fread($file,filesize($file_dir . $file_name));
fclose($file);
exit;}


二 下载远程文件
而如果文件路径是"http" 或者 "ftp" 网址的话,则源代码会有少许改变,程序如下:

$file_name = "info_check.exe";
$file_dir = "http://www.easycn.net/";
$file = @ fopen($file_dir . $file_name,"r");
if (!$file) {
echo "文件找不到";
} else {
Header("Content-type: application/octet-stream");
Header("Content-Disposition: attachment; filename=" . $file_name);
while (!feof ($file)) {
echo fread($file,50000);
}
fclose ($file);
}


这样就可以用PHP直接输出文件了。

三 一般情况只需要三条语句即可

header ('Content-type: application/'.$file_ext);
header ("Expires: 0");//可选
header ("Pragma: no-cache"); //可选
header ('Content-Disposition: attachment; filename='.$file_name.'');
header ("Content-Length: ".$file_size); //可选
readfile ($file_name);


原文链接:http://lhdeyx.blog.163.com/.../31819697200983010224884/

2011年8月11日星期四

基于web的城镇报发布程序

1. 类 WebCzb 用于整体管理
2. 创建对象 var app = new WebCzb(option); 所有选项以单独的js文件保存
3. 动态生成html代码 $('#new-czb').append(app.getUIHtml());
4. app.lastForcast 存储上一次的预报 并转化为本次预报(自动偏移时次)
5. app.nowForcast 存储本次预报并动态更新
6. app.postForcast 上传预报至省FTP和后台数据库
7. app.curForcastSpan 存储目前用户编辑的时段
8. 当用户切换时段时自动保存当前时段数据
9. json2.js将预报以json方式存储于后台
10.mysql数据库的创建
#创建数据库
CREATE DATABASE IF NOT EXISTS onlineWork;
USE onlineWork

/*
创建表
*/
CREATE TABLE IF NOT EXISTS
czbEdit (
postTime DATETIME NOT NULL PRIMARY KEY,
forcastBegin DATETIME NOT NULL,
forcastType ENUM('first','second','third','forth') NOT NULL,
forcastJson TEXT NOT NULL,
forcastText TEXT NOT NULL,
editName VARCHAR(20) );

---------------------------------------------------------
will do:

1. 切换日期时进行偏移处理[√]
2. 添加保存按钮仅保存不发布预报
3. 预报发布后重新请求最新的预报以供继续制作另一时次预报
4. 在页面右侧增加一些有用信息 气温风速降水历史平均状况注意事项等
5. 增加备注功能 对某一时次进行备注和提醒
6. 压缩JS代码
7. 美化页面UI 字体 margin等
8. 发布的同时提交个人预报 返还更清晰的成功或错误报告
9. 地图式编辑 多选式编辑
10. 切换时次后 返还上次信息前 应当处于不可编辑状态

2011年8月10日星期三

雨量报警网页修改

1.开启短信报警

2.报警区域增加手动输入城市代号

3.当达到一次报警时(如10mm) 在雨量报警页面添加即将达到10mm的雨量站,并设定可取消此站的报警

4.重构代码 利用函数对象来简化代码

5.修改CSS文件 使配置界面和信息界面更易用

6.增加极大风速显示

2011年8月9日星期二

在XP及Ubuntu上快速安装及配置LAMP(Linux+Apache+Mysql+Php/Perl/Python)环境

Ubuntu 快速安装LAMP环境及配置方法:




一、安装LAMP环境
在终端输入以下命令(是的,你没看错,只用一条命令即可)

sudo apt-get install apache2 mysql-server mysql-client php5 php5-gd php5-mysql

安装过程中会要求你设置MySQL的帐户root密码,暂时可以直接回车,不设置密码

二、配置LAMP环境
Apache2默认安装在/etc/apache2目录下
打开用户配置文件:

sudo gedit /etc/apache2/httpd.conf


添加下面的一行来启用php文件类型支持:

AddType application/x-httpd-php .php .php5

至此LAMP已可以正常运行 网站目录默认在 /var/www

三、其他可选配置
1>apache 的配置文件路径 /etc/apache2/httpd.conf
2>php.ini 路径 /etc/php5/apache2/php.ini
3>mysql配置文件 路径 /etc/mysql/my.cnf
4>phpmyadmin配置文件路径 /etc/phpmyadmin/apache.conf
5>网站根目录配置文件路径 /etc/apache2/sites-enabled






XP 快速安装LAMP环境及配置方法:




一 安装及配置Apache

1.打开网页 选择合适的版本下载
http://httpd.apache.org/download.cgi

2.xp下双击安装包,直接安装
ubuntu下安装说明见 apache.org/docs/2.2/install.html

3.打开conf/httpd.conf 进行配置

#配置网站所在的文件夹
DocumentRoot "D:/webdocs"


#配置网站文件夹的属性


#当文件不存在时不要列出目录中的文件列表
Options -Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None

#
# 控制对此目录的访问权限
#
Order allow,deny
Allow from all




二 安装及配置Mysql
Ubuntu下安装过程见此文 ubuntu 10.04 MySQL 5.5.11 源代码编译安装
XP下可直接下载安装包

三 安装及配置PHP

1.下载 the PHP zip binary distribution from » PHP for Windows: Binaries and Sources.

选择 VC6 x86 Thread Safe 版本

2. 直接解压后放在softs文件夹下即可

3. 在安装目录中另存 php.ini-production 为 php.ini 并进行配置

a.设置模块目录并开启需要的模块

; Directory in which the loadable extensions (modules) reside.
; 此项设置模块所在的目录,注意如果path变量没有设置php安装目录时
; 此项一定要设置为绝对目录,否则Apache将无法正确加载php扩展模块
extension_dir = "D:/softs/php-5.2.17/ext/"

以上设置不正确时将会出现类似下述错误信息

PHP Warning: PHP Startup: Unable to load dynamic library './ext/php_bz2.dll' - \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library './ext/php_curl.dll' - \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0


b.设置可最大上传文件的大小和默认时区等选项

[Date]
; Defines the default timezone used by the date functions
date.timezone = Asia/Chongqing


4.打开apache 的 conf/httpd.conf 进行配置

# 让apache自动在每次启动时加载php模块. apache2.2 版本需要加载php5apache2_2.dll
LoadModule php5_module "D:/softs/php-5.2.17/php5apache2_2.dll"
AddHandler application/x-httpd-php .php

# 配置 php.ini 文件所在路径
PHPIniDir "D:/softs/php-5.2.17"


5.重启计算机

----------------------------------------------------
今天调试网页时发现apache服务器经常自动重启,打开error.log文件后发现下述信息

[Sat Aug 20 19:43:25 2011] [notice] Parent: child process exited with status 3221225477 -- Restarting

在网上查找一番后发现原因是php文件中包含了数据库查询语句,而apache调用了与当前版本不一致的libmysql.dll 所致。
由于安装的mysql 数据库是早期版本,在安装mysql后程序自动设定mysql安装目录PATH环境变量。mysql安装目录下含有版本不一致的libmysql.dll 文件,apache调用了那个不合适的文件后产生错误。

而在安装php时并没有将php目录设定为PATH环境变量。

解决办法:删除mysql安装目录里面的libmysql.dll 文件,然后将php安装目录设置为PATH环境变量即可。

删除48小时外文件

找到micaps中的cf程序

将cf复制到目录中

在dos中运行命令
cf * 48

SVN命令行客户端安装与配置(管理sinaapp代码)

1.下载命令行客户端

http://www.collab.net/downloads/subversion/
下载地址:1.官网下载 需登录
2.dbank网盘下载

2.安装及配置

双击安装
配置文件所在路径 C:\Documents and Settings\work\Application Data\Subversion

打开server文件进行HTTP代理配置(如果没有使用代理可跳过这一步)

[global]
# http-proxy-exceptions = *.exception.com...
http-proxy-host = 172.18.172.251
http-proxy-port = 80


3.部署代码

http://sae.sina.com.cn/?m=devcenter&catId=212

预报分析

9号20时


副高东北移 500hPa弱东北风 700/850偏东风 850气温22-24

10.20


副高略有西伸 500hpa东北风与西南风弱辐合 850气温20-22 湿度略有增大

11.20


500西北气流

12.20


黄海一带低涡发展 我区处于低涡后部东北风与偏西风弱切变位置 850弱降温 700/850湿度略有增大

win7 市县平台安装

不能映射局域网解决 (某些Win7系统不支持映射)

在你的WIN7上运行gpedit.msc,进入组策略的 计算机配置 - windows设置 - “安全设置”-“本地策略”-“安全选项”,将“网络安全:LAN管理器身份验证级别”项的值“没有定义”改为“发送LM & NTLM响应”,再重启电脑。

http://answers.microsoft.com/zh-hans/windows/forum/windows_7-networking/

在Windows 7系统中的共享默认设置与XP系统是有些区别的。

首先请确认,在进行网络映射的设置时,是否能够通过“浏览”找到ITOUCH,如果找不到的话,可能是在共享设置方面存在问题。

请在网络和共享中心中,点击左侧的“更改高级共享设置”,然后选择“启用网络发现”。

设置完成后,确认是否能够解决问题。

另外在Windows 7系统中,是需要通过LLTD协议检测网络映射的连接的,所以在XP系统中需要安装KB922120才能被Windows 7系统所识别,但是我们对Itouch所使用的系统并不了解,所以如果问题仍然无法解决,建议与该程序的提供商联系,确认是否有类似的补丁可以安装。

关于不同版本Windows系统共享的设置方法可以查看下面的链接。

http://windows.microsoft.com/zh-CN/windows7/Networking-home-computers-running-different-versions-of-Windows

2011年8月8日星期一

启用新浪服务器上的博客

1.修改时区 副标题 顶部图片 评论控制

2.启用一些插件 google分析 防垃圾评论akismet 分享到其他网站addtoany等

3.边栏模板去掉saelogo链接

4.header.php 增加自定义样式

” />
” type=”text/css” rel=”stylesheet”/>

5. 修改loop.php 让归档和分类目录文件全文显示




6.由于不支持php写文件函数,所以不能修改顶部图片,但可以自行上传至指定目录

/wp-content/themes/twentyten/images/headers/

分别上传940px × 198px concave.jpg和230px × 48px concave-thumbnail.jpg文件

7.使用svn添加1g-music插件

8.使用文本小工具添加top100音乐列表

9.修改wp-codebox.php 27和28行
    include_once ABSPATH ."wp-config.php";
include_once ABSPATH ."wp-settings.php";


10.修改评论部分的代码及样式 /wp-includes/comment-template.php

$fields = array(
'author' => '
' . ' ' . ( $req ? '*' : '' ) .
'
',
'email' => '',
'url' => '
' .
'
',
);

$required_text = sprintf( ' ' . __('Required fields are marked %s'), '*' );
$defaults = array(
'fields' => apply_filters( 'comment_form_default_fields', $fields ),
'comment_field' => '
',



11.添加wp-pagenavi插件和related-posts插件
修改loop.php和loop-single.php使插件生效