<?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>LeNgHoSt的小窝 &#187; HTML</title>
	<atom:link href="http://www.lenghost.cn/tag/html/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lenghost.cn</link>
	<description>I did it my way, 'Cause it's my life!</description>
	<lastBuildDate>Tue, 08 Nov 2011 23:39:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>拒绝免费空间挂马！忽视html标签标记&lt;XMP&gt;</title>
		<link>http://www.lenghost.cn/tips/html-tag-xmp/</link>
		<comments>http://www.lenghost.cn/tips/html-tag-xmp/#comments</comments>
		<pubDate>Sat, 02 Aug 2008 21:58:49 +0000</pubDate>
		<dc:creator>LeNgHoSt</dc:creator>
				<category><![CDATA[技巧收集]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[免费]]></category>
		<category><![CDATA[挂马]]></category>
		<category><![CDATA[木马]]></category>
		<category><![CDATA[空间]]></category>

		<guid isPermaLink="false">http://godaddy.lenghost.cn/lenghost.cn/?p=7</guid>
		<description><![CDATA[申请过很多免费空间，但不是很慢就是服务器上挂马(当然也有放广告条的)
比如下面这个：
......&#60;/table&#62;&#60;/body&#62;&#60;/html&#62;&#60;iframe src=http://www.*******.cn/****.htm width=100 height=0&#62;&#60;/iframe&#62;&#60;!-- 广告代码，不影响网站的访问 --&#62;
这个空间上所有的html文件，在用户访问的时候都会在底部加上这么一行代码，虽然这段代码不显示广告，我的nod32也没提示木马，但还是看着它不爽，万一以后将那个地址换成木马了，后果不堪设想。
下面介绍下&#60;XMP&#62;这个HTML标签标记
&#60;XMP&#62;这个普通的标签大家很可能不熟悉，因为一般的，很少有人会用到它，其实，对于常与代码打交道的朋友来说，这是一个很实用的标签。
&#60;XMP&#62;标签本来是用于显示XML内容的，但是也可以让它使HTML标签不被浏览器识别。

我们可以在每个网页的底部加上&#60;XMP&#62;，这样即使被挂马，木马代码也是在&#60;XMP&#62;标签的后面，将不会被执行而是被直接显示在页面上。
&#60;/table&#62;&#60;/body&#62;&#60;/html&#62;&#60;XMP&#62;&#60;iframe src=http://www.*******.cn/****.htm width=100 height=0&#62;&#60;/iframe&#62;&#60;!-- 广告代码，不影响网站的访问 --&#62;
当然我们希望它既不执行也不显示，所以还要在css里加入
XMP {display:none;}。
这样几乎所有在文件底部挂马的情况，都可以用这种方法解决。
]]></description>
			<content:encoded><![CDATA[<p>申请过很多免费空间，但不是很慢就是服务器上挂马(当然也有放广告条的)<br />
比如下面这个：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Gray;">......<br /></span><span style="color: Olive;">&lt;/</span><span style="color: Green;">table</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;/</span><span style="color: Green;">body</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;/</span><span style="color: Green;">html</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">iframe</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #00008b;">http:</span><span style="color: Gray;">//</span><span style="color: Green;">www</span><span style="color: Gray;">.*******.</span><span style="color: #00008b;">cn</span><span style="color: Gray;">/****.</span><span style="color: #00008b;">htm</span><span style="color: Gray;"> </span><span style="color: #00008b;">width</span><span style="color: Gray;">=</span><span style="color: #00008b;">100</span><span style="color: Gray;"> </span><span style="color: #00008b;">height</span><span style="color: Gray;">=</span><span style="color: #00008b;">0</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">iframe</span><span style="color: Olive;">&gt;</span><span style="color: #ffa500;">&lt;!-- 广告代码，不影响网站的访问 --&gt;</span></div></div>
<p>这个空间上所有的html文件，在用户访问的时候都会在底部加上这么一行代码，虽然这段代码不显示广告，我的nod32也没提示木马，但还是看着它不爽，万一以后将那个地址换成木马了，后果不堪设想。</p>
<p>下面介绍下<span style="color: #0000ff;">&lt;XMP&gt;</span>这个HTML标签标记</p>
<p><span style="color: #0000ff;">&lt;XMP&gt;</span>这个普通的标签大家很可能不熟悉，因为一般的，很少有人会用到它，其实，对于常与代码打交道的朋友来说，这是一个很实用的标签。<br />
<span style="color: #0000ff;">&lt;XMP&gt;</span>标签本来是用于显示XML内容的，但是也可以让它使HTML标签不被浏览器识别。</p>
<p><span id="more-7"></span><br />
我们可以在每个网页的底部加上<span style="color: #0000ff;">&lt;XMP&gt;</span>，这样即使被挂马，木马代码也是在<span style="color: #0000ff;">&lt;XMP&gt;</span>标签的后面，将不会被执行而是被直接显示在页面上。</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Olive;">&lt;/</span><span style="color: Green;">table</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;/</span><span style="color: Green;">body</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;/</span><span style="color: Green;">html</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">XMP</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">iframe</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #00008b;">http:</span><span style="color: Gray;">//</span><span style="color: Green;">www</span><span style="color: Gray;">.*******.</span><span style="color: #00008b;">cn</span><span style="color: Gray;">/****.</span><span style="color: #00008b;">htm</span><span style="color: Gray;"> </span><span style="color: #00008b;">width</span><span style="color: Gray;">=</span><span style="color: #00008b;">100</span><span style="color: Gray;"> </span><span style="color: #00008b;">height</span><span style="color: Gray;">=</span><span style="color: #00008b;">0</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">iframe</span><span style="color: Olive;">&gt;</span><span style="color: #ffa500;">&lt;!-- 广告代码，不影响网站的访问 --&gt;</span></div></div>
<p>当然我们希望它既不执行也不显示，所以还要在css里加入<br />
<span style="color: #0000ff;">XMP {display:none;}</span>。<br />
这样几乎所有在文件底部挂马的情况，都可以用这种方法解决。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lenghost.cn/tips/html-tag-xmp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>php中preg_match的用法</title>
		<link>http://www.lenghost.cn/tips/php-preg_match-usage/</link>
		<comments>http://www.lenghost.cn/tips/php-preg_match-usage/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 03:08:28 +0000</pubDate>
		<dc:creator>LeNgHoSt</dc:creator>
				<category><![CDATA[技巧收集]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[正则]]></category>

		<guid isPermaLink="false">http://godaddy.lenghost.cn/lenghost.cn/?p=9</guid>
		<description><![CDATA[大家一看到preg_match肯定会头痛的。。。其实没什么，下面我就尽力给还不明白的兄弟们争取讲明白了，在这里我就不解释preg_match的说明了，朋友们可以通过php手册查看..先来个简单点的:
&#60;?phppreg_match(&#34;/^(http:\/\/)?([^\/]+)/i&#34;,&#34;http://www.php.net/index.html&#34;, $matches);$host = $matches[2];// 从主机名中取得后面两段preg_match(&#34;/[^\.\/]+\.[^\.\/]+$/&#34;, $host, $matches);echo &#34;domain name is: {$matches[0]}\n&#34;;?&#62;

这是手册里的例子。多数人对preg_match犯晕都出在正则上，以后我也会介绍正则。先看这个例子，
preg_match($pattern,$string,$matcher)其中$pattern对应的就是/^(http:\/\/)?([^\/]+)/i，$string 是http://www.php.net/index.html，$match是匹配到的结果。
按照手册上的意思：
如果提供了 matches，则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本，$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本，以此类推。
这是什么意思呢？第一句就不用解释了，$matches[0] 将包含与整个模式匹配的文本。
咱们用pring_r打印出来第一个$matches：
Array ( [0] => http://www.php.net [1] => http:// [2] => www.php.net )
这回明白了吧。。$matches[0] 将包含与整个模式匹配的文本，$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本。在正则中，()代表模式：匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到，在VBScript 中使用 SubMatches 集合，在JScript 中则使用 $0…$9 属性。就是说数组中下标为1的值就是正则中/^(http:\/\/)?([^\/]+)/i第一个()里的值！数组下标２的值以此类推
]]></description>
			<content:encoded><![CDATA[<p>大家一看到preg_match肯定会头痛的。。。其实没什么，下面我就尽力给还不明白的兄弟们争取讲明白了，在这里我就不解释preg_match的说明了，朋友们可以通过php手册查看..先来个简单点的:</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">&lt;?php</span><span style="color: Gray;"><br /></span><span style="color: Blue;">preg_match</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">/^(http:\/\/)?([^\/]+)/i</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.php.net/index.html</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #00008b;">$matches</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: #00008b;">$host</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$matches</span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">]</span><span style="color: Gray;">;</span><span style="color: #ffa500;">// 从主机名中取得后面两段</span><span style="color: Gray;"><br /></span><span style="color: Blue;">preg_match</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">/[^\.\/]+\.[^\.\/]+$/</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #00008b;">$host</span><span style="color: Gray;">, </span><span style="color: #00008b;">$matches</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Green;">echo</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">domain name is: </span><span style="color: #00008b;">{$matches[0]}</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;<br /></span><span style="color: Blue;">?&gt;</span></div></div>
<p><span id="more-9"></span><br />
这是手册里的例子。多数人对preg_match犯晕都出在正则上，以后我也会介绍正则。先看这个例子，<br />
preg_match($pattern,$string,$matcher)其中$pattern对应的就是/^(http:\/\/)?([^\/]+)/i，$string 是http://www.php.net/index.html，$match是匹配到的结果。<br />
按照手册上的意思：<br />
如果提供了 matches，则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本，$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本，以此类推。<br />
这是什么意思呢？第一句就不用解释了，$matches[0] 将包含与整个模式匹配的文本。<br />
咱们用pring_r打印出来第一个$matches：<br />
Array ( [0] => http://www.php.net [1] => http:// [2] => www.php.net )<br />
这回明白了吧。。$matches[0] 将包含与整个模式匹配的文本，$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本。在正则中，()代表模式：匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到，在VBScript 中使用 SubMatches 集合，在JScript 中则使用 $0…$9 属性。就是说数组中下标为1的值就是正则中/^(http:\/\/)?([^\/]+)/i第一个()里的值！数组下标２的值以此类推</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lenghost.cn/tips/php-preg_match-usage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP-Web应用程序开发：使用模板</title>
		<link>http://www.lenghost.cn/tips/php-develop-use-template/</link>
		<comments>http://www.lenghost.cn/tips/php-develop-use-template/#comments</comments>
		<pubDate>Sat, 26 Jul 2008 18:22:04 +0000</pubDate>
		<dc:creator>LeNgHoSt</dc:creator>
				<category><![CDATA[技巧收集]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[模板]]></category>

		<guid isPermaLink="false">http://godaddy.lenghost.cn/lenghost.cn/?p=10</guid>
		<description><![CDATA[每个进行过较大型的PHP-Web应用程序设计的开发人员大概都有如下的经历：花大量的时间写超文本语句，为页面排版，兼作美工等；或在整合的程序代码在和HTML静态页面时花费大量的时间。的确，用脚本语言开发Web应用不容易将数据的处理和数据的显示分开，但在多人合作的情况下，如果无法将数据和显示分开，将大大影响开发的效率，专业分工的发挥。为了解决这个问题，PHP也提供了自己的解决方案，有多种，本文主要介绍PHPLIB中的Template类。
1 模板处理类的设计
模板处理类主要需完成以下的任务：
·从模板文件中读取显示用的HTML代码。
·将模板文件和实际生成的数据结合，生成输出的结果。
·允许同时处理多个模板。
·允许模板的嵌套。
·允许对模板中的某个单独的部分进行处理。
归纳上述任务，模板类的设计目标为：从多个模板文件中读入显示的HTML代码，将这些显示代码中需要动态数据的地方替换为PHP程序运算所得出的数据，然后按照一定的顺序输出。其中，替换的部分可以自由的设定。
读取显示用的HTML代码采用读文件的方式
模板文件和数据的结合采用正则替换
处理多个模板用数组存储来实现。
模板的嵌套的实现主要的想法是：将模板和输出（任何中间的分析结果）一视同仁，都可拿来做替换，即可实现。
单独部分的处理的通过在模板文件中设定标注，然后在正则替换中结合标注来控制，实现部分替换。
2 模板处理类的实现
请参看PHPLib中的Template.inc，总共345行代码，有详细的注释。以下列举一些主要的函数，供研读参考：

function set_file($handle,$filename=&#34;&#34;)//line 77, 读取文件function set_var($varname,$value = &#34;&#34;)//line 119, 设置映射数据-替换变量function set_block($parent, $handle, $name = &#34;&#34;)//line 96, 设置标注function subst($handle)//line 136, 执行数据替换function parse($target, $handle, $append = false)//line 165, 执行模板文件与数据的结合function p($varname)//line 268, 输出处理结果
3 模板处理类的使用
3.1 最基本的例子
为了简单起见，这里假设模板文件、使用模板的PHP文件和模板处理类的文件都放在同一个目录下。PHPLIB中的习惯是使用ihtml后缀为模板文件的后缀。
下面是要使用的模板文件：
使用模板的测试
这是一个使用模板的测试文件！
当前的时间是{currenttime}!
注：模板文件和通常的HTML文件差不多，唯一不同的是使用“{}”括起来的是可以被模板处理类替换的动态内容的变量。
接下来使用模板处理类来处理上面的模板：
set_file(&#34;handle1&#34;,&#34;test.ihtml&#34;);//使用$timeNow的值替换模板中的currenttime$template-&#62;set_var(&#34;currenttime&#34;,$timeNow);//进行实际的模板操作$template-&#62;parse(&#34;output&#34;,&#34;handle1&#34;);//输出最后结果$template-&#62;p(&#34;output&#34;);
注：如果只想用PHPLIB中的模板类，只需在文件头包含Template.inc类即可。
创建Template对象时，可以指定模板文件路径，如：new Template（“/htdocs/apps/templates/”），缺省为当前路径。
3.2 模板嵌套与块设定
下面这个例子来自与PHPLIB的参考手册，综合性较强，这里需说明的一点是设定块的目的与嵌套无关，但这个范例包含了两者。请仔细阅读，块设定是为了避免这种情况：原本可在一个模板文件（静态页面）里完成的内容，因需要部分循环，而将部分循环内容提取单独做成模板文件。请思考，如果不用块设定，这个例子是不是需要3个模板文件呢？
模板文件1，page.ihtml
{PAGETITLE}
{PAGETITLE}
{OUT}
Content
模板文件2，box.ihtml
{TITLE}
{NUM}
{BIGNUM}
模板处理文件，test.php
set_file(array(&#34;page&#34; =&#62; &#34;page.ihtml&#34;,&#34;box&#34; =&#62; &#34;box.ihtml&#34;));//载入模板文件box中的一个块row,引用名称为rows$t-&#62;set_block(&#34;box&#34;, &#34;row&#34;, &#34;rows&#34;);//设置替换$t-&#62;set_var(array(&#34;TITLE&#34; =&#62; &#34;Testpage&#34;,&#34;PAGETITLE&#34; =&#62; &#34;hugo&#34;));//生成数据NUM，BIGNUMfor ($i=1; $iset_var(array(&#34;NUM&#34; =&#62; $n,&#34;BIGNUM&#34; =&#62; $nn));//进行分析，分析的结果添加到rows的后面$t-&#62;parse(&#34;rows&#34;, &#34;row&#34;, true);}//生成box，再生成page$t-&#62;parse(&#34;OUT&#34;, array(&#34;box&#34;, &#34;page&#34;));//输出最后结果$t-&#62;p(&#34;OUT&#34;);?&#62;
注：这里page.ihtml模板文件中变量的命名与最后的输出句柄都用了“OUT”。
循环取值部分采用数据库类，即可将数据的生成与数据库应用结合起来。
执行结果如下图：

模板嵌套与块设定执行结果图
4 [...]]]></description>
			<content:encoded><![CDATA[<p>每个进行过较大型的PHP-Web应用程序设计的开发人员大概都有如下的经历：花大量的时间写超文本语句，为页面排版，兼作美工等；或在整合的程序代码在和HTML静态页面时花费大量的时间。的确，用脚本语言开发Web应用不容易将数据的处理和数据的显示分开，但在多人合作的情况下，如果无法将数据和显示分开，将大大影响开发的效率，专业分工的发挥。为了解决这个问题，PHP也提供了自己的解决方案，有多种，本文主要介绍PHPLIB中的Template类。<br />
<strong>1 模板处理类的设计</strong><br />
模板处理类主要需完成以下的任务：<br />
·从模板文件中读取显示用的HTML代码。<br />
·将模板文件和实际生成的数据结合，生成输出的结果。<br />
·允许同时处理多个模板。<br />
·允许模板的嵌套。<br />
·允许对模板中的某个单独的部分进行处理。<br />
归纳上述任务，模板类的设计目标为：从多个模板文件中读入显示的HTML代码，将这些显示代码中需要动态数据的地方替换为PHP程序运算所得出的数据，然后按照一定的顺序输出。其中，替换的部分可以自由的设定。<br />
读取显示用的HTML代码采用读文件的方式<br />
模板文件和数据的结合采用正则替换<br />
处理多个模板用数组存储来实现。<br />
模板的嵌套的实现主要的想法是：将模板和输出（任何中间的分析结果）一视同仁，都可拿来做替换，即可实现。<br />
单独部分的处理的通过在模板文件中设定标注，然后在正则替换中结合标注来控制，实现部分替换。<br />
<strong>2 模板处理类的实现</strong><br />
请参看PHPLib中的<u>Template.inc</u>，总共345行代码，有详细的注释。以下列举一些主要的函数，供研读参考：</p>
<p><span id="more-10"></span></p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">set_file</span><span style="color: Olive;">(</span><span style="color: #00008b;">$handle</span><span style="color: Gray;">,</span><span style="color: #00008b;">$filename</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">//line 77, 读取文件</span><span style="color: Gray;"><br /></span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">set_var</span><span style="color: Olive;">(</span><span style="color: #00008b;">$varname</span><span style="color: Gray;">,</span><span style="color: #00008b;">$value</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">//line 119, 设置映射数据-替换变量</span><span style="color: Gray;"><br /></span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">set_block</span><span style="color: Olive;">(</span><span style="color: #00008b;">$parent</span><span style="color: Gray;">, </span><span style="color: #00008b;">$handle</span><span style="color: Gray;">, </span><span style="color: #00008b;">$name</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">//line 96, 设置标注</span><span style="color: Gray;"><br /></span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">subst</span><span style="color: Olive;">(</span><span style="color: #00008b;">$handle</span><span style="color: Olive;">)</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">//line 136, 执行数据替换</span><span style="color: Gray;"><br /></span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">parse</span><span style="color: Olive;">(</span><span style="color: #00008b;">$target</span><span style="color: Gray;">, </span><span style="color: #00008b;">$handle</span><span style="color: Gray;">, </span><span style="color: #00008b;">$append</span><span style="color: Gray;"> = </span><span style="color: Green;">false</span><span style="color: Olive;">)</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">//line 165, 执行模板文件与数据的结合</span><span style="color: Gray;"><br /></span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">p</span><span style="color: Olive;">(</span><span style="color: #00008b;">$varname</span><span style="color: Olive;">)</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">//line 268, 输出处理结果</span><span style="color: Gray;"></span></div></div>
<p><strong>3 模板处理类的使用</strong><br />
<strong>3.1 最基本的例子</strong><br />
为了简单起见，这里假设模板文件、使用模板的PHP文件和模板处理类的文件都放在同一个目录下。PHPLIB中的习惯是使用ihtml后缀为模板文件的后缀。<br />
下面是要使用的模板文件：<br />
使用模板的测试<br />
这是一个使用模板的测试文件！<br />
当前的时间是{currenttime}!<br />
注：模板文件和通常的HTML文件差不多，唯一不同的是使用“{}”括起来的是可以被模板处理类替换的动态内容的变量。<br />
接下来使用模板处理类来处理上面的模板：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">set_file</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">handle1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">test.ihtml</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">//使用$timeNow的值替换模板中的currenttime</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$template</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">set_var</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">currenttime</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #00008b;">$timeNow</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">//进行实际的模板操作</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$template</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">parse</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">output</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">handle1</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">//输出最后结果</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$template</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">p</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">output</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></div></div>
<p>注：如果只想用PHPLIB中的模板类，只需在文件头包含<u>Template.inc</u>类即可。<br />
创建Template对象时，可以指定模板文件路径，如：new Template（“/htdocs/apps/templates/”），缺省为当前路径。<br />
<strong>3.2 模板嵌套与块设定</strong><br />
下面这个例子来自与PHPLIB的参考手册，综合性较强，这里需说明的一点是设定块的目的与嵌套无关，但这个范例包含了两者。请仔细阅读，块设定是为了避免这种情况：原本可在一个模板文件（静态页面）里完成的内容，因需要部分循环，而将部分循环内容提取单独做成模板文件。请思考，如果不用块设定，这个例子是不是需要3个模板文件呢？<br />
模板文件1，page.ihtml<br />
<code>{PAGETITLE}<br />
{PAGETITLE}<br />
{OUT}<br />
Content</code><br />
模板文件2，box.ihtml<br />
<code>{TITLE}<br />
{NUM}<br />
{BIGNUM}</code><br />
模板处理文件，test.php</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">set_file</span><span style="color: Olive;">(</span><span style="color: Green;">array</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">page</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> =&gt; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">page.ihtml</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">box</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> =&gt; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">box.ihtml</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">))</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">//载入模板文件box中的一个块row,引用名称为rows</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$t</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">set_block</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">box</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">row</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">rows</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">//设置替换</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$t</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">set_var</span><span style="color: Olive;">(</span><span style="color: Green;">array</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">TITLE</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> =&gt; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Testpage</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">PAGETITLE</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> =&gt; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">hugo</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">))</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">//生成数据NUM，BIGNUM</span><span style="color: Gray;"><br /></span><span style="color: Green;">for</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: #00008b;">$i</span><span style="color: Gray;">=</span><span style="color: Maroon;">1</span><span style="color: Gray;">; </span><span style="color: #00008b;">$iset_var</span><span style="color: Olive;">(</span><span style="color: Green;">array</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">NUM</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> =&gt; </span><span style="color: #00008b;">$n</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">BIGNUM</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> =&gt; </span><span style="color: #00008b;">$nn</span><span style="color: Olive;">))</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">//进行分析，分析的结果添加到rows的后面</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$t</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">parse</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">rows</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">row</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />}<br /></span><span style="color: #ffa500;">//生成box，再生成page</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$t</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">parse</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">OUT</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: Green;">array</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">box</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">page</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">))</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">//输出最后结果</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$t</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">p</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">OUT</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />?&gt;</span></div></div>
<p>注：这里page.ihtml模板文件中变量的命名与最后的输出句柄都用了“OUT”。<br />
循环取值部分采用数据库类，即可将数据的生成与数据库应用结合起来。<br />
执行结果如下图：<br />
<img src="http://www.netbei.com/Article/UploadFiles/200408/20040816194011541.gif" border="0" alt=""/><br />
模板嵌套与块设定执行结果图<br />
<strong>4 小结</strong><br />
本文主要简要介绍了PHPLIB中Template类的设计、实现及使用方法。当然，还有许多其他的PHP模板方案，如由Perl中演化而来的FastTemplates。目前Internet小组采用的是另一种方案，主要的实现方式是模板文件入库，采用eval来实现数据与模板文件的结合等，相对来说模板文件的管理与模板处理的使用比较简洁，但缺少文件存放的模式。本人目前在做的一些尝试是将两者结合起来，并想在PHPLIB的Template类的基础上进行改进。初步的目标任务有两个：1、在读取模板文件时扩展其对数据库的支持，这样可以在必要时增强灵活性与使用数据库管理工具 2、化简模板文件与数据的结合，因为在实际使用中大多数情况下无需将模板文件中的变量在处理程序中再设置（数据变量映射）一遍。<br />
在此也希望读者、PHP程序爱好者一起参与进来，多提宝贵意见，祝好运！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lenghost.cn/tips/php-develop-use-template/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5个有趣的浏览器地址栏Javascript代码</title>
		<link>http://www.lenghost.cn/tips/5-javascript/</link>
		<comments>http://www.lenghost.cn/tips/5-javascript/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 05:57:10 +0000</pubDate>
		<dc:creator>LeNgHoSt</dc:creator>
				<category><![CDATA[技巧收集]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[代码]]></category>

		<guid isPermaLink="false">http://godaddy.lenghost.cn/lenghost.cn/?p=12</guid>
		<description><![CDATA[这篇文章分享几个在地址栏实现的Javascript有趣效果和应用。能在浏览器地址栏实现的效果太多了，字体放大、显示所有图片、显示Cookie等等。但这篇文章重点放在“有趣”上面，当你无聊的时候，不妨玩玩。原文来自BlogOhBlog。
1、编辑网页
在地址栏输入下面的代码按enter，网页上所有元素都能变成可编辑状态，你可以移动、调整元素大小。如果你只是讨厌某个网站想发泄一下，我建议你使用NetDisater。
代码如下：
javascript:document.body.contentEditable='true'; document.designMode='on'; void 0
这是经我重新编辑的google.cn：


2、无敌风火轮
在地址栏运行下面的代码可使页面上所有图片元素一个接一个地转圈。
这种效果最好的实现地方就是图片搜索了：

改变代码里的“img”成任何网页上有的字符，可以使这些字符做无敌风火轮运动。
代码如下：
javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.getElementsByTagName(&#34;img&#34;); DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=(Math.sin(R*x1+i*x2+x3)*x4+x5)+&#34;px&#34;; DIS.top=(Math.cos(R*y1+i*y2+y3)*y4+y5)+&#34;px&#34;}R++}setInterval('A()',5); void(0);
3、晃来晃去
不但是你，浏览器也不是那么喜欢这个javascript。在地址栏运行这个代码后，浏览器会迅速地晃来晃去。代码如下：
javascript:function flood(n) {if (self.moveBy) {for (i = 200; i &#62; 0;i--){for (j = n; j &#62; 0; j--) {self.moveBy(1,i); self.moveBy(i,0);self.moveBy(0,-i); self.moveBy(-i,0); } } }}flood(6);{ var inp = &#34;D-X !msagro na [...]]]></description>
			<content:encoded><![CDATA[<p>这篇文章分享几个在地址栏实现的Javascript有趣效果和应用。能在浏览器地址栏实现的效果太多了，字体放大、显示所有图片、显示Cookie等等。但这篇文章重点放在“有趣”上面，当你无聊的时候，不妨玩玩。原文来自<a target="_blank" href="http://www.blogohblog.com/cool-javascri&#112;t-tricks/">BlogOhBlog</a>。</p>
<p><strong>1、编辑网页</strong><br />
在地址栏输入下面的代码按enter，网页上所有元素都能变成可编辑状态，你可以移动、调整元素大小。如果你只是讨厌某个网站想发泄一下，我建议你使用<a target="_blank" href="http://www.kenengba.com/post/374.html">NetDisater</a>。<br />
代码如下：</p>
<div class="hl-surround"><div class="hl-main">javascript:document.body.contentEditable='true'; document.designMode='on'; void 0</div></div>
<p>这是经我重新编辑的google.cn：<br />
<img src="http://lh5.ggpht.com/jason5ng32/SIBYJsDyp6I/AAAAAAAABoo/iwSTa4sgmis/s800/0029.JPG" border="0" alt=""/></p>
<p><span id="more-12"></span><br />
<strong>2、无敌风火轮</strong><br />
在地址栏运行下面的代码可使页面上所有图片元素一个接一个地转圈。<br />
这种效果最好的实现地方就是图片搜索了：<br />
<img src="http://lh5.ggpht.com/jason5ng32/SIBYJ8eFcUI/AAAAAAAABow/Ycrr52NShw8/s800/0030.JPG" border="0" alt=""/><br />
改变代码里的“img”成任何网页上有的字符，可以使这些字符做无敌风火轮运动。<br />
代码如下：</p>
<div class="hl-surround"><div class="hl-main">javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.getElementsByTagName(&quot;img&quot;); DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=(Math.sin(R*x1+i*x2+x3)*x4+x5)+&quot;px&quot;; DIS.top=(Math.cos(R*y1+i*y2+y3)*y4+y5)+&quot;px&quot;}R++}setInterval('A()',5); void(0);</div></div>
<p><strong>3、晃来晃去</strong><br />
不但是你，浏览器也不是那么喜欢这个javascript。在地址栏运行这个代码后，浏览器会迅速地晃来晃去。代码如下：</p>
<div class="hl-surround"><div class="hl-main">javascript:function flood(n) {if (self.moveBy) {for (i = 200; i &gt; 0;i--){for (j = n; j &gt; 0; j--) {self.moveBy(1,i); self.moveBy(i,0);self.moveBy(0,-i); self.moveBy(-i,0); } } }}flood(6);{ var inp = &quot;D-X !msagro na dah tsuj resworb rouY&quot;; var outp = &quot;&quot;; for (i = 0; i &lt;= inp.length; i++) {outp =inp.charAt (i) + outp ; } alert(outp) ;}; reverse</div></div>
<p>如果这个代码无效，请将&#8221;&gt;&#8221;改成&#8221;>&#8221;，&#8221;&It;&#8221;改成&#8221;<"。</p>
<p><strong>4、计算器</strong><br />
在地址栏输入下面的代码，可以实现简单的四则运算：</p>
<div class="hl-surround"><div class="hl-main">javascript:alert(34343+3434-222);</div></div>
<p>事实上这个代码可以继续简化，比如简化成这样：</p>
<div class="hl-surround"><div class="hl-main">javascript:34343+3434-222</div></div>
<p><strong>5、防钓鱼验证</strong><br />
某些钓鱼网站提供的URL和网页本身的URL是不一致的，你可以用下面的代码进行验证，当两个URL相差太大的时候，你就要稍加小心了：</p>
<div class="hl-surround"><div class="hl-main">javascript:alert(&quot;The actual URL is:&quot; + location.protocol + &quot;//&quot; + location.hostname + &quot;/&quot; + &quot;\nThe address URL is:&quot; + location.href + &quot;\n&quot; + &quot;\nIf the server names do not match, this may be a spoof.&quot;);</div></div>
<p>很有趣，不是吗？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lenghost.cn/tips/5-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10个能用JavaScript实现的图片特效</title>
		<link>http://www.lenghost.cn/tips/10-javascript/</link>
		<comments>http://www.lenghost.cn/tips/10-javascript/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 05:51:27 +0000</pubDate>
		<dc:creator>LeNgHoSt</dc:creator>
				<category><![CDATA[技巧收集]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[图片]]></category>

		<guid isPermaLink="false">http://godaddy.lenghost.cn/lenghost.cn/?p=13</guid>
		<description><![CDATA[一般来说，我们在写博客或做网站时都需要对插图做一些效果，比如增加阴影、图片圆角、倒映等等。这些效果一般可以用3个方法实现，一是用PS实现对图片进行修改，二是使用CSS，三是使用JavaScript。使用PS会破坏原图，而且要花费一定的时间。
Netzgesta
上有很多实现图片特效的JavaScript提供下载，很多效果都是相当漂亮的。
1、水倒映



这个js将为图片添加水倒映的特效，时下web2.0站点很喜欢这种效果。
如果你喜欢在线生成水倒映效果，可以参考这里。
js下载链接
2、圆角+阴影

或许你记得用RoundPic能在线生成圆角图片，事实上用这个js也可以实现效果。
js下载链接

3、高光圆角阴影



这个效果可以用来做按钮。是我最喜欢的特效之一。
js下载链接
4、斜光阴影效果

和上面的效果看起来非常相似，但也有不同的地方。
js下载链接
5、相框效果



如果你在做图片博客，可以你会喜欢这个js，使用后博客文章内的图片都有相框的效果。
js下载链接
6、黑色相框

不喜欢白色没有立体感的相框，那试试这个立体感充足的js效果吧。
js下载链接
7、放大镜



一个很有趣的js，实现放大镜效果。记得在去年Google开发者日的时候，某个主讲人也有说到在GMaps里实现放大镜的有趣效果。具体效果点击这里。
js下载链接
8、菲林效果

如果你在写一个电影博客，这个效果或许会让你喜欢。
js下载链接
9、花边效果

很简单的图片花边效果。
js下载链接
10、翻页效果



翻页效果是很常见的，Google一下你会发现有很多相关的教程，如果你不想花时间去学，直接下载这个js吧。
js下载链接
安装使用方法：
将下载的压缩包解压之后上传到网站空间，然后在需要显示效果的head里添加代码，比如高光阴影效果Glossy，添加的代码是：
对于Wordpress，可以在header.php里添加。如果只要求文章页里出现效果，也可以考虑在single.php里添加。
然后，在想要显示特效的图片的标记里添加：
class=&#8221;glossy&#8221;
这样效果就出现了。
其它效果添加方法类似。
]]></description>
			<content:encoded><![CDATA[<p>一般来说，我们在写博客或做网站时都需要对插图做一些效果，比如增加阴影、图片圆角、倒映等等。这些效果一般可以用3个方法实现，一是用PS实现对图片进行修改，二是使用CSS，三是使用JavaScript。使用PS会破坏原图，而且要花费一定的时间。</p>
<p><a target="_blank" href="http://www.netzgesta.de/">Netzgesta</a><br />
上有很多实现图片特效的JavaScript提供下载，很多效果都是相当漂亮的。</p>
<p><strong>1、水倒映</strong><br />
<a target="_blank" href="http://www.kenengba.com/post/432.html"><br />
<img src="http://lh5.ggpht.com/wangyanan1981/SBUsNQ9qlrI/AAAAAAAAAJQ/gDRoS8yxWhI/s800/reflex.gif" border="0" alt=""/><br />
</a><br />
这个js将为图片添加水倒映的特效，时下web2.0站点很喜欢这种效果。<br />
如果你喜欢在线生成水倒映效果，可以参考<a target="_blank" href="http://www.kenengba.com/post/341.html">这里</a>。<br />
<a target="_blank" href="http://www.netzgesta.de/reflex/">js下载链接</a></p>
<p><strong>2、圆角+阴影</strong><br />
<img src="http://lh5.ggpht.com/wangyanan1981/SBUsNQ9qltI/AAAAAAAAAJg/38zm7VyaP0E/s800/corner.jpg" border="0" alt=""/><br />
或许你记得用<a target="_blank" href="http://www.kenengba.com/post/338.html">RoundPic</a>能在线生成圆角图片，事实上用这个js也可以实现效果。<br />
<a target="_blank" href="http://www.netzgesta.de/corner/">js下载链接</a></p>
<p><span id="more-13"></span><br />
<strong>3、高光圆角阴影</strong><br />
<a target="_blank" href="http://www.kenengba.com/post/432.html"><br />
<img src="http://lh6.ggpht.com/wangyanan1981/SBUsSg9qlwI/AAAAAAAAAJ4/4cqPTK8_yHE/s800/glossy.jpg" border="0" alt=""/><br />
</a><br />
这个效果可以用来做按钮。是我最喜欢的特效之一。<br />
<a target="_blank" href="http://www.netzgesta.de/glossy/">js下载链接</a></p>
<p><strong>4、斜光阴影效果</strong><br />
<img src="http://lh5.ggpht.com/wangyanan1981/SBUsNQ9qlsI/AAAAAAAAAJY/HvdKWsdjtYQ/s800/bevel.jpg" border="0" alt=""/><br />
和上面的效果看起来非常相似，但也有不同的地方。<br />
<a target="_blank" href="http://www.netzgesta.de/bevel/">js下载链接</a></p>
<p><strong>5、相框效果</strong><br />
<a target="_blank" href="http://www.kenengba.com/"><br />
<img src="http://lh3.ggpht.com/wangyanan1981/SBUsSw9qlxI/AAAAAAAAAKA/xejKU3wrOFI/s800/instant.jpg" border="0" alt=""/><br />
</a><br />
如果你在做图片博客，可以你会喜欢这个js，使用后博客文章内的图片都有相框的效果。<br />
<a target="_blank" href="http://instant.netzgesta.de/">js下载链接</a></p>
<p><strong>6、黑色相框</strong><br />
<img src="http://lh6.ggpht.com/wangyanan1981/SBUsTg9qlzI/AAAAAAAAAKQ/zydY1gpgew0/s800/slided.jpg" border="0" alt=""/><br />
不喜欢白色没有立体感的相框，那试试这个立体感充足的js效果吧。<br />
<a target="_blank" href="http://slided.netzgesta.de/">js下载链接</a></p>
<p><strong>7、放大镜</strong><br />
<a target="_blank" href="http://www.kenengba.com/"><br />
<img src="http://lh4.ggpht.com/wangyanan1981/SBUsTA9qlyI/AAAAAAAAAKI/h6do4Yb7L8g/s800/loupe.jpg" border="0" alt=""/><br />
</a><br />
一个很有趣的js，实现放大镜效果。记得在去年Google开发者日的时候，某个主讲人也有说到在GMaps里实现放大镜的有趣效果。具体效果<a target="_blank" href="http://code.google.com/intl/zh-CN/apis/maps/documentation/demos/magnifier/magnifier.html">点击这里</a>。<br />
<a target="_blank" href="http://www.netzgesta.de/loupe/">js下载链接</a></p>
<p><strong>8、菲林效果</strong><br />
<img src="http://lh4.ggpht.com/wangyanan1981/SBUsSA9qlvI/AAAAAAAAAJw/BPthH6MPIlY/s800/filmed.jpg" border="0" alt=""/><br />
如果你在写一个电影博客，这个效果或许会让你喜欢。<br />
<a target="_blank" href="http://www.netzgesta.de/filmed/">js下载链接</a></p>
<p><strong>9、花边效果</strong><br />
<img src="http://lh6.ggpht.com/wangyanan1981/SBUsNg9qluI/AAAAAAAAAJo/RrnvDiKa1j8/s800/edge.jpg" border="0" alt=""/><br />
很简单的图片花边效果。<br />
<a target="_blank" href="http://www.netzgesta.de/edge/">js下载链接</a></p>
<p><strong>10、翻页效果</strong><br />
<a target="_blank" href="http://www.kenengba.com/post/432.html"><br />
<img src="http://lh5.ggpht.com/wangyanan1981/SBUsNQ9qlqI/AAAAAAAAAJI/ryYkt-zPl5A/s800/curl.jpg" border="0" alt=""/><br />
</a><br />
翻页效果是很常见的，Google一下你会发现有很多相关的教程，如果你不想花时间去学，直接下载这个js吧。<br />
<a target="_blank" href="http://www.netzgesta.de/curl/">js下载链接</a></p>
<p><strong>安装使用方法：</strong><br />
将下载的压缩包解压之后上传到网站空间，然后在需要显示效果的head里添加代码，比如高光阴影效果Glossy，添加的代码是：</p>
<p>对于Wordpress，可以在header.php里添加。如果只要求文章页里出现效果，也可以考虑在single.php里添加。<br />
然后，在想要显示特效的图片的标记里添加：<br />
<strong>class=&#8221;glossy&#8221;</strong><br />
这样效果就出现了。<br />
其它效果添加方法类似。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lenghost.cn/tips/10-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>百度了半天，终于给我的Blog加上了相关日志功能</title>
		<link>http://www.lenghost.cn/site-news/add-related-post-to-pjblog/</link>
		<comments>http://www.lenghost.cn/site-news/add-related-post-to-pjblog/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 08:45:55 +0000</pubDate>
		<dc:creator>LeNgHoSt</dc:creator>
				<category><![CDATA[站点日志]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[代码]]></category>

		<guid isPermaLink="false">http://godaddy.lenghost.cn/lenghost.cn/?p=21</guid>
		<description><![CDATA[修改说明:
打开文件:classcls_article.asp
1.查找下面内容
TempArticle=Replace(TempArticle,&#34;&#60;$log_ViewNums$&#62;&#34;,log_ViewArr(4,0))
在此内容下增加一行,复制以下代码
'***********&#160; 相关日志功能 修改1 BY HAYDEN&#160; &#160; *********TempArticle=Replace(TempArticle,&#34;&#60;$log_relatedtag$&#62;&#34;,getRelated(log_ViewArr(8,0),LogID))'************&#160; 相关日志功能 修改1 END&#160; &#160; ************
2.继续&#8230;查找
dim getTag
换行 在下面添加
'***********&#160; 相关日志功能 修改2 BY HAYDEN&#160; &#160; ***********Dim haydenTags : haydenTags = log_ViewArr(19,0)'***********&#160; &#160;相关日志功能 修改2&#160; &#160; **********

3.继续..查找
&#60;img src=&#34;/images/tag.gif&#34; style=&#34;margin:4px 2px -4px 0px&#34; alt=&#34;&#34;/&#62;&#60;strong&#62;Tags:&#60;/strong&#62; &#60;%=getTag.filterHTML(log_ViewArr(19,0))%&#62;&#60;br/&#62;
换行 在下面添加
'***********&#160; 相关日志功能 修改3 BY HAYDEN&#160; &#160; ***********&#60;img src=&#34;/images/search.gif&#34; style=&#34;margin:4px 2px -4px 0px&#34; alt=&#34;&#34;/&#62;&#60;strong&#62;相关日志:&#60;/strong&#62;&#60;%=getRelated(haydenTags,LogID)%&#62;&#60;br/&#62;'**********&#160; 相关日志功能 修改3 END&#160; &#160; ***********
4.继续 滑到文件底部 [...]]]></description>
			<content:encoded><![CDATA[<p>修改说明:<br />
打开文件:classcls_article.asp<br />
1.查找下面内容</p>
<div class="hl-surround"><div class="hl-main">TempArticle=Replace(TempArticle,&quot;&lt;$log_ViewNums$&gt;&quot;,log_ViewArr(4,0))</div></div>
<p>在此内容下增加一行,复制以下代码</p>
<div class="hl-surround"><div class="hl-main">'***********&nbsp; 相关日志功能 修改1 BY HAYDEN&nbsp; &nbsp; *********<br />TempArticle=Replace(TempArticle,&quot;&lt;$log_relatedtag$&gt;&quot;,getRelated(log_ViewArr(8,0),LogID))<br />'************&nbsp; 相关日志功能 修改1 END&nbsp; &nbsp; ************</div></div>
<p>2.继续&#8230;查找</p>
<div class="hl-surround"><div class="hl-main">dim getTag</div></div>
<p>换行 在下面添加</p>
<div class="hl-surround"><div class="hl-main">'***********&nbsp; 相关日志功能 修改2 BY HAYDEN&nbsp; &nbsp; ***********<br />Dim haydenTags : haydenTags = log_ViewArr(19,0)<br />'***********&nbsp; &nbsp;相关日志功能 修改2&nbsp; &nbsp; **********</div></div>
<p><span id="more-21"></span><br />
3.继续..查找</p>
<div class="hl-surround"><div class="hl-main">&lt;img src=&quot;/images/tag.gif&quot; style=&quot;margin:4px 2px -4px 0px&quot; alt=&quot;&quot;/&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;%=getTag.filterHTML(log_ViewArr(19,0))%&gt;&lt;br/&gt;</div></div>
<p>换行 在下面添加</p>
<div class="hl-surround"><div class="hl-main">'***********&nbsp; 相关日志功能 修改3 BY HAYDEN&nbsp; &nbsp; ***********<br />&lt;img src=&quot;/images/search.gif&quot; style=&quot;margin:4px 2px -4px 0px&quot; alt=&quot;&quot;/&gt;&lt;strong&gt;相关日志:&lt;/strong&gt;&lt;%=getRelated(haydenTags,LogID)%&gt;&lt;br/&gt;<br />'**********&nbsp; 相关日志功能 修改3 END&nbsp; &nbsp; ***********</div></div>
<p>4.继续 滑到文件底部 在最后一个 %> 这个符号前加入下面这段代码</p>
<div class="hl-surround"><div class="hl-main">'********************************<br />'&nbsp; 显示相关日志<br />'&nbsp; 作者：静￠脉<br />'&nbsp; 出自：myhhe.cn<br />'&nbsp; 时间：2007.11.25<br />'********************************<br />Function getRelated(hayden_tag,hayden_LogID)<br />&nbsp;&nbsp; &nbsp;getRelated=&quot;&quot;<br />&nbsp; Dim i,RsT,OutPut<br />&nbsp;&nbsp; &nbsp;Dim hayden_arr_tag<br />&nbsp;&nbsp; &nbsp;Dim hayden_sql<br />&nbsp;&nbsp; &nbsp;Dim hayden_sqlTag : hayden_sqlTag=&quot;&quot;<br />&nbsp; OutPut=&quot;&quot;<br />&nbsp;&nbsp; &nbsp; if hayden_tag&lt;&gt;&quot;&quot; Then<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;hayden_arr_tag=split(hayden_tag,&quot;{&quot;)<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;For i = 1 to Ubound(hayden_arr_tag)&nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If i &gt; 1 Then hayden_sqlTag=hayden_sqlTag &amp; &quot; or &quot; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;hayden_sqlTag = hayden_sqlTag &amp; &quot;log_tag like '%{&quot; &amp; hayden_arr_tag(i) &amp; &quot;%' &quot;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Next<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;hayden_sql=&quot;Select top 10 log_Title,log_id,log_ViewNums from blog_Content where (&quot; &amp; hayden_sqlTag &amp; &quot;) and log_ID&lt;&gt;&quot; &amp; hayden_LogID &amp; &quot; and log_IsDraft=False and log_CateID not&nbsp; in (select&nbsp; cate_id from blog_Category where cate_secret=True ) order by log_PostTime desc&quot;<br />'此处红色标记处，感谢 ppcode 提出指正 #2007-11-26&nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Set RsT=conn.execute(hayden_sql)<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if not RsT.eof then<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Do until Rst.eof<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OutPut=OutPut&amp;&quot;&lt;font face='Wingdings'&gt;n&lt;/font&gt; &lt;a href='article.asp?id=&quot;&amp;RsT(1)&amp;&quot;' target='_blank'&gt;&quot;&amp;RsT(0)&amp;&quot;[&quot;&amp;RsT(2)&amp;&quot;]&lt;/a&gt;&lt;br&gt;&quot;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Rst.movenext<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Loop<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End if<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;End if<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If OutPut=&quot;&quot; Then<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OutPut=&quot;无相关日志&quot;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Else<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OutPut=&quot;&lt;div class='Content-body' id='hayden_tag'&gt;&quot;&amp;Replace(OutPut,chr(39),chr(34))&amp;&quot;&lt;/div&gt;&quot;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'注意上面DIV中的class名称，如果想给他设定单独的样式，可以在这里给他另定一个名称<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;End If<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;getRelated=OutPut<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Set rst=nothing<br />End Function<br />'********&nbsp; 相关日志功能 getRelated END BY HAYDEN&nbsp; &nbsp; **********</div></div>
<p>5.打开文件:article.asp<br />
查找:</p>
<div class="hl-surround"><div class="hl-main">log_DisComment FROM</div></div>
<p>修改成:</p>
<div class="hl-surround"><div class="hl-main">log_DisComment,log_tag FROM</div></div>
<p>打开文件:TemplateArticle.asp<br />
查找:</p>
<div class="hl-surround"><div class="hl-main">&lt;$log_tag$&gt;&lt;br/&gt;</div></div>
<p>换行 在下面添加:</p>
<div class="hl-surround"><div class="hl-main">&lt;img src=&quot;/images/search.gif&quot; style=&quot;margin:4px 2px -4px 0px&quot; alt=&quot;&quot;/&gt;&lt;strong&gt;相关日志:&lt;/strong&gt; &lt;$log_relatedtag$&gt;&lt;br/&gt;</div></div>
<p>最后去<font color=Red>后台</font><br />
<font color=Red>重建数据缓存<br />
重新统计网站数据<br />
重新生成所有日志到文件<br />
重新建立日志索引</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lenghost.cn/site-news/add-related-post-to-pjblog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

