<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>碧水轩 &#187; 计算机</title>
	<atom:link href="http://www.ecoviews.cn/archives/category/computer/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ecoviews.cn</link>
	<description>人生的三要素：思想 物质 能力---记录生活，改变自己！</description>
	<lastBuildDate>Sat, 14 Jan 2012 05:12:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>PHP类中self与parent调用方法或函数的使用说明！</title>
		<link>http://www.ecoviews.cn/archives/1134.html</link>
		<comments>http://www.ecoviews.cn/archives/1134.html#comments</comments>
		<pubDate>Thu, 04 Nov 2010 08:58:49 +0000</pubDate>
		<dc:creator>若水思源</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[parent]]></category>
		<category><![CDATA[self]]></category>

		<guid isPermaLink="false">http://www.ecoviews.cn/?p=1134</guid>
		<description><![CDATA[在PHP类使用中常常会涉及到self与parent关键字的使用，两者的使用方式如下：


相关文章:<ol><li><a href='http://www.ecoviews.cn/archives/53.html' rel='bookmark' title='Permanent Link: PHP打开文本文件的两个方法！'>PHP打开文本文件的两个方法！</a></li>
<li><a href='http://www.ecoviews.cn/archives/463.html' rel='bookmark' title='Permanent Link: 网站中超链接嵌套！'>网站中超链接嵌套！</a></li>
<li><a href='http://www.ecoviews.cn/archives/871.html' rel='bookmark' title='Permanent Link: !document.getElementById等的说明！'>!document.getElementById等的说明！</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>在PHP类使用中常常会涉及到self与parent关键字的使用，两者的使用方式如下：</p>
<p><span style="color: #008000;">1.self表示本类，在通过self::method()方法时，其执行的顺序是先查找子类中的method方法，如果子类中没有定义，则寻找父类的method方法，如果父类也没有，则出现错误。</span></p>
<p><span style="color: #008000;">2.parent表示父类，在通过parent::method()方法时，其逻辑就是执行父类中定义的method，而不管子类中是否定义method，如果父类中没有定义method,则出现错误，这时即使子类中有method也是一样。</span></p>
<p>举例来说：</p>
<pre>
header("Content-type:text/html;Charset:utf-8");

class ParentClass
{
 function baseMethod()
 {
  echo "I am declared in ParentClass\n";
 }
}

class ChildClass extends ParentClass
{
 function baseMethod()
 {
  echo "I am declared in ChildClass\n";
 }
 function childMethod()
 {
  self::baseMethod();
 }
}
ChildClass::childMethod();
</pre>
<p>以上代码其结果是&#8221;I am declared in ChildClass&#8221;，因为子类中存在 baseMethod()，所以使用self::baseMethod()时调用的是子类的 baseMethod()。如果去掉子类的 baseMethod()，即如以下的代码：</p>
<pre>
header("Content-type:text/html;Charset:utf-8");

class ParentClass
{
 function baseMethod()
 {
  echo "I am declared in ParentClass\n";
 }
}

class ChildClass extends ParentClass
{
 
 function childMethod()
 {
  self::baseMethod();
 }
}
ChildClass::childMethod();
</pre>
<p>结果为&#8221;I am declared in ParentClass&#8221;，因为子类中没有了baseMethod()，则self::baseMethod()调用父类的baseMethod()。</p>
<p>当然如果你把上面的self换成parent，这一直调用的就是父类的baseMethod()，如果父类中没有定义，即使是子类中定义了也会出错。</p>


<p>相关文章:<ol><li><a href='http://www.ecoviews.cn/archives/53.html' rel='bookmark' title='Permanent Link: PHP打开文本文件的两个方法！'>PHP打开文本文件的两个方法！</a></li>
<li><a href='http://www.ecoviews.cn/archives/463.html' rel='bookmark' title='Permanent Link: 网站中超链接嵌套！'>网站中超链接嵌套！</a></li>
<li><a href='http://www.ecoviews.cn/archives/871.html' rel='bookmark' title='Permanent Link: !document.getElementById等的说明！'>!document.getElementById等的说明！</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ecoviews.cn/archives/1134.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>使用360浏览器访问QQ空间！</title>
		<link>http://www.ecoviews.cn/archives/1129.html</link>
		<comments>http://www.ecoviews.cn/archives/1129.html#comments</comments>
		<pubDate>Thu, 04 Nov 2010 07:45:01 +0000</pubDate>
		<dc:creator>若水思源</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[360]]></category>
		<category><![CDATA[http]]></category>

		<guid isPermaLink="false">http://www.ecoviews.cn/?p=1129</guid>
		<description><![CDATA[在上一篇博文<<QQ限制360浏览器浏览QQ空间实现方式！>>中我向大家介绍了QQ如何限制用户浏览QQ空间的原理，这里我向大家提供一个简单的使用360浏览器浏览QQ空间的方式。


没有相关文章.]]></description>
			<content:encoded><![CDATA[<p>在上一篇博文&lt;&lt;<a title="Permalink to QQ限制360浏览器浏览QQ空间实现方式！" href="http://www.ecoviews.cn/archives/1125.html">QQ限制360浏览器浏览QQ空间实现方式！</a>&gt;&gt;中我向大家介绍了QQ如何限制用户浏览QQ空间的原理，这里我向大家提供一个简单的使用360浏览器浏览QQ空间的方式。</p>
<p>要实现360浏览器浏览QQ空间，关键在于修改用户发送的http请求头中的user-agent,360浏览器本身就提供了这样的功能。</p>
<p>在360浏览器&#8212;工具&#8212;-360浏览器安全选项&#8212;-高级&#8212;选择使用和IE浏览器相同的User Agent串，则就可以了，如下图所示：</p>
<p><a href="http://www.ecoviews.cn/wp-content/uploads/2010/11/360.jpg"><img class="size-full wp-image-1130 alignnone" title="360" src="http://www.ecoviews.cn/wp-content/uploads/2010/11/360.jpg" alt="" width="431" height="247" /></a></p>


<p>没有相关文章.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ecoviews.cn/archives/1129.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QQ限制360浏览器浏览QQ空间实现方式！</title>
		<link>http://www.ecoviews.cn/archives/1125.html</link>
		<comments>http://www.ecoviews.cn/archives/1125.html#comments</comments>
		<pubDate>Thu, 04 Nov 2010 07:27:28 +0000</pubDate>
		<dc:creator>若水思源</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[http]]></category>

		<guid isPermaLink="false">http://www.ecoviews.cn/?p=1125</guid>
		<description><![CDATA[今天朋友用360浏览器打开自己的qq空间时出现了以下的一个图画，360不能访问qq空间了。


没有相关文章.]]></description>
			<content:encoded><![CDATA[<p>今天朋友用360浏览器打开自己的qq空间时出现了以下的一个图画，360不能访问qq空间了。</p>
<p><a href="http://www.ecoviews.cn/wp-content/uploads/2010/11/360QQ.jpg"><img class="size-full wp-image-1126 alignnone" title="360QQ" src="http://www.ecoviews.cn/wp-content/uploads/2010/11/360QQ.jpg" alt="" width="418" height="108" /></a></p>
<p>在这样的情形下，朋友问我这样的功能腾讯是如何实现的，其实要实现这个功能非常地简单，其关键的原理就在于http请求头。</p>
<p>在HTTP请求头中有一个user-agent，其内容就是包含了用户浏览器的一些信息。如你新建一个PHP页面输入以下信息：</p>
<p>&lt;?php<br />
header(&#8220;Content-type:text/html;Charset=utf-8;&#8221;);<br />
echo $_SERVER['HTTP_USER_AGENT'];<br />
?&gt;</p>
<p>在IE6，IE7和360浏览器中结果分别如下：</p>
<p>IE6:<br />
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE6.0; Windows NT 5.1; SV1) ; CIBA; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR3.5.30729)</p>
<p>IE7:<br />
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE6.0; Windows NT 5.1; SV1) ; CIBA; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR3.5.30729)</p>
<p>360:<br />
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE6.0; Windows NT 5.1; SV1) ; CIBA; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR3.5.30729; <span style="color: #ff0000;">360SE</span>)</p>
<p>其中使用360浏览器的时候，输出的结果中包含了一个明显的360SE，如上面红色标记的，因此，QQ通常就是按照这样的一种方式来限制使用360浏览器的用户访问其空间。</p>
<p>原理：通过检测用户发送的http请求头中user-agent的信息，如果发现带有360SE或者360的字符信息的，跳转到另外的页面，就如同我朋友所见的那样的页面。</p>
<p>其实如果要突破这样的现在还是可以的，那就是通过程序来修改你的HTTP请求头中user-agent的信息，不过这就不是我们在此要说的了。</p>


<p>没有相关文章.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ecoviews.cn/archives/1125.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>php中global变量的使用说明！</title>
		<link>http://www.ecoviews.cn/archives/1114.html</link>
		<comments>http://www.ecoviews.cn/archives/1114.html#comments</comments>
		<pubDate>Tue, 02 Nov 2010 07:42:44 +0000</pubDate>
		<dc:creator>若水思源</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[global]]></category>

		<guid isPermaLink="false">http://www.ecoviews.cn/?p=1114</guid>
		<description><![CDATA[介绍PHP中使用global变量时的方法和应该注意的事项！


相关文章:<ol><li><a href='http://www.ecoviews.cn/archives/53.html' rel='bookmark' title='Permanent Link: PHP打开文本文件的两个方法！'>PHP打开文本文件的两个方法！</a></li>
<li><a href='http://www.ecoviews.cn/archives/111.html' rel='bookmark' title='Permanent Link: 竖向伸缩列表的做法！'>竖向伸缩列表的做法！</a></li>
<li><a href='http://www.ecoviews.cn/archives/712.html' rel='bookmark' title='Permanent Link: C语言中strtok函数进行分割字符串！'>C语言中strtok函数进行分割字符串！</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>看看下面的一些程序的执行结果：</p>
<p>程序一：</p>
<pre>
config.php

 

&lt;?php

$a=1;

?&gt;

 

index.php

&lt;?php

include("config.php");

function do()

{

echo $a;

}

do();

echo "--".$a;

?&gt;

结果：--1

说明：通过include或者require引入的文件，其变量的值不能在相关的函数内部使用，但是却可以在函数外使用。
</pre>
<p>程序二：</p>
<pre>
index.php

&lt;?php

$a=1;

function do()

{

echo $a;

}

do();

echo "--".$a;

?&gt;

结果：--1

说明：在自身页面中定义的变量同样不能在函数中使用。

总结：PHP中定义普通变量的作用域与C语言是不同的，虽然它们的作用在整个页面，但是却不包含相关的函数里。
</pre>
<p>程序三：</p>
<pre>
index.php

&lt;?php

function go()

{

global  $a=1;

return;

}

go();

echo "--".$a;

?&gt;

结果：出现错误即global $a=1错误。
</pre>
<p>程序四：</p>
<pre>
index.php

&lt;?php

function go()

{

global  $a;

$a=1;

return;

}

go();

echo "--".$a;

?&gt;

结果：--1

说明：global变量不能在定义时直接初始化，而只能够先定义后才能初始化，同时函数体内定义的global变量在函数体外同样有效。
</pre>
<p>程序五：</p>
<pre>
config.php

 

&lt;?php

global $a;

$a=1;

?&gt;

 

index.php

&lt;?php

include("config.php");

function do()

{

echo $a;

}

do();

echo "--".$a;

?&gt;

结果：--1

说明：在函数体外定义的global变量其作用域没有在函数体内当中其作用，这和一般变量的效果相同，不同之处在于global变量此时不能直接初始化。即在config.php文件当中，global $a=1会出错
</pre>
<p>程序六：</p>
<pre>
config.php

 

&lt;?php

$a=2;

?&gt;

 

index.php

&lt;?php

include("config.php");

function do()

{

global $a;

$a++;

}

do();

echo "--".$a;

?&gt;

结果：--3

说明：在函数体中申明了全局变量 $a，任何变量的所有引用变量都会指向到全局变量，即config.php中给$a赋值，do函数中对$a加一，都会影响global变量的内容。
</pre>


<p>相关文章:<ol><li><a href='http://www.ecoviews.cn/archives/53.html' rel='bookmark' title='Permanent Link: PHP打开文本文件的两个方法！'>PHP打开文本文件的两个方法！</a></li>
<li><a href='http://www.ecoviews.cn/archives/111.html' rel='bookmark' title='Permanent Link: 竖向伸缩列表的做法！'>竖向伸缩列表的做法！</a></li>
<li><a href='http://www.ecoviews.cn/archives/712.html' rel='bookmark' title='Permanent Link: C语言中strtok函数进行分割字符串！'>C语言中strtok函数进行分割字符串！</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ecoviews.cn/archives/1114.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux C中read/write,fread/fwrite等的使用说明！</title>
		<link>http://www.ecoviews.cn/archives/1093.html</link>
		<comments>http://www.ecoviews.cn/archives/1093.html#comments</comments>
		<pubDate>Wed, 27 Oct 2010 07:26:36 +0000</pubDate>
		<dc:creator>若水思源</dc:creator>
				<category><![CDATA[C语言]]></category>
		<category><![CDATA[fread]]></category>
		<category><![CDATA[fwrite]]></category>
		<category><![CDATA[read]]></category>
		<category><![CDATA[write]]></category>

		<guid isPermaLink="false">http://www.ecoviews.cn/?p=1093</guid>
		<description><![CDATA[在Linux C语言编程中往往会涉及到文件的操作，在Linux系统下，对于文件的读写非常常见，通常文件的读写涉及到直接读写和具有缓冲区的读写。


相关文章:<ol><li><a href='http://www.ecoviews.cn/archives/37.html' rel='bookmark' title='Permanent Link: 获得任一页面的链接和地址！'>获得任一页面的链接和地址！</a></li>
<li><a href='http://www.ecoviews.cn/archives/712.html' rel='bookmark' title='Permanent Link: C语言中strtok函数进行分割字符串！'>C语言中strtok函数进行分割字符串！</a></li>
<li><a href='http://www.ecoviews.cn/archives/779.html' rel='bookmark' title='Permanent Link: PHP实现按标准显示图片！'>PHP实现按标准显示图片！</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>在Linux C语言编程中往往会涉及到文件的操作，在Linux系统下，对于文件的读写非常常见，通常文件的读写涉及到直接读写和具有缓冲区的读写。</p>
<p>1.read,write等文件操作函数是直接读写的，即没有缓冲区的读写。其原型如下：</p>
<p>ssize_t read/write (int fd,void *buf,size_t count);</p>
<p>fd: 通过open函数打开文件返回的文件描述符<br />
buf:指定存储器读出或写入数据的缓冲区，但是与基于缓冲区读写的概念不同<br />
count:指定读出或写入的字节数</p>
<p>使用read,write的一个非常重要的问题就是如果读取的文件的长度与缓冲区buf的长度不是倍数的时候，buf会自动清除自己原来已经读取的内容么？举例来说，如果文件内容是：0123456789，buf的长度为3，那么使用read函数读取了678以后，在读取9时，buf的内容是“90/0/”还是“978”呢？</p>
<p>一个演示的例子如下所示：</p>
<pre>#include &lt;unistd.h&gt;
#include &lt;stdio.h&gt;
#include &lt;sys/types.h&gt;
#include &lt;fcntl.h&gt;

int main()
{
 int fd=open("/code/temp.txt",O_CREAT|O_RDWR,0666);
 char buf[3];
 int i=0;
 int size;
 while((size=read(fd,buf,3))&gt;0)
 {
  for(i=0;i&lt;3;i++)
  {
   printf("%c",buf[i]);
  }

 } 
 close(fd);
 return 0;
}</pre>
<p>从显示的结果来看，read在每次向buf缓冲区中写入数据时，是先清除buf中原有的数据以后在写入的。即上面的例子中buf最后的数据应该是“90/0/”.</p>
<p>同理，对于基于缓冲区读写的fread和fwrite在读取到最后几个数据时同样会上面的问题，那么这时fread和fwrite会自动清除buf原来的内容么？</p>
<p>一个测试程序如下：</p>
<pre>#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;

int main()
{
 FILE *fp=fopen("/code/temp.txt","r+b");
 char buf[3];
 int i=0;
 int size;
 while((size=fread(buf,sizeof(char),3,fp))&gt;0)
 {
  for(i=0;i&lt;3;i++)
  {
   printf("%c",buf[i]);
  }

 } 
 fclose(fp);
 return 0;
}</pre>
<p>通过结果我们同样可以获知：fread，fwrite如上面的read和write一样同样会先清除原来的内容，然后在把这些数据写入buf。</p>


<p>相关文章:<ol><li><a href='http://www.ecoviews.cn/archives/37.html' rel='bookmark' title='Permanent Link: 获得任一页面的链接和地址！'>获得任一页面的链接和地址！</a></li>
<li><a href='http://www.ecoviews.cn/archives/712.html' rel='bookmark' title='Permanent Link: C语言中strtok函数进行分割字符串！'>C语言中strtok函数进行分割字符串！</a></li>
<li><a href='http://www.ecoviews.cn/archives/779.html' rel='bookmark' title='Permanent Link: PHP实现按标准显示图片！'>PHP实现按标准显示图片！</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ecoviews.cn/archives/1093.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>C语言中变量默认值！</title>
		<link>http://www.ecoviews.cn/archives/1084.html</link>
		<comments>http://www.ecoviews.cn/archives/1084.html#comments</comments>
		<pubDate>Fri, 22 Oct 2010 07:28:06 +0000</pubDate>
		<dc:creator>若水思源</dc:creator>
				<category><![CDATA[C语言]]></category>
		<category><![CDATA[数组]]></category>

		<guid isPermaLink="false">http://www.ecoviews.cn/?p=1084</guid>
		<description><![CDATA[使用过Java或者C#编程的人都知道定义变量时变量默认值的重要性，那么在C语言中呢？


相关文章:<ol><li><a href='http://www.ecoviews.cn/archives/712.html' rel='bookmark' title='Permanent Link: C语言中strtok函数进行分割字符串！'>C语言中strtok函数进行分割字符串！</a></li>
<li><a href='http://www.ecoviews.cn/archives/834.html' rel='bookmark' title='Permanent Link: Unicode字符编码与ASCII字符编码的关系！'>Unicode字符编码与ASCII字符编码的关系！</a></li>
<li><a href='http://www.ecoviews.cn/archives/1093.html' rel='bookmark' title='Permanent Link: Linux C中read/write,fread/fwrite等的使用说明！'>Linux C中read/write,fread/fwrite等的使用说明！</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>使用过Java或者C#编程的人都知道定义变量时变量默认值的重要性，那么在C语言中呢？</p>
<p><span style="color: #008000;">C语言中定义一个变量是有其默认值的，而这个默认值通常是编译器赋予这个变量的，并且同种类型的变量其值是相同的，不同的类型的值却不同。（这个值的为什么应该和电脑本身有关，这点我没有查到相关的资料，所以不好说。）</span></p>
<p>以我的电脑为例，在vc6.0中如定义一个int d，调用printf(&#8220;%d\n&#8221;,d)输出它的值的时候，其结果为：-858993460。而再定义一个int f时，其显示的结果仍然是：-858993460。</p>
<p>即：int d,int f;在程序中它们的默认值是相同的。</p>
<p>同理当定义两个double s,t时，其结果也是相同的，值为：-9255963134931783100000000000000000000000<br />
0000000000000000000000.000000</p>
<p>以上是对于基本数据类型默认值的说明，再来说说数组类型。</p>
<p><span style="color: #008000;">C语言中定义数组时，如果你只是对数组的一部分赋值的话，其剩余元素也是由默认值的，其规律为，字符型默认值为‘\0’,整型默认值为：0,double型默认为：0.000000，当然对于float型其也是默认为0.000000，不过它是要先转换为double型的。</span></p>
<pre>如在以下程序中：</pre>
<pre>#include &lt;stdio.h&gt;

int main()
{
 //字符型数组的默认值
 char a[10]={'1','2','3'};
 //整型数组的默认值
 int b[10]={1,2,3};
 //浮动性数组的默认值
 double c[10]={1.1,1.2,1.3};

 int i=0;

 for(i=0;i&lt;10;i++)
  printf("a[%d]=%c\n",i,a[i]);
 for(i=0;i&lt;10;i++)
  printf("b[%d]=%d\n",i,b[i]);
 for(i=0;i&lt;10;i++)
  printf("c[%d]=%f\n",i,c[i]);

 return 0;
}

通过结果我们即可以印证以上所说的规律。

不过值得注意的是，如果你把double c[10]换成float c[10],你会发现程序在编译时会出现警告：warning C4305: 'initializing' : truncation from 'const double' to 'float',通过警告可以发现，float类型的数组的默认值的确定是先要转换为double型，然后通过double型来确定的。</pre>


<p>相关文章:<ol><li><a href='http://www.ecoviews.cn/archives/712.html' rel='bookmark' title='Permanent Link: C语言中strtok函数进行分割字符串！'>C语言中strtok函数进行分割字符串！</a></li>
<li><a href='http://www.ecoviews.cn/archives/834.html' rel='bookmark' title='Permanent Link: Unicode字符编码与ASCII字符编码的关系！'>Unicode字符编码与ASCII字符编码的关系！</a></li>
<li><a href='http://www.ecoviews.cn/archives/1093.html' rel='bookmark' title='Permanent Link: Linux C中read/write,fread/fwrite等的使用说明！'>Linux C中read/write,fread/fwrite等的使用说明！</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ecoviews.cn/archives/1084.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>!document.getElementById等的说明！</title>
		<link>http://www.ecoviews.cn/archives/871.html</link>
		<comments>http://www.ecoviews.cn/archives/871.html#comments</comments>
		<pubDate>Fri, 28 May 2010 02:14:42 +0000</pubDate>
		<dc:creator>若水思源</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[document]]></category>

		<guid isPermaLink="false">http://www.ecoviews.cn/?p=871</guid>
		<description><![CDATA[对于在JavaScript中!document.getElementById、!document.createTextNode等这样的形式该如何理解，我想很多人并不是非常的清楚，但是看了以下的代码我想我们就会有一个非常深刻的理解。


相关文章:<ol><li><a href='http://www.ecoviews.cn/archives/107.html' rel='bookmark' title='Permanent Link: 选择下拉列表实现跳转！'>选择下拉列表实现跳转！</a></li>
<li><a href='http://www.ecoviews.cn/archives/385.html' rel='bookmark' title='Permanent Link: 给自己的页面添加复制文章内容功能！'>给自己的页面添加复制文章内容功能！</a></li>
<li><a href='http://www.ecoviews.cn/archives/834.html' rel='bookmark' title='Permanent Link: Unicode字符编码与ASCII字符编码的关系！'>Unicode字符编码与ASCII字符编码的关系！</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>对于在JavaScript中!document.getElementById、!document.createTextNode等这样的形式该如何理解，我想很多人并不是非常的清楚，但是看了以下的代码我想我们就会有一个非常深刻的理解。</p>
<pre>&lt;html&gt;
&lt;script type="text/javascript"&gt;
alert(document);
/* 说明document为一个对象*/
alert(document.getElementById);
alert(document.createTextNode);
/*显示document对象是否定义getElementById与createTextNode，
   由于定义了，因此显示其定义的方法原型
*/
alert(document.getElementByClass);
/*由于document对象未定义getElementByClass方法，所以显示undefined*/</pre>
<pre>/*明确上面的一些知识对于我们理解下面的一段代码非常有帮助*/
function checkSearch()
{
 if(!document.getElementById||!document.createTextNode)
 {
  return;
 }
 .......
 /*即，如果document对象没有定义getElementById与createTextNode方法，则函数停止执行*/
}
&lt;/script&gt;
&lt;body&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<pre>其相关的执行结果如下所示（执行环境为IE6内核的浏览器）：</pre>
<pre>alert(document);
<a href="http://www.ecoviews.cn/wp-content/uploads/2010/05/object.png"><img class="alignnone size-full wp-image-872" title="object" src="http://www.ecoviews.cn/wp-content/uploads/2010/05/object.png" alt="" width="196" height="122" /></a></pre>
<pre>alert(document.getElementById);
<a href="http://www.ecoviews.cn/wp-content/uploads/2010/05/getElementById.png"><img class="alignnone size-full wp-image-873" title="getElementById" src="http://www.ecoviews.cn/wp-content/uploads/2010/05/getElementById.png" alt="" width="208" height="146" /></a></pre>
<pre>alert(document.createTextNode);
<a href="http://www.ecoviews.cn/wp-content/uploads/2010/05/createTextNode.png"><img class="alignnone size-full wp-image-874" title="createTextNode" src="http://www.ecoviews.cn/wp-content/uploads/2010/05/createTextNode.png" alt="" width="212" height="142" /></a></pre>
<pre>alert(document.getElementByClass);
<a href="http://www.ecoviews.cn/wp-content/uploads/2010/05/undefined.png"><img class="alignnone size-full wp-image-875" title="undefined" src="http://www.ecoviews.cn/wp-content/uploads/2010/05/undefined.png" alt="" width="199" height="122" /></a>
</pre>


<p>相关文章:<ol><li><a href='http://www.ecoviews.cn/archives/107.html' rel='bookmark' title='Permanent Link: 选择下拉列表实现跳转！'>选择下拉列表实现跳转！</a></li>
<li><a href='http://www.ecoviews.cn/archives/385.html' rel='bookmark' title='Permanent Link: 给自己的页面添加复制文章内容功能！'>给自己的页面添加复制文章内容功能！</a></li>
<li><a href='http://www.ecoviews.cn/archives/834.html' rel='bookmark' title='Permanent Link: Unicode字符编码与ASCII字符编码的关系！'>Unicode字符编码与ASCII字符编码的关系！</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ecoviews.cn/archives/871.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript中文、英文字符串比较！</title>
		<link>http://www.ecoviews.cn/archives/842.html</link>
		<comments>http://www.ecoviews.cn/archives/842.html#comments</comments>
		<pubDate>Wed, 26 May 2010 00:55:04 +0000</pubDate>
		<dc:creator>若水思源</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[字符串]]></category>

		<guid isPermaLink="false">http://www.ecoviews.cn/?p=842</guid>
		<description><![CDATA[在使用JavaScript中，我们常常知道比较两个英文字符串是根据字符本身的ASCII码的大小，从左往右进行比较（很多教程上都这么说）。但是对于这样一种说法我认为不合适，毕竟字符串中不仅有英文，而且有中文，对于中文的比较也可以的，但是ASCII码却不能表示中文。


相关文章:<ol><li><a href='http://www.ecoviews.cn/archives/107.html' rel='bookmark' title='Permanent Link: 选择下拉列表实现跳转！'>选择下拉列表实现跳转！</a></li>
<li><a href='http://www.ecoviews.cn/archives/111.html' rel='bookmark' title='Permanent Link: 竖向伸缩列表的做法！'>竖向伸缩列表的做法！</a></li>
<li><a href='http://www.ecoviews.cn/archives/385.html' rel='bookmark' title='Permanent Link: 给自己的页面添加复制文章内容功能！'>给自己的页面添加复制文章内容功能！</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>在使用JavaScript中，我们常常知道比较两个英文字符串是根据字符本身的ASCII码的大小，从左往右进行比较（很多教程上都这么说）。但是对于这样一种说法我认为不合适，毕竟字符串中不仅有英文，而且有中文，对于中文的比较也可以的，但是ASCII码却不能表示中文。</p>
<p>因此，我想JavaScript的字符串比较应该换成另一种说法，那就是按照字符的Unicode码的大小从左至右进行比较。当然为何是Unicode码而不是其它的编码，我想这是跟我们页面的编码有关吧，但是到底是不是这样，我也没有查到相关的信息，如果你有这方面的资料，请告知于我，不胜感激。</p>
<p>证明我上面所说的一个测试程序如下：页面编码utf-8</p>
<pre>&lt;html&gt;
&lt;body&gt;
&lt;script type="text/javascript"&gt;
 var str1="Apple";
 var str2="Banana";
 document.write(str1&gt;str2);
 document.write("&lt;br /&gt;");
 /*
 执行结果为：FALSE,因为JavaScript中字符串的比较是按照字符的ASCII码，从左至右进行比较的。
 但是对于中文比较呢？
 由于中文不能使用ASCII码进行表示，但是却可以使用Unicode码表示，那么是否在进行中文字符串比较时
 是按照字符的Unicode值的大小进行比较的呢？
 如果真是这样的话，那么是否意味着所有的中文字符都比英文字符都大呢？
 */
 /*中文字符比英文字符要大*/
 var str3="中国";
 var str4="ZZ";
 document.write(str3&gt;str4);
 document.write("&lt;br /&gt;");
 /*执行结果为：true*/
 
 var str5="中国";
 var str6="人民";
 /*显示str5中第一个字符的Unicode值*/
 document.write(str5.charCodeAt(0));
 document.write("&lt;br /&gt;");
 /*显示str6中第一个字符的Unicode值*/
 document.write(str6.charCodeAt(0));
 document.write("&lt;br /&gt;");
 /*显示比较的结果*/
 document.write(str5&gt;str6);
 document.write("&lt;br /&gt;");
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<pre>执行结果如下：</pre>
<pre>false
true
20013
20154
false</pre>
<p>从中我们可以得到这样的一个规律：所有的中文字符都比英文字符要大！</p>


<p>相关文章:<ol><li><a href='http://www.ecoviews.cn/archives/107.html' rel='bookmark' title='Permanent Link: 选择下拉列表实现跳转！'>选择下拉列表实现跳转！</a></li>
<li><a href='http://www.ecoviews.cn/archives/111.html' rel='bookmark' title='Permanent Link: 竖向伸缩列表的做法！'>竖向伸缩列表的做法！</a></li>
<li><a href='http://www.ecoviews.cn/archives/385.html' rel='bookmark' title='Permanent Link: 给自己的页面添加复制文章内容功能！'>给自己的页面添加复制文章内容功能！</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ecoviews.cn/archives/842.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unicode字符编码与ASCII字符编码的关系！</title>
		<link>http://www.ecoviews.cn/archives/834.html</link>
		<comments>http://www.ecoviews.cn/archives/834.html#comments</comments>
		<pubDate>Mon, 24 May 2010 02:02:11 +0000</pubDate>
		<dc:creator>若水思源</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ASCII]]></category>
		<category><![CDATA[Unicode]]></category>

		<guid isPermaLink="false">http://www.ecoviews.cn/?p=834</guid>
		<description><![CDATA[ASCII字符编码是一种7位编码，范围从0x00-0x7F，包括了英文字母，阿拉伯数字，标点符号，控制字符等，其中0x00-0x20和0x7F表示控制字符。


相关文章:<ol><li><a href='http://www.ecoviews.cn/archives/111.html' rel='bookmark' title='Permanent Link: 竖向伸缩列表的做法！'>竖向伸缩列表的做法！</a></li>
<li><a href='http://www.ecoviews.cn/archives/385.html' rel='bookmark' title='Permanent Link: 给自己的页面添加复制文章内容功能！'>给自己的页面添加复制文章内容功能！</a></li>
<li><a href='http://www.ecoviews.cn/archives/842.html' rel='bookmark' title='Permanent Link: JavaScript中文、英文字符串比较！'>JavaScript中文、英文字符串比较！</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>ASCII字符编码是一种7位编码，范围从0&#215;00-0x7F，包括了英文字母，阿拉伯数字，标点符号，控制字符等，其中0&#215;00-0&#215;20和0x7F表示控制字符。</p>
<p>换句话说，ASCII字符编码的编码范围为：0-254，其中0-32与127为控制字符。</p>
<p>Unicode字符编码的编码范围是：0-65535，它包含三套编码方式如：UTF-8，UTF-16和UTF-32。它和ASCII的关系为ASCII字符编码是Unicode字符编码的一部分。</p>
<p>懂得这点知识可以帮助我们理解这些方面的内容：<br />
1.怎么识别一段文字中，那些是中文，哪些是英文。<br />
2.在分割字符串时候，我们对于乱码的解决等等。</p>
<p>下面以一段JavaScript代码为例来进行说明，其中网页编码为utf-8。</p>
<pre>&lt;script type="text/javascript"&gt;
 var str="测试一个文档中的English与Chinese，并把其中的中英文分开。";
 var len=str.length;
 document.write("测试字符的长度："+len);
 document.write("&lt;br /&gt;");
 for(i=0;i&lt;len;i++)
 {
  unicode_num=str.charCodeAt(i);
  document.writeln(unicode_num);
  if(unicode_num&lt;255)
  {
   char=str.charAt(i);
   document.write(char+"该字符为英文");
   document.write("&lt;br /&gt;");
  }
  else
  {
   char=str.charAt(i);
   document.write(char+"该字符为中文");
   document.write("&lt;br /&gt;");
  }
 }
&lt;/script&gt;</pre>
<p>通过运行的结果我们可以发现以下一些事实：<br />
1.当网页编码为utf-8，gb2312时，字符长度是35，即是说中文字符与英文字符所用的编码格式都是相同的。<br />
2.在中文输入法下，标点符号是中文而不是英文。如上面的逗号、句号。<br />
3.因为中英文编码的格式是相同的，因此在进行字符串分割时不用考虑因为进行字符的裁剪而造成乱码的问题。而这是在php进行字符分割时要考虑的。</p>
<p>懂得上面的一些知识可以在以下的一些应用中指导我们：<br />
1.对网页进行内容的提取。<br />
2.统计一篇文章中总字符的个数，中文字符，非中文字符的个数，如Word里面的字数统计功能。（当然上面的仅仅是一个非常粗略的算法，即如果一个字符的Unicode值小于255则为英文，反正为中文，但是实际上却比这个要细得多，但是这样的一种方法可以作为一种粗略的统计工具，在很多的应用中已经足够使用，如上面的测试程序中。）<br />
3.能在字符串剪裁中给予我们指导。</p>


<p>相关文章:<ol><li><a href='http://www.ecoviews.cn/archives/111.html' rel='bookmark' title='Permanent Link: 竖向伸缩列表的做法！'>竖向伸缩列表的做法！</a></li>
<li><a href='http://www.ecoviews.cn/archives/385.html' rel='bookmark' title='Permanent Link: 给自己的页面添加复制文章内容功能！'>给自己的页面添加复制文章内容功能！</a></li>
<li><a href='http://www.ecoviews.cn/archives/842.html' rel='bookmark' title='Permanent Link: JavaScript中文、英文字符串比较！'>JavaScript中文、英文字符串比较！</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ecoviews.cn/archives/834.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP实现按标准显示图片！</title>
		<link>http://www.ecoviews.cn/archives/779.html</link>
		<comments>http://www.ecoviews.cn/archives/779.html#comments</comments>
		<pubDate>Wed, 28 Apr 2010 02:00:09 +0000</pubDate>
		<dc:creator>若水思源</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.ecoviews.cn/?p=779</guid>
		<description><![CDATA[昨天同学向我问了一个问题，就是如何把自己上传的图片按照一个设定的尺寸显示出来。


相关文章:<ol><li><a href='http://www.ecoviews.cn/archives/53.html' rel='bookmark' title='Permanent Link: PHP打开文本文件的两个方法！'>PHP打开文本文件的两个方法！</a></li>
<li><a href='http://www.ecoviews.cn/archives/124.html' rel='bookmark' title='Permanent Link: JavaScript向PHP的传递变量的两种方式！'>JavaScript向PHP的传递变量的两种方式！</a></li>
<li><a href='http://www.ecoviews.cn/archives/343.html' rel='bookmark' title='Permanent Link: 网站自动安装之三！'>网站自动安装之三！</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>昨天同学向我问了一个问题，就是如何把自己上传的图片按照一个设定的尺寸显示出来。</p>
<p>问题的背景就是同学在做一个视频播放网站，但是在显示上传的每部影视的图片时出了问题，原因就在于每个图片的显示宽度是确定的。</p>
<p>针对这个问题我给他有两个解决方案，一是用JavaScript来实现，二是用PHP来实现，同学选择的是用PHP，原因就是简单呵呵。</p>
<p>实现这个功能其实很简单，我们只要能够回答以下这些问题就能解决：</p>
<p>1.怎么获得已上传的图片的大小（宽度，高度）？<br />
2.怎么按照标准调整图片显示的大小？<br />
3.怎么显示已经处理了的图片？</p>
<p>一个测试的源代码如下：</p>
<p><code><br />
&lt;?php</code></p>
<p>$standard=250;//假设这是现实的标准高度</p>
<p>$size = getimagesize(&#8220;1.jpg&#8221;); //得到图像的大小</p>
<p>$width = $size[0];      //获得图片的宽度</p>
<p>$height = $size[1];    //获得图片的高度</p>
<p>$percent_width=$standard/$width; //获取与你显示的标准宽度的缩放百分比,注意获得的数值不是整数</p>
<p>$height*=$percent_width;//调整显示的高度</p>
<p>echo &#8220;&lt;img src=&#8217;1.jpg&#8217; width=&#8221;.$standard.&#8221; height=&#8221;.$height.&#8221; /&gt;&#8221;;</p>
<p>?&gt;</p>


<p>相关文章:<ol><li><a href='http://www.ecoviews.cn/archives/53.html' rel='bookmark' title='Permanent Link: PHP打开文本文件的两个方法！'>PHP打开文本文件的两个方法！</a></li>
<li><a href='http://www.ecoviews.cn/archives/124.html' rel='bookmark' title='Permanent Link: JavaScript向PHP的传递变量的两种方式！'>JavaScript向PHP的传递变量的两种方式！</a></li>
<li><a href='http://www.ecoviews.cn/archives/343.html' rel='bookmark' title='Permanent Link: 网站自动安装之三！'>网站自动安装之三！</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ecoviews.cn/archives/779.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

