<?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>乔巴大人</title>
	<atom:link href="http://www.mphsky.com/kanesblog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.mphsky.com/kanesblog</link>
	<description>站在云端看世界,还是一个样吗?</description>
	<lastBuildDate>Thu, 06 May 2010 04:06:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>IPplayer</title>
		<link>http://www.mphsky.com/kanesblog/?p=98</link>
		<comments>http://www.mphsky.com/kanesblog/?p=98#comments</comments>
		<pubDate>Sun, 25 Oct 2009 04:16:53 +0000</pubDate>
		<dc:creator>kane</dc:creator>
				<category><![CDATA[综合]]></category>
		<category><![CDATA[internet radio]]></category>
		<category><![CDATA[iptv]]></category>
		<category><![CDATA[media center]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.mphsky.com/kanesblog/?p=98</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-99" title="ipplayer1" src="http://www.mphsky.com/kanesblog/wp-content/uploads/2009/10/ipplayer1.jpg" alt="ipplayer1" width="593" height="380" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mphsky.com/kanesblog/?feed=rss2&amp;p=98</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studio 2008 简体中文正式版序列号</title>
		<link>http://www.mphsky.com/kanesblog/?p=97</link>
		<comments>http://www.mphsky.com/kanesblog/?p=97#comments</comments>
		<pubDate>Thu, 22 Oct 2009 05:14:52 +0000</pubDate>
		<dc:creator>kane</dc:creator>
				<category><![CDATA[综合]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://www.mphsky.com/kanesblog/?p=97</guid>
		<description><![CDATA[从Microsoft那下了7个压缩文件分包后，解压后是一个ISO文件。
我用UltraISO编辑了下ISO文件：Setup&#8211;&#62;setup.sdb文件提取出来编辑，将
[Product Key]
T2CRQGDKBVW7KJR8C6CKXMW3D
改成
[Product Key]
PYHYPWXB3BB2CCMV9DX9VDY8T
这样，安装的时候就默认是这个正版的序列号了。
还有一种方法就是，不改这个文件，安装后，再添加删除程序的时候可以输入序列号：
PYHYP－WXB3B－B2CCM－V9DX9－VDY8T
也可以变成正版。
Windows 7下VS2008破解90天限制的激活升级方法（支持简体中文，英文，繁体中文）：
http://www.zu14.cn/2010/02/01/windows7-vs2008-upgrade-crack-solution/
]]></description>
			<content:encoded><![CDATA[<p>从Microsoft那下了7个压缩文件分包后，解压后是一个ISO文件。<br />
我用UltraISO编辑了下ISO文件：Setup&#8211;&gt;setup.sdb文件提取出来编辑，将<br />
[Product Key]<br />
T2CRQGDKBVW7KJR8C6CKXMW3D<br />
改成<br />
[Product Key]<br />
PYHYPWXB3BB2CCMV9DX9VDY8T<br />
这样，安装的时候就默认是这个正版的序列号了。<br />
还有一种方法就是，不改这个文件，安装后，再添加删除程序的时候可以输入序列号：<br />
PYHYP－WXB3B－B2CCM－V9DX9－VDY8T<br />
也可以变成正版。</p>
<p>Windows 7下VS2008破解90天限制的激活升级方法（支持简体中文，英文，繁体中文）：</p>
<p>http://www.zu14.cn/2010/02/01/windows7-vs2008-upgrade-crack-solution/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mphsky.com/kanesblog/?feed=rss2&amp;p=97</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convert From Javascript Syntax To Php Syntax And From Php To Javascript</title>
		<link>http://www.mphsky.com/kanesblog/?p=77</link>
		<comments>http://www.mphsky.com/kanesblog/?p=77#comments</comments>
		<pubDate>Thu, 15 Oct 2009 08:23:31 +0000</pubDate>
		<dc:creator>kane</dc:creator>
				<category><![CDATA[综合]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.mphsky.com/kanesblog/?p=77</guid>
		<description><![CDATA[STRING MANAGEMENT
Check whether it is a string
JAVASCRIPT
typeof(custom_string1)==&#8221;string&#8221;
PHP
is_string(custom_string1);
========================
Return length of string
JAVASCRIPT
custom_string1.length
PHP
strlen(custom_string1);
======================
From Ascii custom_number return its char and vice versa
JAVASCRIPT
String.fromCharCode(custom_fromNum)
custom_fromChar.charCodeAt(0)
fromCharCode is invoked using the String constructor as such, namely with a capital S.
charCodeAt requires a string concatenated to it by a dot; pass its argument as zero to mean you want the code of the first char [...]]]></description>
			<content:encoded><![CDATA[<p>STRING MANAGEMENT<br />
Check whether it is a string</p>
<p>JAVASCRIPT</p>
<p>typeof(custom_string1)==&#8221;string&#8221;</p>
<p>PHP</p>
<p>is_string(custom_string1);</p>
<p>========================</p>
<p>Return length of string</p>
<p>JAVASCRIPT</p>
<p>custom_string1.length</p>
<p>PHP</p>
<p>strlen(custom_string1);</p>
<p>======================</p>
<p>From Ascii custom_number return its char and vice versa</p>
<p>JAVASCRIPT</p>
<p>String.fromCharCode(custom_fromNum)<br />
custom_fromChar.charCodeAt(0)</p>
<p>fromCharCode is invoked using the String constructor as such, namely with a capital S.</p>
<p>charCodeAt requires a string concatenated to it by a dot; pass its argument as zero to mean you want the code of the first char in the string, example:<br />
&#8220;y&#8221;.charCodeAt(0)</p>
<p>PHP</p>
<p>chr(custom_fromNum);<br />
ord(custom_fromChar);</p>
<p>=====================</p>
<p>Convert to upper or lower case a string</p>
<p>JAVASCRIPT</p>
<p>custom_string1.toLowerCase()<br />
custom_string1.toUpperCase()</p>
<p>PHP</p>
<p>strtolower(custom_string1);<br />
strtoupper(custom_string1);</p>
<p>=======================</p>
<p>Return numerical index of the first instance of a substring position within a wider string</p>
<p>JAVASCRIPT</p>
<p>custom_string1.indexOf( custom_string2, custom_fromNum )</p>
<p>Upon failure (string 2 not present within custom_string1, returns -1)</p>
<p>To make is case insensitive:<br />
custom_string1.toLowerCase().indexOf( custom_string2.toLowerCase(), custom_fromNum )</p>
<p>PHP</p>
<p>strpos( custom_string1, custom_string2, custom_fromNum );</p>
<p>Upon failure (string 2 not present within custom_string1, returns false; since false is the same as zero -fisrt position in the string- to check whether strpos has returned false, do not use comparison check == but the identity check: === namely if<br />
strpos(blabla)===false )</p>
<p>To make it case insensitive use:<br />
stripos( custom_string1, custom_string2, custom_fromNum );<br />
note the i: stripos</p>
<p>==========================</p>
<p>Find the char at a given numerical index</p>
<p>JAVASCRIPT</p>
<p>custom_string1.charAt(custom_number)</p>
<p>PHP</p>
<p>substr(custom_string1, custom_number, 1);</p>
<p>$custom_string1[custom_number];<br />
php, unlike javascript, allows for addressing a string like an array of chars too, that is through square brackets indexing of the string itself.</p>
<p>Return numerical index of the last instance of a substring position within a wider string</p>
<p>====================================</p>
<p>JAVASCRIPT</p>
<p>custom_string1.lastIndexOf( custom_string2, custom_fromNum )</p>
<p>Upon failure (string 2 not present within custom_string1, returns -1)</p>
<p>To make is case insensitive:<br />
custom_string1.toLowerCase().lastIndexOf( custom_string2.toLowerCase(), custom_fromNum )</p>
<p>PHP</p>
<p>For Php 5 onward you can use:<br />
strrpos(custom_string1, custom_string2, custom_fromNum);<br />
Upon failure returns boolean false, to discriminate it from zero use for comparisons the === operator.<br />
The case insensitive version is:<br />
strripos(custom_string1, custom_string2, custom_fromNum);<br />
note the i in the function name.</p>
<p>=================================</p>
<p>Return substring</p>
<p>JAVASCRIPT</p>
<p>custom_string1.substring( custom_fromNum, toNum )<br />
custom_string1.substr( custom_fromNum, length )</p>
<p>PHP</p>
<p>substr( custom_string1, custom_fromNum, (toNum-custom_fromNum) );<br />
substr( custom_string1, custom_fromNum, custom_lengthOfItem);</p>
<p>PHP</p>
<p>substr( custom_string1, custom_fromNum, custom_lengthOfItem );</p>
<p>JAVASCRIPT</p>
<p>custom_string1.substr(custom_fromNum, length)</p>
<p>custom_string1.substring( custom_fromNum, (custom_fromNum+length) )</p>
<p>PHP</p>
<p>strstr( custom_string1, custom_string2 );</p>
<p>JAVASCRIPT</p>
<p>custom_string1.substring( custom_string1.indexOf(custom_string2) )</p>
<p>============================</p>
<p>Split a string</p>
<p>JAVASCRIPT</p>
<p>custom_string1.split(stringSplitter)</p>
<p>PHP</p>
<p>explode(stringSplitter, custom_string1);</p>
<p>explode does not accept an empty splitter such as &#8220;&#8221; in php, though javascript would accept it. To split by an empty splitter, use in PHP</p>
<p>preg_split( &#8220;//&#8221;, custom_string1);<br />
the two forward slashes are the delimiters of a regular expression, and encapsulating in this case nothing they amount to an empty splitter.</p>
<p>Note that with preg_split the hidden chars such as those of starting line or new line are included, therefore the first entry [0] of the returned splitted array would be an empty slot. Any break of line would then be reflected as two apparently &#8220;empty&#8221; returned array slots, one for the carriage return hidden char, the other for the new line hidden char.</p>
<p>=================================</p>
<p>Replace instances in a string</p>
<p>JAVASCRIPT</p>
<p>custom_string1.replace( custom_findThis, custom_replaceWithThis )</p>
<p>custom_string1.replace( custom_regularExpression, custom_replaceWithThis )</p>
<p>PHP</p>
<p>str_replace( custom_findThis, custom_replaceWithThis, custom_string1 );<br />
this function replaces all instances.</p>
<p>preg_replace( custom_regularExpression, custom_replaceWithThis, custom_string1 );</p>
<p>custom_regularExpression must be in between quotes, unlike JAVASCRIPT<br />
&#8220;/regexp here/&#8221;</p>
<p>PHP</p>
<p>substr_replace( custom_string1, custom_replaceWithThis, custom_fromNumIndex, custom_lengthOfItem );</p>
<p>JAVASCRIPT</p>
<p>custom_string1.replace( custom_string1.substring( custom_fromNumIndex, (custom_fromNumIndex+length) ), custom_replaceWithThis )</p>
<p>==================================</p>
<p>Strip Tags from a String</p>
<p>JAVASCRIPT</p>
<p>In Javascript we use a replacement, for no specific method is available for this task as in PHP</p>
<p>custom_string1=custom_string1.replace(/&lt;[^&gt;]+&gt;/g, &#8221;);</p>
<p>PHP</p>
<p>custom_string1=striptags(custom_string1);</p>
<p>==============================</p>
<p>Replace instances in a string</p>
<p>JAVASCRIPT</p>
<p>custom_string1.replace( custom_findThis, custom_replaceWithThis )</p>
<p>custom_string1.replace( custom_regularExpression, custom_replaceWithThis )</p>
<p>PHP</p>
<p>str_replace( custom_findThis, custom_replaceWithThis, custom_string1 );<br />
this function replaces all instances.</p>
<p>preg_replace( custom_regularExpression, custom_replaceWithThis, custom_string1 );</p>
<p>custom_regularExpression must be in between quotes, unlike JAVASCRIPT<br />
&#8220;/regexp here/&#8221;</p>
<p>PHP</p>
<p>substr_replace( custom_string1, custom_replaceWithThis, custom_fromNumIndex, custom_lengthOfItem );</p>
<p>JAVASCRIPT</p>
<p>custom_string1.replace( custom_string1.substring( custom_fromNumIndex, (custom_fromNumIndex+length) ), custom_replaceWithThis )</p>
<p>=============================</p>
<p>ARRAY MANAGEMENT<br />
Is that an array?</p>
<p>JAVASCRIPT</p>
<p>typeof(custom_array1)==&#8221;object&#8221;</p>
<p>PHP</p>
<p>is_array(custom_array1)</p>
<p>==================================</p>
<p>Length of an array</p>
<p>JAVASCRIPT</p>
<p>custom_array1.length</p>
<p>PHP</p>
<p>sizeof(custom_array1);</p>
<p>=============================</p>
<p>Join array entries into a string</p>
<p>JAVASCRIPT</p>
<p>custom_array1.join(custom_stringJoiner)</p>
<p>PHP</p>
<p>implode(custom_stringJoiner, custom_string1);</p>
<p>Return length of string</p>
<p>JAVASCRIPT</p>
<p>custom_array1.concat(custom_array2, custom_array3&#8230;)</p>
<p>This javascript method will not concatenate associative arrays namely arrays whose indexes are not uniquely numerical.</p>
<p>PHP</p>
<p>array_merge(custom_array1, custom_array2, custom_array3&#8230;);</p>
<p>array_merge_recursive(custom_array1, custom_array2, custom_array3&#8230;);<br />
This latter php method will concatenate associative arrays too namely arrays whose indexes are not uniquely numerical. From php.net:<br />
If the input arrays have the same string keys, then the values for these keys are merged together into an array, and this is done recursively, so that if one of the values is an array itself, the function will merge it with a corresponding entry in another array too. If, however, the arrays have the same numeric key, the later custom_value will not overwrite the original custom_value, but will be appended.</p>
<p>=======================================</p>
<p>Pop, push, shift, unshift on arrays</p>
<p>JAVASCRIPT</p>
<p>custom_array1.shift()<br />
custom_array1.unshift(custom_value)<br />
custom_array1.pop()<br />
custom_array1.push(custom_value)</p>
<p>PHP</p>
<p>array_shift(custom_array1);<br />
array_unshift(custom_array1, custom_value);<br />
array_pop(custom_array1);<br />
array_push(custom_array1, custom_value);</p>
<p>==================================</p>
<p>Reverse an array</p>
<p>JAVASCRIPT</p>
<p>custom_array1.reverse()</p>
<p>PHP</p>
<p>array_reverse(custom_array1);</p>
<p>This function accepts a second parameter, if passed as keyword true the arry is reversed but the indexes still the same.</p>
<p>To reset the indexes of an array in PHP</p>
<p>custom_array1=array_values(custom_array1);</p>
<p>====================================</p>
<p>Slice an array</p>
<p>JAVASCRIPT</p>
<p>custom_array1.slice(custom_startIndex, custom_endIndex)<br />
Original custom_array1 not affected, the sliced subsegment is released as an array of its own.</p>
<p>custom_array1.splice(custom_startIndex, custom_lengthOfItem)</p>
<p>Original custom_array1 is affected. This latter function allows for a third argument, which must be an array: if provided, in the original array the spliced (removed, for original is affected) subsection is just replaced with it.<br />
Note that in javascript the third argument is an index with slice and a length with splice.</p>
<p>PHP</p>
<p>array_slice( custom_array1, custom_startIndex, (custom_endIndex-custom_startIndex) );<br />
Original not affected.</p>
<p>array_splice( custom_array1, custom_startIndex, custom_lengthOfItem );</p>
<p>Original custom_array1 is affected. This latter function allows for a fourth argument, which must be an array: if provided, in the original array the spliced (removed, for original is affected) subsection is just replaced with it.</p>
<p>PHP</p>
<p>array_slice( custom_array1, custom_startIndex, custom_lengthOfItem );<br />
array_splice( custom_array1, custom_startIndex, custom_lengthOfItem );</p>
<p>JAVASCRIPT</p>
<p>custom_array1.slice(custom_startIndex, (custom_startIndex+custom_lengthOfItem))<br />
custom_array1.splice(custom_startIndex, custom_lengthOfItem)</p>
<p>==========================================</p>
<p>Sort an array</p>
<p>JAVASCRIPT</p>
<p>custom_array1.sort(custom_optionalFunction)</p>
<p>PHP</p>
<p>sort(custom_array1);<br />
You have a wide family of sorters in php as such:<br />
rsort ; Sort an array in reverse order<br />
ksort ; Sort an array by key<br />
krsort ; Sort an array by key in reverse order<br />
natsort ; Sort an array using a natural order algorithm (what in javascript we called custom_optionalFunction)<br />
natcasesort ; Sort an array using a case insensitive natural order algorithm (what in javascript we called custom_optionalFunction)<br />
usort(custom_array1, custom_optionalFunction) ; Sort an array with a user-defined custom_optionalFunction<br />
uksort(custom_array1, custom_optionalFunction) ; Sort an array by keys with a user-defined custom_optionalFunction<br />
uasort(custom_array1, custom_optionalFunction) ; Sort an array with a user-defined custom_optionalFunction</p>
<p>======================================</p>
<p>NUMBER MANAGEMENT<br />
Is it a custom_number?</p>
<p>JAVASCRIPT</p>
<p>isNaN(custom_number)<br />
returns true if it is not a custom_number. Yet also numerical strings (so called literal numbers, say: &#8220;12&#8243;) are reported as numbers.</p>
<p>Note that the typeof of a non custom_number returned by isNan is, confusing enough: &#8220;custom_number&#8221;</p>
<p>PHP</p>
<p>is_nan(custom_number);<br />
is_numeric(custom_number);<br />
returns true if it is not a custom_number. Yet also numerical strings (so called literal numbers, say: &#8220;12&#8243;) are reported as numbers.</p>
<p>is_integer(custom_number);<br />
returns false if custom_number has floating digits. Literal numbers (in between quotes) return false.<br />
is_double(custom_number);<br />
returns false if custom_number has no floating digits. Literal numbers (in between quotes) return false.</p>
<p>====================================</p>
<p>Convert strings into numbers</p>
<p>JAVASCRIPT</p>
<p>parseInt(custom_string1)<br />
parseFloat(custom_string1)</p>
<p>PHP</p>
<p>(integer)custom_string1;<br />
(double)custom_string1;<br />
The procedure above is called data type casting.</p>
<p>========================================</p>
<p>Round a custom_number, get its absolute custom_value</p>
<p>JAVASCRIPT</p>
<p>Math.floor(custom_number); Math.ceil(custom_number); Math.round(custom_number);</p>
<p>Mat.abs(custom_number);</p>
<p>PHP</p>
<p>ceil( custom_number ); floor( custom_number ); round( custom_number );</p>
<p>abs( custom_number );</p>
<p>===================================</p>
<p>Max and custom_min or random numbers</p>
<p>JAVASCRIPT</p>
<p>Math.max(custom_number1, custom_number2)<br />
Math.min(custom_number1, custom_number2)</p>
<p>(Math.random()*(custom_max-custom_min))+custom_min<br />
custom_min and custom_max are optional. If omitted, this function just generates a fractional custom_number included between 0 and 1. To produce only non fractional numbers you may use:<br />
Math.round(<br />
(Math.random()*(custom_max-custom_min))+custom_min<br />
)</p>
<p>PHP</p>
<p>max(custom_number1, custom_number2);<br />
min(custom_number1, custom_number2);</p>
<p>mt_rand(custom_min, custom_max);<br />
custom_min and custom_max are optional. If omitted, this function just generates a custom_number up to ten digits long.<br />
Prior to Php 4.2.0 you have also to feed the seed by calling first:<br />
mt_srand((double)microtime()*1000000)<br />
just like that!</p>
<p>===========================================</p>
<p>Pow and squares</p>
<p>JAVASCRIPT</p>
<p>Math.pow(custom_number, custom_power)<br />
Math.sqrt(custom_number)</p>
<p>Math.pow(custom_number, 1/custom_root)<br />
Above is the x custom_root of a custom_number, for Math.sqrt provides only square roots.</p>
<p>PHP</p>
<p>pow(custom_number, custom_power);<br />
sqrt(custom_number);</p>
<p>pow(custom_number, 1/custom_root);<br />
Above is the x custom_root of a custom_number, for sqrt provides only square roots.</p>
<p>================================</p>
<p>Trigonometric functions</p>
<p>JAVASCRIPT</p>
<p>Math.sin(); Math.cos(); Math.tan();</p>
<p>Math.asin(); Math.acos(); Math.atan();</p>
<p>PHP</p>
<p>sin(); cos(); tan();</p>
<p>asin(); acos(); atan();</p>
<p>==================================</p>
<p>Constants and logarhitms</p>
<p>JAVASCRIPT</p>
<p>Math.PI; Math.log(custom_value)</p>
<p>PHP</p>
<p>pi();<br />
log(custom_value);</p>
<p>====================================</p>
<p>FUNCTION MANAGEMENT</p>
<p>Return length of string</p>
<p>JAVASCRIPT</p>
<p>typeof(custom_functionName)==&#8221;function&#8221;; //is it a function?</p>
<p>This must be called inside the function custom_functionName:<br />
custom_functionName.arguments.length;</p>
<p>custom_functionName.arguments; //array of args</p>
<p>custom_functionName.arguments[custom_number];</p>
<p>PHP</p>
<p>function_exists(&#8220;custom_functionName&#8221;); //is it a function?</p>
<p>This must be called inside the function custom_functionName:<br />
func_num_args();</p>
<p>func_get_args(); //array of args</p>
<p>func_get_arg(Number)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mphsky.com/kanesblog/?feed=rss2&amp;p=77</wfw:commentRss>
		<slash:comments>85</slash:comments>
		</item>
		<item>
		<title>优秀的flash gallery</title>
		<link>http://www.mphsky.com/kanesblog/?p=63</link>
		<comments>http://www.mphsky.com/kanesblog/?p=63#comments</comments>
		<pubDate>Tue, 30 Jun 2009 09:24:25 +0000</pubDate>
		<dc:creator>kane</dc:creator>
				<category><![CDATA[Flash 应用]]></category>
		<category><![CDATA[综合]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[useful]]></category>
		<category><![CDATA[例子]]></category>
		<category><![CDATA[源码]]></category>
		<category><![CDATA[相册]]></category>

		<guid isPermaLink="false">http://www.mphsky.com/kanesblog/?p=63</guid>
		<description><![CDATA[一个漂亮的flash相册,直接上图]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-62" title="gallery" src="http://www.mphsky.com/kanesblog/wp-content/uploads/2009/06/gallery.jpg" alt="gallery" width="643" height="407" /></p>
<p>从Elite_XML_Website源码中提取出来的相册程序</p>
<p>在flash cs4下编译通过;</p>
<p>下载地址:</p>
<p>http://cid-6703d90bca353268.skydrive.live.com/self.aspx/.Public/flashgallery.zip</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mphsky.com/kanesblog/?feed=rss2&amp;p=63</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>美国歌星迈克尔-杰克逊逝世</title>
		<link>http://www.mphsky.com/kanesblog/?p=58</link>
		<comments>http://www.mphsky.com/kanesblog/?p=58#comments</comments>
		<pubDate>Fri, 26 Jun 2009 01:37:37 +0000</pubDate>
		<dc:creator>kane</dc:creator>
				<category><![CDATA[综合]]></category>

		<guid isPermaLink="false">http://www.mphsky.com/kanesblog/?p=58</guid>
		<description><![CDATA[
  
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-59" title="micheal" src="http://www.mphsky.com/kanesblog/wp-content/uploads/2009/06/micheal.jpg" alt="micheal" width="480" height="366" /></p>
<p> <img src='http://www.mphsky.com/kanesblog/wp-includes/images/smilies/icon_cry.gif' alt=':cry:' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mphsky.com/kanesblog/?feed=rss2&amp;p=58</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IETester 多IE版本共存解决方案</title>
		<link>http://www.mphsky.com/kanesblog/?p=55</link>
		<comments>http://www.mphsky.com/kanesblog/?p=55#comments</comments>
		<pubDate>Thu, 25 Jun 2009 01:51:49 +0000</pubDate>
		<dc:creator>kane</dc:creator>
				<category><![CDATA[综合]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[开发调试工具]]></category>

		<guid isPermaLink="false">http://www.mphsky.com/kanesblog/?p=55</guid>
		<description><![CDATA[目前IE浏览器的版本已经有很多了，要在windows平台下不同版本IE浏览器里调试很麻烦；
现在有一个方便的调试工具,那就是IETester;
下载地址:
http://www.my-debugbar.com/wiki/IETester/HomePage
]]></description>
			<content:encoded><![CDATA[<p>目前IE浏览器的版本已经有很多了，要在windows平台下不同版本IE浏览器里调试很麻烦；</p>
<p>现在有一个方便的调试工具,那就是IETester;</p>
<p>下载地址:</p>
<p>http://www.my-debugbar.com/wiki/IETester/HomePage</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mphsky.com/kanesblog/?feed=rss2&amp;p=55</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>解决IE6不支持png图片透明的javascript函数</title>
		<link>http://www.mphsky.com/kanesblog/?p=38</link>
		<comments>http://www.mphsky.com/kanesblog/?p=38#comments</comments>
		<pubDate>Wed, 24 Jun 2009 09:04:00 +0000</pubDate>
		<dc:creator>kane</dc:creator>
				<category><![CDATA[综合]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[useful]]></category>
		<category><![CDATA[源码]]></category>

		<guid isPermaLink="false">http://www.mphsky.com/kanesblog/?p=38</guid>
		<description><![CDATA[希望有用]]></description>
			<content:encoded><![CDATA[<p>源码:</p>
<p>&lt;script language=&#8221;javascript&#8221;&gt;</p>
<p>function correctPNG()<br />
{<br />
try{<br />
for(var i=0;i&lt;document.images.length;i++)<br />
{<br />
var img=document.images[i];<br />
var imgName=img.src.toUpperCase();<br />
if(imgName.substring(imgName.length-3,imgName.length)==&#8221;PNG&#8221;)<br />
{<br />
var imgID=(img.id)?&#8221;id=&#8217;&#8221;+img.id+&#8221;&#8216; &#8220;:&#8221;";<br />
var imgClass=(img.className)?&#8221;class=&#8217;&#8221;+img.className+&#8221;&#8216; &#8221; : &#8220;&#8221;;<br />
var imgTitle=(img.title)?&#8221;title=&#8217;&#8221;+img.title+&#8221;&#8216; &#8221; : &#8220;title=&#8217;&#8221;+img.alt+&#8221;&#8216; &#8220;;<br />
var imgStyle=&#8221;display:inline-block;&#8221; + img.style.cssText;<br />
if (img.align==&#8221;left&#8221;)imgStyle=&#8221;float:left;&#8221;+imgStyle;<br />
if (img.align==&#8221;right&#8221;)imgStyle=&#8221;float:right;&#8221;+imgStyle;<br />
if (img.parentElement.href)imgStyle=&#8221;cursor:hand;&#8221;+imgStyle;<br />
var strNewHTML=&#8221;&lt;span &#8220;+imgID+imgClass+imgTitle<br />
+&#8221; style=\&#8221;"+&#8221;width:&#8221;+img.width+&#8221;px; height:&#8221;+img.height+&#8221;px;&#8221;+imgStyle+&#8221;;&#8221;<br />
+&#8221;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader&#8221;<br />
+&#8221;(src=\&#8217;&#8221;+img.src+&#8221;\&#8217;, sizingMethod=&#8217;scale&#8217;);\&#8221;&gt;&lt;/span&gt;&#8221;;<br />
img.outerHTML=strNewHTML;<br />
i=i-1;<br />
}<br />
}<br />
}catch(e){}<br />
}</p>
<p>&lt;/script&gt;</p>
<p>调用:</p>
<p>&lt;script language=&#8221;javascript&#8221;&gt;</p>
<p>correctPNG();</p>
<p>&lt;/script&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mphsky.com/kanesblog/?feed=rss2&amp;p=38</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个简单易扩展的flash-mp3播放器</title>
		<link>http://www.mphsky.com/kanesblog/?p=30</link>
		<comments>http://www.mphsky.com/kanesblog/?p=30#comments</comments>
		<pubDate>Wed, 24 Jun 2009 01:46:42 +0000</pubDate>
		<dc:creator>kane</dc:creator>
				<category><![CDATA[Flash 应用]]></category>
		<category><![CDATA[综合]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[playlist]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[中文]]></category>
		<category><![CDATA[例子]]></category>
		<category><![CDATA[源码]]></category>

		<guid isPermaLink="false">http://www.mphsky.com/kanesblog/?p=30</guid>
		<description><![CDATA[直接上图，方便大家]]></description>
			<content:encoded><![CDATA[<p>完整状态下:</p>
<p><img class="alignnone size-full wp-image-28" title="11" src="http://www.mphsky.com/kanesblog/wp-content/uploads/2009/06/11.jpg" alt="11" width="349" height="295" /></p>
<p>缩略模式下:</p>
<p><img class="alignnone size-full wp-image-29" title="2" src="http://www.mphsky.com/kanesblog/wp-content/uploads/2009/06/2.jpg" alt="2" width="346" height="100" /></p>
<p>支持播放列表，支持中文，界面简洁，基于fsmp3playerv15源码修改,在Adobe Flash CS4 下编译通过;</p>
<p>下载地址:</p>
<p>http://cid-6703d90bca353268.skydrive.live.com/self.aspx/.Public/fsmp3playerv15^_kane.zip</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mphsky.com/kanesblog/?feed=rss2&amp;p=30</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>可以运行在ie浏览器的音乐播放器</title>
		<link>http://www.mphsky.com/kanesblog/?p=24</link>
		<comments>http://www.mphsky.com/kanesblog/?p=24#comments</comments>
		<pubDate>Tue, 23 Jun 2009 02:38:52 +0000</pubDate>
		<dc:creator>kane</dc:creator>
				<category><![CDATA[综合]]></category>
		<category><![CDATA[css web]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[media palyer]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[例子]]></category>
		<category><![CDATA[源码]]></category>

		<guid isPermaLink="false">http://www.mphsky.com/kanesblog/?p=24</guid>
		<description><![CDATA[直接上图,ie浏览器,音乐播放器]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-23" title="window media player on web" src="http://www.mphsky.com/kanesblog/wp-content/uploads/2009/06/1.jpg" alt="window media player on web" width="451" height="314" /></p>
<p>用javascript,css打造,支持播放列表,window IE浏览器支持;</p>
<p>下载地址:</p>
<p>http://cid-6703d90bca353268.skydrive.live.com/self.aspx/.Public/player^_2.zip</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mphsky.com/kanesblog/?feed=rss2&amp;p=24</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个比较有用的php函数:mCutStr</title>
		<link>http://www.mphsky.com/kanesblog/?p=20</link>
		<comments>http://www.mphsky.com/kanesblog/?p=20#comments</comments>
		<pubDate>Tue, 23 Jun 2009 02:28:11 +0000</pubDate>
		<dc:creator>kane</dc:creator>
				<category><![CDATA[综合]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[useful]]></category>
		<category><![CDATA[例子]]></category>
		<category><![CDATA[源码]]></category>

		<guid isPermaLink="false">http://www.mphsky.com/kanesblog/?p=20</guid>
		<description><![CDATA[function mCutStr($text, $Len){
$chinese = 0;
if(strLen($text) &#60; $Len){
return $text;
}else{
for($i = 0; $i &#60; $Len; $i++){
if(Ord($text[$i]) &#62;= 160){
$chinese++;
}
}
return SubStr($text,0,($chinese%2!=0)?++$Len:$Len).&#8221;&#8230;&#8221;;
}
}
]]></description>
			<content:encoded><![CDATA[<p>function mCutStr($text, $Len){<br />
$chinese = 0;<br />
if(strLen($text) &lt; $Len){<br />
return $text;<br />
}else{<br />
for($i = 0; $i &lt; $Len; $i++){<br />
if(Ord($text[$i]) &gt;= 160){<br />
$chinese++;<br />
}<br />
}<br />
return SubStr($text,0,($chinese%2!=0)?++$Len:$Len).&#8221;&#8230;&#8221;;<br />
}<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mphsky.com/kanesblog/?feed=rss2&amp;p=20</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
