<?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>IT驿站</title>
	<atom:link href="http://www.ityizhan.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ityizhan.com</link>
	<description>关注PHP以及二次开发</description>
	<lastBuildDate>Mon, 19 Mar 2012 23:40:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP采集程序常用的采集函数</title>
		<link>http://www.ityizhan.com/php-collect-used-functions/</link>
		<comments>http://www.ityizhan.com/php-collect-used-functions/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 06:19:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[采集]]></category>

		<guid isPermaLink="false">http://www.ityizhan.com/?p=922</guid>
		<description><![CDATA[这几天关注了一下PHP的采集程序，才发现用PHP采集内容是这么方便，把经常用到的采集函数在这里总结一下，方便以后使用! 获取所有链接内容和地址 function getAllURL($code){ preg_match_all('/&#60;a\s+href=["&#124;\']?([^&#62;"\' ]+)["&#124;\']?\s*[^&#62;]*&#62;([^&#62;]+)&#60;\/a&#62;/i',$code,$arr); return array('name'=&#62;$arr[2],'url'=&#62;$arr[1]); } 获取所有的图片地址 function getImgSrc($code){ $reg = "/]*src=\"(http:\/\/(.+)\/(.+)\.(jpg&#124;gif&#124;bmp&#124;bnp&#124;png))\"/isU"; preg_match_all($reg, $code, $img_array, PREG_PATTERN_ORDER); return $img_array[1]; } 当前的脚本网址 function getSelfURL(){ if(!empty($_SERVER["REQUEST_URI"])){ $scriptName = $_SERVER["REQUEST_URI"]; $nowurl = $scriptName; }else{ $scriptName = $_SERVER["PHP_SELF"]; if(empty($_SERVER["QUERY_STRING"])) $nowurl = $scriptName; &#8230; <a href="http://www.ityizhan.com/php-collect-used-functions/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>这几天关注了一下PHP的采集程序，才发现用PHP采集内容是这么方便，把经常用到的采集函数在这里总结一下，方便以后使用!</p>
<h3>获取所有链接内容和地址</h3>
<p><code>function getAllURL($code){<br />
preg_match_all('/&lt;a\s+href=["|\']?([^&gt;"\' ]+)["|\']?\s*[^&gt;]*&gt;([^&gt;]+)&lt;\/a&gt;/i',$code,$arr);<br />
return array('name'=&gt;$arr[2],'url'=&gt;$arr[1]);<br />
}</code></p>
<h3>获取所有的图片地址</h3>
<p><code>function getImgSrc($code){<br />
$reg = "/]*src=\"(http:\/\/(.+)\/(.+)\.(jpg|gif|bmp|bnp|png))\"/isU";<br />
preg_match_all($reg, $code, $img_array, PREG_PATTERN_ORDER);<br />
return $img_array[1];<br />
}</code></p>
<h3>当前的脚本网址</h3>
<p><code>function getSelfURL(){<br />
if(!empty($_SERVER["REQUEST_URI"])){<br />
$scriptName = $_SERVER["REQUEST_URI"];<br />
$nowurl = $scriptName;<br />
}else{<br />
$scriptName = $_SERVER["PHP_SELF"];<br />
if(empty($_SERVER["QUERY_STRING"])) $nowurl = $scriptName;<br />
else $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"];<br />
}<br />
return $nowurl;<br />
}</code><br />
<span id="more-922"></span></p>
<h3>把全角数字转为半角数字</h3>
<p><code>function getAlabNum($fnum){<br />
$nums = array("０","１","２","３","４","５","６","７","８","９");<br />
$fnums = "0123456789";<br />
for($i=0;$i&lt;=9;$i++) $fnum = str_replace($nums[$i],$fnums[$i],$fnum);<br />
$fnum = ereg_replace("[^0-9\.]|^0{1,}","",$fnum);<br />
if($fnum=="") $fnum=0;<br />
return $fnum;<br />
}</code></p>
<h3>去除HTML标记</h3>
<p><code>function text2Html($txt){<br />
$txt = str_replace(" ","　",$txt);<br />
$txt = str_replace("&lt;","&lt;",$txt);<br />
$txt = str_replace("&gt;","&gt;",$txt);<br />
$txt = preg_replace("/[\r\n]{1,}/isU","&lt;br/&gt;\r\n",$txt);<br />
return $txt;<br />
}</code></p>
<h3>清除HTML标记</h3>
<p><code>function clearHtml($str){<br />
$str = str_replace('&lt;','&lt;',$str);<br />
$str = str_replace('&gt;','&gt;',$str);<br />
return $str;<br />
}</code></p>
<h3>相对路径转化成绝对路径</h3>
<p><code>function relative2Absolute($content, $feed_url) {<br />
preg_match('/(http|https|ftp):\/\//', $feed_url, $protocol);<br />
$server_url = preg_replace("/(http|https|ftp|news):\/\//", "", $feed_url);<br />
$server_url = preg_replace("/\/.*/", "", $server_url);<br />
if ($server_url == '') {<br />
return $content;<br />
}<br />
if (isset($protocol[0])) {<br />
$new_content = preg_replace('/href="\//', 'href="'.$protocol[0].$server_url.'/', $content);<br />
$new_content = preg_replace('/src="\//', 'src="'.$protocol[0].$server_url.'/', $new_content);<br />
} else {<br />
$new_content = $content;<br />
}<br />
return $new_content;<br />
}</code></p>
<h3>获取指定标记中的内容</h3>
<p><code>function getTagData($str, $start, $end){<br />
if ( $start == '' || $end == '' ){<br />
return;<br />
}<br />
$str = explode($start, $str);<br />
$str = explode($end, $str[1]);<br />
return $str[0];<br />
}</code></p>
<h3>HTML表格的每行转为CSV格式数组</h3>
<p><code>function getTrArray($table) {<br />
$table = preg_replace("'&lt;td[^&gt;]*?&gt;'si",'"',$table);<br />
$table = str_replace("&lt;/td&gt;",'",',$table);<br />
$table = str_replace("&lt;/tr&gt;","{tr}",$table);<br />
//去掉 HTML 标记<br />
$table = preg_replace("'&lt;[\/\!]*?[^&lt;&gt;]*?&gt;'si","",$table);<br />
//去掉空白字符<br />
$table = preg_replace("'([\r\n])[\s]+'","",$table);<br />
$table = str_replace(" ","",$table);<br />
$table = str_replace(" ","",$table);<br />
$table = explode(",{tr}",$table);<br />
array_pop($table);<br />
return $table;<br />
}</code></p>
<h3>将HTML表格的每行每列转为数组，采集表格数据</h3>
<p><code>function getTdArray($table) {<br />
$table = preg_replace("'&lt;table[^&gt;]*?&gt;'si","",$table);<br />
$table = preg_replace("'&lt;tr[^&gt;]*?&gt;'si","",$table);<br />
$table = preg_replace("'&lt;td[^&gt;]*?&gt;'si","",$table);<br />
$table = str_replace("&lt;/tr&gt;","{tr}",$table);<br />
$table = str_replace("&lt;/td&gt;","{td}",$table);<br />
//去掉 HTML 标记<br />
$table = preg_replace("'&lt;[\/\!]*?[^&lt;&gt;]*?&gt;'si","",$table);<br />
//去掉空白字符<br />
$table = preg_replace("'([\r\n])[\s]+'","",$table);<br />
$table = str_replace(" ","",$table);<br />
$table = str_replace(" ","",$table);<br />
$table = explode('{tr}', $table);<br />
array_pop($table);<br />
foreach ($table as $key=&gt;$tr) {<br />
$td = explode('{td}', $tr);<br />
array_pop($td);<br />
$td_array[] = $td;<br />
}<br />
return $td_array;<br />
}</code></p>
<h3>返回字符串中的所有单词 $distinct=true 去除重复</h3>
<p><code>function splitEnStr($str,$distinct=true) {<br />
preg_match_all('/([a-zA-Z]+)/',$str,$match);<br />
if ($distinct == true) {<br />
$match[1] = array_unique($match[1]);<br />
}<br />
sort($match[1]);<br />
return $match[1];<br />
}</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ityizhan.com/php-collect-used-functions/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>[搜集] 完整的WordPress函数大全</title>
		<link>http://www.ityizhan.com/full-function-in-wordpress/</link>
		<comments>http://www.ityizhan.com/full-function-in-wordpress/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 00:33:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.ityizhan.com/?p=1025</guid>
		<description><![CDATA[在修改和制作Wordpress主题时经常为不知道内置函数而苦恼，而wordpress官方的文档看起来又不是那么方便。所搜集并且整理了一下放这，以备后用。 判断页面函数 is_home() : 是否为主页 is_single() : 是否为内容页(Post) is_page() : 是否为内容页(Page) is_category() : 是否为Category/Archive页 is_tag() : 是否为Tag存档页 is_date() : 是否为指定日期存档页 is_year() : 是否为指定年份存档页 is_month() : 是否为指定月份存档页 is_day() : 是否为指定日存档页 is_time() : 是否为指定时间存档页 is_archive() : 是否为存档页 is_search() : 是否为搜索结果页 is_404() : &#8230; <a href="http://www.ityizhan.com/full-function-in-wordpress/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>在修改和制作Wordpress主题时经常为不知道内置函数而苦恼，而wordpress官方的文档看起来又不是那么方便。所搜集并且整理了一下放这，以备后用。</p>
<h2>判断页面函数</h2>
<p>is_home() : 是否为主页</p>
<p>is_single() : 是否为内容页(Post)</p>
<p>is_page() : 是否为内容页(Page)</p>
<p>is_category() : 是否为Category/Archive页</p>
<p>is_tag() : 是否为Tag存档页</p>
<p>is_date() : 是否为指定日期存档页</p>
<p>is_year() : 是否为指定年份存档页</p>
<p>is_month() : 是否为指定月份存档页</p>
<p>is_day() : 是否为指定日存档页</p>
<p>is_time() : 是否为指定时间存档页</p>
<p>is_archive() : 是否为存档页</p>
<p>is_search() : 是否为搜索结果页</p>
<p>is_404() : 是否为 “HTTP 404: Not Found” 错误页</p>
<p>is_paged() : 主页/Category/Archive页是否以多页显示</p>
<p><span id="more-1025"></span></p>
<h2>Header部分常用到的PHP函数</h2>
<p>&lt;?php bloginfo(’name’); ?&gt; : 博客名称(Title)</p>
<p>&lt;?php bloginfo(’stylesheet_url’); ?&gt; : CSS文件路径</p>
<p>&lt;?php bloginfo(’pingback_url’); ?&gt; : PingBack Url</p>
<p>&lt;?php bloginfo(’template_url’); ?&gt; : 模板文件路径</p>
<p>&lt;?php bloginfo(’version’); ?&gt; : WordPress版本</p>
<p>&lt;?php bloginfo(’atom_url’); ?&gt; : Atom Url</p>
<p>&lt;?php bloginfo(’rss2_url’); ?&gt; : RSS 2.o Url</p>
<p>&lt;?php bloginfo(’url’); ?&gt; : 博客 Url</p>
<p>&lt;?php bloginfo(’html_type’); ?&gt; : 博客网页Html类型</p>
<p>&lt;?php bloginfo(’charset’); ?&gt; : 博客网页编码</p>
<p>&lt;?php bloginfo(’description’); ?&gt; : 博客描述</p>
<p>&lt;?php wp_title(); ?&gt; : 特定内容页(Post/Page)的标题</p>
<h2>模板常用的PHP函数及命令</h2>
<p>&lt;?php get_header(); ?&gt; : 调用Header模板</p>
<p>&lt;?php get_sidebar(); ?&gt; : 调用Sidebar模板</p>
<p>&lt;?php get_footer(); ?&gt; : 调用Footer模板</p>
<p>&lt;?php the_content(); ?&gt; : 显示内容(Post/Page)</p>
<p>&lt;?php if(have_posts()) : ?&gt; : 检查是否存在Post/Page</p>
<p>&lt;?php while(have_posts()) : the_post(); ?&gt; : 如果存在Post/Page则予以显示</p>
<p>&lt;?php endwhile; ?&gt; : While 结束</p>
<p>&lt;?php endif; ?&gt; : If 结束</p>
<p>&lt;?php the_time(’字符串’) ?&gt; : 显示时间，时间格式由“字符串”参数决定，具体参考PHP手册</p>
<p>&lt;?php comments_popup_link(); ?&gt; : 正文中的留言链接。如果使用 comments_popup_script() ，则留言会在新窗口中打开，反之，则在当前窗口打开</p>
<p>&lt;?php the_title(); ?&gt; : 内容页(Post/Page)标题</p>
<p>&lt;?php the_permalink() ?&gt; : 内容页(Post/Page) Url</p>
<p>&lt;?php the_category(’, ‘) ?&gt; : 特定内容页(Post/Page)所属Category</p>
<p>&lt;?php the_author(); ?&gt; : 作者</p>
<p>&lt;?php the_ID(); ?&gt; : 特定内容页(Post/Page) ID</p>
<p>&lt;?php edit_post_link(); ?&gt; : 如果用户已登录并具有权限，显示编辑链接</p>
<p>&lt;?php get_links_list(); ?&gt; : 显示Blogroll中的链接</p>
<p>&lt;?php comments_template(); ?&gt; : 调用留言/回复模板</p>
<p>&lt;?php wp_list_pages(); ?&gt; : 显示Page列表</p>
<p>&lt;?php wp_list_categories(); ?&gt; : 显示Categories列表</p>
<p>&lt;?php next_post_link(’ %link ‘); ?&gt; : 下一篇文章链接</p>
<p>&lt;?php previous_post_link(’%link’); ?&gt; : 上一篇文章链接</p>
<p>&lt;?php get_calendar(); ?&gt; : 日历</p>
<p>&lt;?php wp_get_archives() ?&gt; : 显示内容存档</p>
<p>&lt;?php posts_nav_link(); ?&gt; : 导航，显示上一篇/下一篇文章链接</p>
<p>&lt;?php include(TEMPLATEPATH . ‘/文件名’); ?&gt; : 嵌入其他文件，可为定制的模板或其他类型文件</p>
<h2>其他函数</h2>
<p>&lt;?php _e(’Message’); ?&gt; : 输出相应信息</p>
<p>&lt;?php wp_register(); ?&gt; : 显示注册链接</p>
<p>&lt;?php wp_loginout(); ?&gt; : 显示登录/注销链接</p>
<p>&lt;!–next page–&gt; : 将当前内容分页</p>
<p>&lt;!–more–&gt; : 将当前内容截断，以不在主页/目录页显示全部内容</p>
<p>&lt;?php timer_stop(1); ?&gt; : 网页加载时间(秒)</p>
<p>&lt;?php echo get_num_queries(); ?&gt; : 网页加载查询量</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ityizhan.com/full-function-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>获取网页内的图片地址 &#124; 打包下载图片</title>
		<link>http://www.ityizhan.com/get-image-location-and-download-picture-package/</link>
		<comments>http://www.ityizhan.com/get-image-location-and-download-picture-package/#comments</comments>
		<pubDate>Sat, 17 Sep 2011 03:56:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[在线工具]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[采集]]></category>

		<guid isPermaLink="false">http://www.ityizhan.com/?p=1022</guid>
		<description><![CDATA[最近开发了一个在线的采集工具，可以根据URL来获取当前页面里的图片信息，比如说图片地址，图片标签里的属性，以及通过打包（zip）的形式下载请求页面中获取到的图片。有兴趣的朋友可以查看一下下面的DEMO页面，来进行采集图片： http://www.ityizhan.com/demo/download-image/ 这个DEMO页面只是实现了最基本的两个部分：采集地址和打包下载。目前尚在测试阶段，还在进行的更新，希望大家发现问题能及时反馈，成为大家采集图片的方便工具。 根据不断的测试，以后还可能增加的新功能有，自动调整图片的大小，设置打包图片的名称规则，合并和分解图片。。。。反正想添加的功能挺多的，有什么好的建议也希望大家能留言。 下面说一下这个工具现有功能的实现方法： 1. 获取地址 这个功能最主要的就是用正则表达式来匹配页面源码里的图片地址了，这里用到得正则表达式是： /&#60;img.*src="(.*)"\\s*.*&#62;/iU 首页通过PHP自带的读取文件函数来获得请求页面的html代码，然后用正则表达式来匹配里面的src地址，这里有两个注意点： file_get_content 只能获取到静态的页面内容，也就是说如果你在页面里看到的是图片是通过Javascript来展示的，通过这个工具是获取不到图片信息的 有的网站对file_get_content 这个函数做了些限制，如果不是通过浏览器打开的网页，服务器是拒绝请求的，这个时候我们就需要给php 程序添加一个配置信息，让采集的程序能够模拟一个留言器的UA（user agent），具体的做法可以通过下面的代码来实现：//现在模拟的是一个Window 环境下的浏览器 ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; 4399Box.560; .NET4.0C; .NET4.0E)'); 通过以上两点的处理，获取网页源码就没有问题了，唯一要做的就是用正则表达式对图片地址的匹配。 2. 打包下载图片 这个功能没有什么要说，网上有很多开源的代码，可以提供打包的功能，你唯一要做的就是把页面获取到的图片信息，用php 的函数读出图片，并且把它添加到压缩包里。这个功能会在日后代码开源的时候一起公布出来。 这个在线采集的小工具可以帮助一些快速建站的站长，很快的下载同一个页面里的所有的图片信息，来补充自己的站点的内容。其实现在有很多开源的项目已经有了采集的功能，比如说DEDE的采集系统，但是对于一些使用者来说，功能太强大了，他们反而不会用，而且DEDE采集到的信息都是直接入库了，对一些只想看采集图片的用户来说还是满足不了需求。 我觉得功能强大固然好，但是对于使用者来说，便捷方便将会有更大的用户群，希望大家试过这个小工具后，能多提宝贵意见，让这个工具更好为使用者服务。 演示地址]]></description>
			<content:encoded><![CDATA[<p>最近开发了一个在线的采集工具，可以根据URL来获取当前页面里的图片信息，比如说图片地址，图片标签里的属性，以及通过打包（zip）的形式下载请求页面中获取到的图片。有兴趣的朋友可以查看一下下面的DEMO页面，来进行采集图片：</p>
<p><a class="aligncenter" title="采集图片地址|下载图片" href="http://www.ityizhan.com/demo/download-image/" target="_blank">http://www.ityizhan.com/demo/download-image/</a></p>
<p>这个DEMO页面只是实现了最基本的两个部分：采集地址和打包下载。目前尚在测试阶段，还在进行的更新，希望大家发现问题能及时反馈，成为大家采集图片的方便工具。</p>
<p>根据不断的测试，以后还可能增加的新功能有，自动调整图片的大小，设置打包图片的名称规则，合并和分解图片。。。。反正想添加的功能挺多的，有什么好的建议也希望大家能留言。</p>
<p>下面说一下这个工具现有功能的实现方法：</p>
<h3>1. 获取地址</h3>
<p>这个功能最主要的就是用正则表达式来匹配页面源码里的图片地址了，这里用到得正则表达式是：</p>
<p><code>/&lt;img.*src="(.*)"\\s*.*&gt;/iU</code></p>
<p>首页通过PHP自带的读取文件函数来获得请求页面的html代码，然后用正则表达式来匹配里面的src地址，这里有两个注意点：</p>
<ul>
<li>file_get_content 只能获取到静态的页面内容，也就是说如果你在页面里看到的是图片是通过Javascript来展示的，通过这个工具是获取不到图片信息的</li>
<li>有的网站对file_get_content 这个函数做了些限制，如果不是通过浏览器打开的网页，服务器是拒绝请求的，这个时候我们就需要给php 程序添加一个配置信息，让采集的程序能够模拟一个留言器的UA（user agent），具体的做法可以通过下面的代码来实现：<code>//现在模拟的是一个Window 环境下的浏览器<br />
ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; 4399Box.560; .NET4.0C; .NET4.0E)');</code></li>
</ul>
<p><span id="more-1022"></span>通过以上两点的处理，获取网页源码就没有问题了，唯一要做的就是用正则表达式对图片地址的匹配。</p>
<h3>2. 打包下载图片</h3>
<p>这个功能没有什么要说，网上有很多开源的代码，可以提供打包的功能，你唯一要做的就是把页面获取到的图片信息，用php 的函数读出图片，并且把它添加到压缩包里。这个功能会在日后代码开源的时候一起公布出来。</p>
<p>这个在线采集的小工具可以帮助一些快速建站的站长，很快的下载同一个页面里的所有的图片信息，来补充自己的站点的内容。其实现在有很多开源的项目已经有了采集的功能，比如说DEDE的采集系统，但是对于一些使用者来说，功能太强大了，他们反而不会用，而且DEDE采集到的信息都是直接入库了，对一些只想看采集图片的用户来说还是满足不了需求。</p>
<p>我觉得功能强大固然好，但是对于使用者来说，便捷方便将会有更大的用户群，希望大家试过这个小工具后，能多提宝贵意见，让这个工具更好为使用者服务。</p>
<p><a title="采集图片地址|下载图片" href="http://www.ityizhan.com/demo/download-image/" target="_blank">演示地址</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ityizhan.com/get-image-location-and-download-picture-package/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>基于jQuery的上传插件uploadify</title>
		<link>http://www.ityizhan.com/jquery-uploadify-plugin/</link>
		<comments>http://www.ityizhan.com/jquery-uploadify-plugin/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 19:27:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[plug-in]]></category>
		<category><![CDATA[uploadify]]></category>

		<guid isPermaLink="false">http://www.ityizhan.com/?p=1016</guid>
		<description><![CDATA[jQuery Uploadify 是一个强有力的而且可以高度自定义的文件上传插件，它是基于jQuery 和 SWFUpload 来开发的，支持进度条显示，实现的效果非常不错。可以见下图： Uploadify 的官方网站：http://www.uploadify.com Uploadify 的演示地址：http://www.uploadify.com/demos/ Uploadify 的下载地址：http://www.uploadify.com/download/ 从Uploadify 的下载页面上，可以看到当前的版本已经是Uploadify-v3.0.0 (Beta)，但是还是一个Beta版，所以目前来说网站上的文档主要是针对 uploadify v2.14 的。所以这里就不多介绍老版本的文档了，主要说一下Uploadify3.0 的一些用法。 Uploadify 的v3.0 和老版本还是有很大的差别的，虽然从演示上来看基本上一样，但是jquery调用uploadify的时候，一些很重要的参数名字都变了。在演示上的差别，老版本是把按钮的样式放在flash里，而v3.0把按钮的样式和flash 分开了，定义起来更加自由。 下面来说一下v3.0 的使用方法和有哪些参数上变化： 使用方法： &#60;html&#62; &#60;head&#62; &#60;link href="/uploadify/uploadify.css" type="text/css" rel="stylesheet" /&#62; &#60;script type="text/javascript" src="/uploadify/jquery-1.5.1.js"&#62;&#60;/script&#62; &#60;script type="text/javascript" src="/uploadify/swfobject.js"&#62;&#60;/script&#62; &#60;script &#8230; <a href="http://www.ityizhan.com/jquery-uploadify-plugin/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>jQuery Uploadify 是一个强有力的而且可以高度自定义的文件上传插件，它是基于jQuery 和 SWFUpload 来开发的，支持进度条显示，实现的效果非常不错。可以见下图：</p>
<p><a href="http://www.ityizhan.com/wp-content/uploads/2011/09/jquery-uploadify-demo.jpg"><img class="alignnone size-full wp-image-1017" title="jquery-uploadify-demo" src="http://www.ityizhan.com/wp-content/uploads/2011/09/jquery-uploadify-demo.jpg" alt="" width="383" height="113" /></a></p>
<ul>
<li>Uploadify 的官方网站：<a href="http://www.uploadify.com" target="_blank">http://www.uploadify.com</a></li>
<li>Uploadify 的演示地址：<a href="http://www.uploadify.com/demos/" target="_blank">http://www.uploadify.com/demos/</a></li>
<li>Uploadify 的下载地址：<a href="http://www.uploadify.com/download/">http://www.uploadify.com/download/</a></li>
</ul>
<p>从Uploadify 的下载页面上，可以看到当前的版本已经是<a href="http://www.uploadify.com/wp-content/uploads/uploadify-v3.0.0.zip">Uploadify-v3.0.0 (Beta)</a>，但是还是一个Beta版，所以目前来说网站上的文档主要是针对 uploadify v2.14 的。所以这里就不多介绍老版本的文档了，主要说一下Uploadify3.0 的一些用法。</p>
<p>Uploadify 的v3.0 和老版本还是有很大的差别的，虽然从演示上来看基本上一样，但是jquery调用uploadify的时候，一些很重要的参数名字都变了。在演示上的差别，老版本是把按钮的样式放在flash里，而v3.0把按钮的样式和flash 分开了，定义起来更加自由。</p>
<p>下面来说一下v3.0 的使用方法和有哪些参数上变化：<span id="more-1016"></span></p>
<h3>使用方法：</h3>
<p><code><br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;link href="/uploadify/uploadify.css" type="text/css" rel="stylesheet" /&gt;<br />
&lt;script type="text/javascript" src="/uploadify/jquery-1.5.1.js"&gt;&lt;/script&gt;<br />
&lt;script type="text/javascript" src="/uploadify/swfobject.js"&gt;&lt;/script&gt;<br />
&lt;script type="text/javascript" src="/uploadify/jquery.uploadify.js"&gt;&lt;/script&gt;<br />
&lt;script type="text/javascript"&gt;<br />
$(document).ready(function() {<br />
$('#file_upload').uploadify({<br />
'uploader'  : '/uploadify/uploadify.php',<br />
'swf'       : '/uploadify/uploadify.swf',<br />
'cancelImage' : '/uploadify/uploadify-cancel.png',<br />
'auto'      : true<br />
});<br />
});<br />
&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;input id="file_upload" name="file_upload" type="file" /&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</code></p>
<p>在页面中首先要uploadify 依赖的两个js 库：jquery 和 swfobject， 然后再加入从网上下载的 jquery.uploadify.js。 到目前为止，准备工作已经就绪，下面开始使用 jQuery<code>.uploadify() 函数。传入指定的参数后，uploadify 就会按照你的要求来工作了。</code></p>
<h3>Uploadify v3.0的参数详解</h3>
<p>下面的参数参数是必须的，当然插件也已经给他们赋上了必要的默认值<br />
<code><br />
id       : jQuery(this).attr('id'),   // 根据页面上绑定的对象来给uploadify设置id<br />
swf      : 'uploadify.swf',           // uploadify的上传功能是通过flash 来实现的，swf 是用来设置这个flash 的位置，这个flash 可以在下载的插件包里找到<br />
uploader : 'uploadify.php',   // 这个参数是当文件上传完以后调用的ＰＨＰ代码的地址<br />
</code><br />
下面的参数是可选的<br />
<code>// Options<br />
auto : false,　　　　// 设置选完文件是否自动上传<br />
buttonClass     : '',  // 可以为按钮自定义样式<br />
buttonCursor    : 'hand',   // 设置档鼠标移动到flash 上显示的图标<br />
buttonImage     : false,    // 设置按钮的图片<br />
buttonText      : 'SELECT FILES',  // 设置按钮上显示的文本<br />
cancelImage     : 'uploadify-cancel.png',   // 设置取消按钮的图片<br />
checkExisting   : 'uploadify-check-existing.php',  // 检查上传的文件时候已经存在<br />
debug           : false,   // uploadify de调试程序是否开启<br />
fileObjName     : 'Filedata',<br />
fileSizeLimit   : 0,   // 设置文件的上传的大小，0为无穷大<br />
fileTypeDesc    : 'All Files (*.*)',<br />
fileTypeExts    : '*.*', // 设置文件上传时的文件类型<br />
height          : 30,   // 设置flash 的高度<br />
method          : 'post',  // 设置提交的方法<br />
multi           : false,  // 是否支付多文件一起上传<br />
queueID         : false, //<br />
queueSizeLimit  : 999,<br />
removeCompleted : true,<br />
removeTimeout   : 3,<br />
requeueErrors   : false,<br />
postData        : {},  // 设置上传是需要传入的参数<br />
preventCaching  : true,<br />
progressData    : 'percentage',<br />
// simUploadLimit  : 1, // Not possible with swfUpload<br />
successTimeout  : 30,<br />
transparent     : true,<br />
uploadLimit     : 999,<br />
uploaderType    : 'html5', // the other option is 'flash'  // 设置上传组件的类型<br />
width           : 120,   // 设置flash 的高度<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ityizhan.com/jquery-uploadify-plugin/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>利用PHP对腾讯微博发布和收听</title>
		<link>http://www.ityizhan.com/php-publish-and-follow-qq-microblogging/</link>
		<comments>http://www.ityizhan.com/php-publish-and-follow-qq-microblogging/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 05:29:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[微博]]></category>

		<guid isPermaLink="false">http://www.ityizhan.com/?p=844</guid>
		<description><![CDATA[微博流行已经很久了，在各大门户已经开放注册，功能齐全，甚至有些还开放API，腾讯微博发布出来以后凭借着庞大的用户群，很快也受到了用户的关 注。目前腾讯微博尚处于内测阶段，没有公开的API。很多用户希望能够更新自己其他的微博时，能同时更新自己的腾讯微博，或者通过程序来给多个帐号更新微博内容。其实更新内容并不难，主要是登录问题，登录以后要保存COOKIE，COOKIE存在才可以进行更新微博内容，收听微博等操作。 下面来介绍一下如何通过PHP来进行腾讯微博操作，也可以直接查看演示。 如何用PHP登陆微博账户 腾讯的登录需要两个步鄹，第一步是根据自己的QQ号获取验证码，验证地址是： http://ptlogin2.qq.com/check?uin=@'.$qq.'&#38;appid=46000101 其中$qq代表你的微博帐号，通过这个验证你可以得到如下的结果： ptui_checkVC('0','!CCQ'); 其中!CCQ就是对应的验证码。这是一个随机码，每次访问都会有变化的。第二步就是把用户名，密码和验证码等信息提交到下面的地址： http://ptlogin2.qq.com/login?u=@'.$qq.'&#38;p='.md5($password.$verifyCode).'&#38;verifycode='.$verifyCode.'&#38;aid=46000101&#38;u1=http%3A%2F%2Ft.qq.com&#38;h=1&#38;from_ui=1&#38;fp=loginerroralert 其中u=@&#8217;.$qq.&#8217;指的是你的微博帐号 p=&#8217;.md5($pwd.$verifyCode).&#8217;是经过加密的密码，这个参数比较复杂，首先要把用户的qq密码经过md5_3加密，然后和刚刚返回的验证码组合，再使用md5加密 &#38;verifycode=&#8217;.$verifyCode.&#8217;值得就是刚刚返回的验证码 &#38;aid=46000101&#38;u1=http%3A%2F%2Ft.qq.com&#38;h=1&#38;from_ui=1&#38;fp=loginerroralert 其他这些参数都是固定的不用修改，在请求这个地址以后如果正确会返回下面的信息： ptuiCB('0','0','http://t.qq.com','0'); 这个时候就算登录成功了，接下来就可以对微博进行操作了。 如何用PHP给微博发广播 发送广播很简单，只要想指定地址发送（POST）四个参数即可，提交的地址是： http://t.qq.com/publish.php POST的数据有： conten&#8217;=urlencode($content) ,指的是广播的内容，提交时需要用URL编码 pic=&#38;countType=&#38;viewModel=1 这些参数不用变，这里值得注意一点的是publish.php 页面需要验证提交地址，提交地址必须是来自于 http://t.qq.com/ 所以在发送POST请求的时候，需要提交一个REFERER。这样就可以发布成功了，返回的结果如下： {result:0,msg:'广播成功',info:{'talk':[{"id":"XXXXXX","content":"\u53c8\u5f00\u59cb\u4e0b\u96e8\u4e86\uff01","time":"\u521a\u521a","type":1,"image":[],"from":"XXXXXX","name":"","nick":"","pic":"","flag":[],"count":0,"timestamp":1279167435}]}} 如何用PHP收听其他用户的微博 收听微博的操作和发送广播的操作基本一样，也是往指定的地址发送（POST）数据，不过只需要有两个参数就可以了，提交的地址是： http://t.qq.com/follow.php POST的数据有： &#8216;u&#8217;=&#62;urlencode($follow) $follow指的是你想要收听的用户的微博号 &#8216;r&#8217;=&#62;urlencode(time()) 这是一个随机码 提交以后，如果成功返回的结果如下： {result:0,msg:'成功'} 到此为止，利用PHP对腾讯微博发布和收听的操作就都已经完成了，如果想测试可以点击的此处进入演示地址， &#8230; <a href="http://www.ityizhan.com/php-publish-and-follow-qq-microblogging/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>微博流行已经很久了，在各大门户已经开放注册，功能齐全，甚至有些还开放API，腾讯微博发布出来以后凭借着庞大的用户群，很快也受到了用户的关 注。目前腾讯微博尚处于内测阶段，没有公开的API。很多用户希望能够更新自己其他的微博时，能同时更新自己的腾讯微博，或者通过程序来给多个帐号更新微博内容。其实更新内容并不难，主要是登录问题，登录以后要保存COOKIE，COOKIE存在才可以进行更新微博内容，收听微博等操作。<br />
<img class="alignnone size-full wp-image-851" title="qq-microblogging-logo" src="http://www.ityizhan.com/wp-content/uploads/2010/07/qq-microblogging-logo.gif" alt="" width="219" height="66" /><br />
下面来介绍一下如何通过PHP来进行腾讯微博操作，也可以直接查看<a title="微博发布演示" href="http://www.ityizhan.com/demo/tqq/" target="_blank">演示</a>。</p>
<h2>如何用PHP登陆微博账户</h2>
<p>腾讯的登录需要两个步鄹，第一步是根据自己的QQ号获取验证码，验证地址是：<br />
<code>http://ptlogin2.qq.com/check?uin=@'.$qq.'&amp;appid=46000101</code><br />
其中$qq代表你的微博帐号，通过这个验证你可以得到如下的结果：<br />
<code>ptui_checkVC('0','!CCQ');</code><br />
其中!CCQ就是对应的验证码。这是一个随机码，每次访问都会有变化的。第二步就是把用户名，密码和验证码等信息提交到下面的地址：<span id="more-844"></span><br />
<code>http://ptlogin2.qq.com/login?u=@'.$qq.'&amp;p='.md5($password.$verifyCode).'&amp;verifycode='.$verifyCode.'&amp;aid=46000101&amp;u1=http%3A%2F%2Ft.qq.com&amp;h=1&amp;from_ui=1&amp;fp=loginerroralert</code><br />
其中u=@&#8217;.$qq.&#8217;指的是你的微博帐号<br />
p=&#8217;.md5($pwd.$verifyCode).&#8217;是经过加密的密码，这个参数比较复杂，首先要把用户的qq密码经过md5_3加密，然后和刚刚返回的验证码组合，再使用md5加密<br />
&amp;verifycode=&#8217;.$verifyCode.&#8217;值得就是刚刚返回的验证码<br />
&amp;aid=46000101&amp;u1=http%3A%2F%2Ft.qq.com&amp;h=1&amp;from_ui=1&amp;fp=loginerroralert 其他这些参数都是固定的不用修改，在请求这个地址以后如果正确会返回下面的信息：<br />
<code>ptuiCB('0','0','http://t.qq.com','0');</code><br />
这个时候就算登录成功了，接下来就可以对微博进行操作了。</p>
<h2>如何用PHP给微博发广播</h2>
<p>发送广播很简单，只要想指定地址发送（POST）四个参数即可，提交的地址是：<br />
<code>http://t.qq.com/publish.php</code><br />
POST的数据有：<br />
conten&#8217;=urlencode($content) ,指的是广播的内容，提交时需要用URL编码<br />
pic=&amp;countType=&amp;viewModel=1 这些参数不用变，这里值得注意一点的是publish.php 页面需要验证提交地址，提交地址必须是来自于 http://t.qq.com/ 所以在发送POST请求的时候，需要提交一个REFERER。这样就可以发布成功了，返回的结果如下：<br />
<code>{result:0,msg:'广播成功',info:{'talk':[{"id":"XXXXXX","content":"\u53c8\u5f00\u59cb\u4e0b\u96e8\u4e86\uff01","time":"\u521a\u521a","type":1,"image":[],"from":"XXXXXX","name":"","nick":"","pic":"","flag":[],"count":0,"timestamp":1279167435}]}}</code></p>
<h2>如何用PHP收听其他用户的微博</h2>
<p>收听微博的操作和发送广播的操作基本一样，也是往指定的地址发送（POST）数据，不过只需要有两个参数就可以了，提交的地址是：<br />
<code>http://t.qq.com/follow.php</code><br />
POST的数据有：<br />
&#8216;u&#8217;=&gt;urlencode($follow) $follow指的是你想要收听的用户的微博号<br />
&#8216;r&#8217;=&gt;urlencode(time()) 这是一个随机码<br />
提交以后，如果成功返回的结果如下：<br />
<code>{result:0,msg:'成功'}</code><br />
到此为止，利用PHP对腾讯微博发布和收听的操作就都已经完成了，如果想测试可以点击的<a title="微博发布演示" href="http://www.ityizhan.com/demo/tqq/" target="_blank">此处进入演示地址</a>， 也欢迎大家收听我的微博:<a href="http://t.qq.com/yiyang1231" target="_blank">http://t.qq.com/yiyang1231</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ityizhan.com/php-publish-and-follow-qq-microblogging/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>终于获得了Text-Link-Ad 的第一笔收入</title>
		<link>http://www.ityizhan.com/first-income-from-text-link-ad/</link>
		<comments>http://www.ityizhan.com/first-income-from-text-link-ad/#comments</comments>
		<pubDate>Sun, 31 Jul 2011 16:11:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[网络赚钱]]></category>
		<category><![CDATA[网赚]]></category>

		<guid isPermaLink="false">http://www.ityizhan.com/%e7%bb%88%e4%ba%8e%e8%8e%b7%e5%be%97%e4%ba%86text-link-ad-%e7%9a%84%e7%ac%ac%e4%b8%80%e7%ac%94%e6%94%b6%e5%85%a5/</guid>
		<description><![CDATA[也许经常来这里光顾的朋友应该注意到，网站的右侧的sidebar多了一个新的栏目&#8211;“TEXT LINK AD”，这便是本网站在Text Link Ad 卖出的第一个链接。 注册Text Link Ad已经有一年之久了，起初比较关注里面的一举一动，后来渐渐的兴趣就比较消弱了，因为在这一年多的时间里，没有得到过里面的一点反馈，不知道是网站的设置有问题还是网站的内容的问题。可以前不久缺突然收到一封来自Text Link Ad 的邮件，邮件的标题用很醒目的字写着：“Text Link Ad Sold”。 看到这个邮件才让我把失去信心的Text Link Ad 重新拿起来。 如果大家对Text-Link-Ads 感兴趣的话，可以查看《TEXT LINK ADS 网站赚钱》 收到广告卖出的邮件是在上个的中旬，因为Text Link Ad里的佣金是按照每个自然月来支付的，那么我上个月中旬开始卖出的广告应该只有半个月的费用，佣金是在每个月的一号进行支付。这里给大家分享一下Text Link Ad卖出广告的状态和自己的一些心得。 首先登录Text Link Ad的网站，然后在左侧的“Money Earned”菜单里可以看到你当前卖出的广告: 当点击“View Details”可以看到这个广告的详细信息： 这里要说明几个信息： Web Link: 指的是买广告的网站名称和网址 Monthly &#8230; <a href="http://www.ityizhan.com/first-income-from-text-link-ad/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>也许经常来这里光顾的朋友应该注意到，网站的右侧的sidebar多了一个新的栏目&#8211;“TEXT LINK AD”，这便是本网站在Text Link Ad 卖出的第一个链接。</p>
<p>注册Text Link Ad已经有一年之久了，起初比较关注里面的一举一动，后来渐渐的兴趣就比较消弱了，因为在这一年多的时间里，没有得到过里面的一点反馈，不知道是网站的设置有问题还是网站的内容的问题。可以前不久缺突然收到一封来自Text Link Ad 的邮件，邮件的标题用很醒目的字写着：“Text Link Ad Sold”。 看到这个邮件才让我把失去信心的Text Link Ad 重新拿起来。</p>
<p>如果大家对Text-Link-Ads 感兴趣的话，可以查看《<a href="http://www.ityizhan.com/text_link_ads/" target="_blank">TEXT LINK ADS 网站赚钱</a>》</p>
<p>收到广告卖出的邮件是在上个的中旬，因为Text Link Ad里的佣金是按照每个自然月来支付的，那么我上个月中旬开始卖出的广告应该只有半个月的费用，佣金是在每个月的一号进行支付。这里给大家分享一下Text Link Ad卖出广告的状态和自己的一些心得。</p>
<p>首先登录Text Link Ad的网站，然后在左侧的“Money Earned”菜单里可以看到你当前卖出的广告:</p>
<p><a href="http://www.ityizhan.com/wp-content/uploads/2011/08/tla_money.jpg"><img class="alignnone size-full wp-image-1012" title="tla_money" src="http://www.ityizhan.com/wp-content/uploads/2011/08/tla_money.jpg" alt="" width="537" height="56" /></a></p>
<p><span id="more-1009"></span>当点击“View Details”可以看到这个广告的详细信息：<a href="http://www.ityizhan.com/wp-content/uploads/2011/08/tla_details.jpg"><img class="alignnone size-full wp-image-1013" title="tla_details" src="http://www.ityizhan.com/wp-content/uploads/2011/08/tla_details.jpg" alt="" width="472" height="94" /></a></p>
<p>这里要说明几个信息：</p>
<p>Web Link: 指的是买广告的网站名称和网址</p>
<p>Monthly Price： 指的是买广告网站每个月支付的费用</p>
<p>Charged Period：指的是的支付的时间段</p>
<p>Earnings：指的是你从这笔费用中赚了多少钱 （很显然，广告卖了$8，但是TLA会收一半的费用，我只能得到$4）</p>
<p>不过总的来说，比国内的买链接的价格高点。</p>
<p>最后大家看一下我上个月里Paypal 的收到的钱（因为上个月只有半个月，所以费用也是一半）</p>
<p><a href="http://www.ityizhan.com/wp-content/uploads/2011/08/tla_pay.jpg"><img class="alignnone size-full wp-image-1014" title="tla_pay" src="http://www.ityizhan.com/wp-content/uploads/2011/08/tla_pay.jpg" alt="" width="604" height="63" /></a></p>
<p>新的一月又来临了，希望能有更多的收入来源于Text-Link-Ads吧</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ityizhan.com/first-income-from-text-link-ad/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>jQuery 和 jQueryUI 插件开发的通用框架</title>
		<link>http://www.ityizhan.com/jquery-and-jqueryui-plugin-template/</link>
		<comments>http://www.ityizhan.com/jquery-and-jqueryui-plugin-template/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 17:34:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://www.ityizhan.com/?p=1003</guid>
		<description><![CDATA[jQuery插件开发的通用框架： 关于jQuery插件开发中的重要函数可以参考：jQuery插件开发中几个重要的函数 。这里主要介绍一下jQuery开发通用的一个框架： ;(function($){ $.fn.yourName = function(options){ //各种属性、参数 } var options = $.extend(defaults, options); this.each(function(){ //插件实现代码 }); }; })(jQuery); jQueryUI插件开发的通用框架： jquery.ui.widget.js提供了一个工厂方法来建立小部件的类，签名如下： $.widget(String name, Options prototype) 调用建立小部件工厂的方法用来建立和与小部件的实例相互作用 除了由原型提供的参数以后，下面默认的方法对每一个实例都是有效的 * destroy(): 从DOM节点删除这个实例 * option(String key[, String value]): 获取或者设置选项 * enable(): 设置disabled选项为false,这取决于实例选项 * &#8230; <a href="http://www.ityizhan.com/jquery-and-jqueryui-plugin-template/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h2>jQuery插件开发的通用框架：</h2>
<p>关于jQuery插件开发中的重要函数可以参考：<a title="点击查看—&gt;jQuery插件开发中几个重要的函数" rel="bookmark" href="../function-in-jquery-plugin-develop/">jQuery插件开发中几个重要的函数</a> 。这里主要介绍一下jQuery开发通用的一个框架：</p>
<p><code>;(function($){<br />
$.fn.yourName = function(options){<br />
//各种属性、参数<br />
}<br />
var options = $.extend(defaults, options);<br />
this.each(function(){<br />
//插件实现代码<br />
});<br />
};<br />
})(jQuery);</code></p>
<h2>jQueryUI插件开发的通用框架：</h2>
<p>jquery.ui.widget.js提供了一个工厂方法来建立小部件的类，签名如下：<br />
$.widget(String name, Options prototype)<br />
调用建立小部件工厂的方法用来建立和与小部件的实例相互作用<br />
除了由原型提供的参数以后，下面默认的方法对每一个实例都是有效的<br />
* destroy(): 从DOM节点删除这个实例<br />
* option(String key[, String value]): 获取或者设置选项<br />
* enable(): 设置disabled选项为false,这取决于实例选项<br />
* disable(): 设置disabled选项为true,这取决于实例选项<br />
每个实例可用的属性：<br />
* options: 当前小部件实例的所有选项，它是由用户提供的所有设置的一个集合<br />
* element: 是包含一个单独DOM节点的jQuery对象, 它可以通过this.element[0]来访问<br />
<span id="more-1003"></span><br />
你可以在你的不部件插件里重写这些方法，如果你想继承默认的方法并且增加新的功能，可以这样做：<br />
$.Widget.prototype.methodToOverride.apply(this, arguments);<br />
这段代码会执行默认的方法，然后你可以添加你的自定义代码：<br />
用法如下：</p>
<p><code>$.widget("ui.mywidget", {<br />
// 默认的参数<br />
options: {<br />
option1: "defaultValue",<br />
hidden: true<br />
},<br />
_create: function() {<br />
// 为mywidget创建代码<br />
// 可以使用 this.options<br />
if (this.options.hidden) {<br />
// 也可以使用 this.element<br />
this.element.hide();<br />
}<br />
},<br />
_doSomething: function() {<br />
// 内部函数应该以下划线开头<br />
// 函数用来操作组件<br />
},<br />
value: function() {<br />
// 计算值并且返回<br />
return this._calculate();<br />
},<br />
length: function() {<br />
return this._someOtherValue();<br />
},<br />
destroy: function() {<br />
$.Widget.prototype.destroy.apply(this, arguments); // 默认的销毁函数<br />
// 现在可以对组建可以做一些特定的操作<br />
}<br />
});</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ityizhan.com/jquery-and-jqueryui-plugin-template/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>jQuery插件开发中几个重要的函数</title>
		<link>http://www.ityizhan.com/function-in-jquery-plugin-develop/</link>
		<comments>http://www.ityizhan.com/function-in-jquery-plugin-develop/#comments</comments>
		<pubDate>Wed, 04 May 2011 05:12:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[插件开发]]></category>

		<guid isPermaLink="false">http://www.ityizhan.com/?p=993</guid>
		<description><![CDATA[jQuery.extend(target, [object1], [objectN]) 返回值：对象（Object） 描述：合并两个或多个对象的内容到第一个对象 用法：在jQuery1.1.4后改方法新添一个参数 deep jQuery.extend([deep], target, object1, [objectN]) 参数： deep 如果为true,合并就变成递归的合并 target 被扩展的对象，它将会收到新的属性 object1 一个包含了新增属性的对象，它将被合并到target中 objectN 多个新增的属性的对象 当我们提供两个或多个对象的时候，$.extend() 会把所有的对象都合并到目标对象，如果只提供了一个对象，那说明target对象是被省略了的，在这种情况下，jQuery对象假设自己的就是目标对象。 通过这个函数我们可以给jQuery的命名空间里添加新的函数，记住目标对象（第一个参数）将会被修改，并且会从函数中返回，如果我们想保持原有的对象不变，可以通&#62;过传递一个空对象作为目标： var object = $.extend({}, object1, object2); 默认的情况$.extend()的合并是不会做递归处理的，如果第一个属性是一个对象或者是以个数组的话，它将会被新的对象中相同的属性完全覆盖，而不是被合并，但是通&#62;过给函数的第一个参数设置为true，可以让对象在合并的时候做递归处理 实例： 例一：合并两个对象，并且修改第一个 var object1 = { apple: 0, banana: {weight: &#8230; <a href="http://www.ityizhan.com/function-in-jquery-plugin-develop/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>jQuery.extend(target, [object1], [objectN])</strong><br />
<strong>返回值</strong>：对象（Object）<br />
<strong>描述</strong>：合并两个或多个对象的内容到第一个对象<br />
<strong>用法</strong>：在jQuery1.1.4后改方法新添一个参数 deep<br />
jQuery.extend([deep], target, object1, [objectN])<br />
<strong>参数</strong>：<br />
deep 如果为true,合并就变成递归的合并<br />
target 被扩展的对象，它将会收到新的属性<br />
object1 一个包含了新增属性的对象，它将被合并到target中<br />
objectN 多个新增的属性的对象<br />
当我们提供两个或多个对象的时候，$.extend() 会把所有的对象都合并到目标对象，如果只提供了一个对象，那说明target对象是被省略了的，在这种情况下，jQuery对象假设自己的就是目标对象。</p>
<div>通过这个函数我们可以给jQuery的命名空间里添加新的函数，记住目标对象（第一个参数）将会被修改，并且会从函数中返回，如果我们想保持原有的对象不变，可以通&gt;过传递一个空对象作为目标：<br />
var object = $.extend({}, object1, object2);</div>
<div>
<div>默认的情况$.extend()的合并是不会做递归处理的，如果第一个属性是一个对象或者是以个数组的话，它将会被新的对象中相同的属性完全覆盖，而不是被合并，但是通&gt;过给函数的第一个参数设置为true，可以让对象在合并的时候做递归处理</div>
<div><span id="more-993"></span><br />
<strong>实例</strong>：<br />
例一：合并两个对象，并且修改第一个<br />
var object1 = {<br />
apple: 0,<br />
banana: {weight: 52, price: 100},<br />
cherry: 97<br />
};<br />
var object2 = {<br />
banana: {price: 200},<br />
durian: 100<br />
};<br />
$.extend(object1, object2);<br />
结果：<br />
object1 === {apple: 0, banana: {price: 200}, cherry: 97, durian: 100}</div>
<div>
<div>例二：用递归合并两个对象，并且修改第一个<br />
var object1 = {<br />
apple: 0,<br />
banana: {weight: 52, price: 100},<br />
cherry: 97<br />
};<br />
var object2 = {<br />
banana: {price: 200},<br />
lime: 100<br />
};<br />
$.extend(true, object1, object2);<br />
结果：<br />
object1 === {apple: 0, banana: {weight: 52, price: 200}, cherry: 97, lime: 100}</p>
<div>例三：合并settings和options，并且修改settings.<br />
var settings = { validate: false, limit: 5, name: “foo” };<br />
var options = { validate: true, name: “bar” };<br />
jQuery.extend(settings, options);<br />
结果：<br />
settings == { validate: true, limit: 5, name: “bar” }</p>
<p>例四:合并defaults 和 options，但不修改defaults，这是一种常见的插件开发模式。<br />
var empty = {}<br />
var defaults = { validate: false, limit: 5, name: “foo” };<br />
var options = { validate: true, name: “bar” };<br />
var settings = $.extend(empty, defaults, options);<br />
结果：<br />
settings == { validate: true, limit: 5, name: “bar” }<br />
empty == { validate: true, limit: 5, name: “bar” }</p>
</div>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.ityizhan.com/function-in-jquery-plugin-develop/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>VIM 常用的操作</title>
		<link>http://www.ityizhan.com/vim-men/</link>
		<comments>http://www.ityizhan.com/vim-men/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 06:04:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.ityizhan.com/?p=988</guid>
		<description><![CDATA[VIM 是一个高效的编辑器，这里总结一些VIM的常用操作 输入编辑模式： i: 在光标位置进入编辑模式 I(大写i): 在光标所在行的行首位置进入编辑模式 a: 在光标所在位置的右边进入编辑模式 A: 在光标所在行的行尾进入编辑模式 o: 在光标的下一行另起新行，进入编辑模式 O: 在光标的上一行另起新行，进入编辑模式 光标操作： h 左，或Backspace 或方向键。 j 下，或Enter 或+（要Shift 键），或方向键。 k 上，或方向键或-（不必Shift 键）。 l 右，或Space 或方向键。 Ctrl+f 即PageDown 翻页（Forward，向前、下翻页）。 Crtl+b 即PageUp 翻页（Backward，向后、上翻页)。 进阶光标移动 0 是数目字0 而不是英文字母o。或是Home 键，移至行首，（含空白字元）。 &#8230; <a href="http://www.ityizhan.com/vim-men/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>VIM</strong> 是一个高效的编辑器，这里总结一些VIM的常用操作</p>
<p><strong>输入编辑模式：</strong></p>
<ul>
<li><strong>i</strong>: 	在光标位置进入编辑模式</li>
<li><strong>I</strong>(大写i): 在光标所在行的行首位置进入编辑模式</li>
<li><strong>a</strong>: 	在光标所在位置的右边进入编辑模式</li>
<li><strong>A</strong>: 	在光标所在行的行尾进入编辑模式</li>
<li><strong>o</strong>:	在光标的下一行另起新行，进入编辑模式</li>
<li><strong>O</strong>:	在光标的上一行另起新行，进入编辑模式</li>
</ul>
<p><strong> 光标操作：</strong></p>
<ul>
<li><strong>h</strong> 左，或Backspace 或方向键。</li>
<li><strong>j</strong> 下，或Enter 或+（要Shift 键），或方向键。</li>
<li><strong>k</strong> 上，或方向键或-（不必Shift 键）。</li>
<li><strong>l</strong> 右，或Space 或方向键。</li>
<li><strong>Ctrl+f</strong> 即PageDown 翻页（Forward，向前、下翻页）。</li>
<li><strong>Crtl+b</strong> 即PageUp 翻页（Backward，向后、上翻页)。</li>
</ul>
<p><strong> 进阶光标移动</strong></p>
<ul>
<li><strong>0</strong> 是数目字0 而不是英文字母o。或是Home 键，移至行首，（含空白字元）。</li>
<li><strong>^</strong> 移至行首第一个非空白字元，注意，要Shift 键。</li>
<li><strong>$</strong> 移至行尾，或End 键。要 Shift 键。</li>
<li><strong>G</strong> 移至档尾（全文最后一行的第一个非空白字元处）</li>
<li><strong>gg</strong> 移至档首（全文第一行之第一个非空白字元处）。</li>
</ul>
<p><span id="more-988"></span><br />
<strong>单词间的移动</strong></p>
<ul>
<li><strong>w</strong> 	移至次一个字（word）字首。当然是指英文单字。</li>
<li><strong>W</strong> 	同上，但会忽略一些标点符号。</li>
<li><strong>e</strong> 	移至后一个字字尾。</li>
<li><strong>E</strong> 	同上，但会忽略一些标点符号。</li>
<li><strong>b</strong> 	移至前一个字字首。</li>
<li><strong>B</strong> 	同上，但会忽略一些标点符号。</li>
<li><strong>H</strong> 	移至屏幕顶第一个非空白字元。</li>
<li><strong>M</strong> 	移至屏幕中间第一个非空白字元。</li>
<li><strong>L</strong> 	移至屏幕底第一个非空白字元。这和PageDown，PageUp 不一样，内文内容并未动，只是光标在动而已。</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ityizhan.com/vim-men/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>浏览器内核-Trident&#124;Gecko&#124;Presto&#124;Webkit</title>
		<link>http://www.ityizhan.com/rendering-ngine/</link>
		<comments>http://www.ityizhan.com/rendering-ngine/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 09:19:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[资讯]]></category>

		<guid isPermaLink="false">http://www.ityizhan.com/?p=985</guid>
		<description><![CDATA[前台开发者接触到最多的问题应该就是浏览器兼容了，要解决浏览器的兼容问题就要了解浏览器的内核。 通常所谓的浏览器内核也就是浏览器所采用的渲染引擎，渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解释也有不同，因此同一网页在不同的内核的浏览器里的渲染（显示）效果也可能不同，这也是前台开发者需要在不同内核的浏览器中测试网页显示效果的原因。 浏览器的内核大致有四种： Trident Gecko Presto Webkit 具体的解释可以参照百度百科里的解释： http://baike.baidu.com/view/1369399.htm 简单的总结一下： 使用Trident内核的浏览器：IE、Maxthon、TT、The World等； 使用Gecko内核的浏览器：Netcape6及以上版本、FireFox、MozillaSuite/SeaMonkey； 使用Presto内核的浏览器：Opera7及以上版本； 使用Webkit内核的浏览器：Safari、Chrome。]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">前台开发者接触到最多的问题应该就是浏览器兼容了，要解决浏览器的兼容问题就要了解浏览器的内核。</div>
<div id="_mcePaste">通常所谓的浏览器内核也就是浏览器所采用的渲染引擎，渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解释也有不同，因此同一网页在不同的内核的浏览器里的渲染（显示）效果也可能不同，这也是前台开发者需要在不同内核的浏览器中测试网页显示效果的原因。</div>
<p>浏览器的内核大致有四种：</p>
<p>Trident</p>
<p>Gecko</p>
<p>Presto</p>
<p>Webkit</p>
<p>具体的解释可以参照百度百科里的解释：</p>
<p>http://baike.baidu.com/view/1369399.htm</p>
<p>简单的总结一下：</p>
<p>使用Trident内核的浏览器：IE、Maxthon、TT、The World等；</p>
<p>使用Gecko内核的浏览器：Netcape6及以上版本、FireFox、MozillaSuite/SeaMonkey；</p>
<p>使用Presto内核的浏览器：Opera7及以上版本；</p>
<p>使用Webkit内核的浏览器：Safari、Chrome。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ityizhan.com/rendering-ngine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

