<?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>tommy &#187; php</title>
	<atom:link href="http://www.tomlog.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tomlog.com</link>
	<description>everyday is a new life!</description>
	<lastBuildDate>Sat, 19 Feb 2011 12:00:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>低调推出goo.gl短网址服务</title>
		<link>http://www.tomlog.com/2010/04/googl/</link>
		<comments>http://www.tomlog.com/2010/04/googl/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 03:51:44 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[computer]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[regex]]></category>

		<guid isPermaLink="false">http://www.tomlog.com/?p=764</guid>
		<description><![CDATA[Address:]]></description>
			<content:encoded><![CDATA[<table cellspacing="5">
<tr>
<td>Address: </td>
<td width="236">
<input type="text" id="address" name="address" size="35"/></td>
<td>
<input type="button" id="submit" name="submit" value="Submit" /></td>
</tr>
<tr id="result">
</tr>
</table>
<p><script type="text/javascript" src="/wp-content/uploads/jquery.js"></script><br />
<script type="text/javascript" src="/wp-content/uploads/googl.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomlog.com/2010/04/googl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>最简PHP框架</title>
		<link>http://www.tomlog.com/2010/03/simple-mvc/</link>
		<comments>http://www.tomlog.com/2010/03/simple-mvc/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 06:58:24 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[computer]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.tomlog.com/?p=754</guid>
		<description><![CDATA[好久没更新了，一是自已越来越懒，二是，这段时间总是心烦意乱，很难静下心来。 不说了，看下面这个简单的php框架。虽然只有短短的137个字符（完全可以做为一条tweet），但却可以大致模似出CodeIgniter的用法。 1 2 3 4 5 6 &#60;?php $g=$GET;$c=@$g&#91;'c'&#93;?:'home'; if&#40;!@require &#34;c/$c.php&#34;&#41; die&#40;'error'&#41;; $m=method_exists&#40;$c,@$g&#91;'m'&#93;&#41;?$g&#91;'m'&#93;:'index'; $o=new $c; $o-&#62;$m&#40;$g&#41;; ?&#62; 将以上代码保存为index.php，然后在index.php所在目录下新建C文件夹，把以下代码保存在C目录中，文件名为home.php。 1 2 3 4 5 6 7 8 9 10 11 12 13 &#60;?php class home &#123; function index&#40;&#41; &#123; echo &#34;hello, world! fucking gfw!&#34; &#125; &#160; function user&#40;$para&#41; &#123; echo 'hello, '.htmlspecialchars&#40;$para&#91;'name'&#93;&#41;; &#125; &#125; ?&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>好久没更新了，一是自已越来越懒，二是，这段时间总是心烦意乱，很难静下心来。<br />
不说了，看下面这个简单的php框架。虽然只有短短的137个字符（完全可以做为一条tweet），但却可以大致模似出CodeIgniter的用法。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$g</span><span style="color: #339933;">=</span><span style="color: #000088;">$GET</span><span style="color: #339933;">;</span><span style="color: #000088;">$c</span><span style="color: #339933;">=@</span><span style="color: #000088;">$g</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'c'</span><span style="color: #009900;">&#93;</span>?<span style="color: #339933;">:</span><span style="color: #0000ff;">'home'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!@</span><span style="color: #b1b100;">require</span> <span style="color: #0000ff;">&quot;c/<span style="color: #006699; font-weight: bold;">$c</span>.php&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$m</span><span style="color: #339933;">=</span><span style="color: #990000;">method_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$c</span><span style="color: #339933;">,@</span><span style="color: #000088;">$g</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'m'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>?<span style="color: #000088;">$g</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'m'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span><span style="color: #0000ff;">'index'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$o</span><span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000088;">$c</span><span style="color: #339933;">;</span> <span style="color: #000088;">$o</span><span style="color: #339933;">-&gt;</span><span style="color: #000088;">$m</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$g</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>将以上代码保存为index.php，然后在index.php所在目录下新建C文件夹，把以下代码保存在C目录中，文件名为home.php。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">class</span> home <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">function</span> index<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;hello, world! fucking gfw!&quot;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">function</span> user<span style="color: #009900;">&#40;</span><span style="color: #000088;">$para</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'hello, '</span><span style="color: #339933;">.</span><span style="color: #990000;">htmlspecialchars</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$para</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>这样，当访问index.php时，将会执行默认控制器home的默认方法index。<br />
访问index.php?m=user&#038;name=sallon时将会执行home->user($para)方法。<br />
新建控制器时，只需在index.php后指定c=&#8217;控制器名&#8217;就可以了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomlog.com/2010/03/simple-mvc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>正则表达式实现视频解析</title>
		<link>http://www.tomlog.com/2009/11/parse-video-using-regex/</link>
		<comments>http://www.tomlog.com/2009/11/parse-video-using-regex/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 03:59:57 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[computer]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[regex]]></category>

		<guid isPermaLink="false">http://www.tomlog.com/?p=692</guid>
		<description><![CDATA[前天帮同学下载一部电视剧，但找到的bt种子速度太慢，只好放弃，于是决定下载56网的视频，只所以选择56网，是因为它的视频没有被分割，而且我可以牛刀小试一下正则表达式，利用它来批量解析下载地址。之后使用迅雷下载，甚爽。 下面这个是使用perl写的（文件名parse），适用于批量解析。可将所有需要下载视频的flash地址（例：http://www.56.com/n_v48_/c23_/8_/19_/hellowjjb_/zhajm_120817547185x_/2725000_/0_/32802621.swf）写入一个文件(1.txt)，然后运行perl -w parse 1.txt > 2.txt 即可瞬间得到下载地址。 while ($line=&#60;&#62;) { if($line=~m/^http:\/\/www.56.com[^c]*?c(\d\d?)_\/(\d\d?)_\/(\d\d?)_\/([^\/]+?)_\/([^\/]*?)_\/.*swf\b/) { print &#8220;http://c$1.56.com/flvdownload/$2/$3/$4\@56.com_56flv_$5.flv\n&#8221;; } } 这个是php版的代码： &#60;html&#62; &#60;head&#62; &#60;title&#62;56网视频解析&#60;/title&#62; &#60;/head&#62; &#60;body&#62; &#60;h3 style=&#8221;text-align:center&#8221;&#62;视频解析&#60;/h3&#62; &#60;br /&#62; &#60;form method=&#8221;post&#8221; action=&#8221;#&#8221;&#62; &#60;center&#62;&#60;input type=&#8221;text&#8221; size=&#8221;60&#8243; name=&#8221;url&#8221; /&#62; &#60;input type=&#8221;submit&#8221; name=&#8221;submit&#8221; value=&#8221;Submit&#8221; /&#62;&#60;/center&#62;&#60;br /&#62; &#60;/form&#62; &#60;?php if(isset($_POST['url'])&#038;&#038;isset($_POST['submit'])) { $url=$_POST['url']; $pattern=&#8217;/^http:\/\/www.56.com[^c]*?c(\d\d?)_\/(\d\d?)_\/(\d\d?)_\/([^\/]+?)_\/([^\/]*?)_\/.*swf\b/&#8217;; if(preg_match($pattern,$url,$matches)) { $download=&#8221;http://c$matches[1].56.com/flvdownload/$matches[2]/$matches[3]/$matches[4]@56.com_56flv_$matches[5].flv&#8221;; } else { $download=&#8221;sorry,can not [...]]]></description>
			<content:encoded><![CDATA[<p>前天帮同学下载一部电视剧，但找到的bt种子速度太慢，只好放弃，于是决定下载56网的视频，只所以选择56网，是因为它的视频没有被分割，而且我可以牛刀小试一下正则表达式，利用它来批量解析下载地址。之后使用迅雷下载，甚爽。</p>
<p>下面这个是使用perl写的（文件名parse），适用于批量解析。可将所有需要下载视频的flash地址（例：http://www.56.com/n_v48_/c23_/8_/19_/hellowjjb_/<br />zhajm_120817547185x_/2725000_/0_/32802621.swf）写入一个文件(1.txt)，然后运行perl -w parse 1.txt > 2.txt 即可瞬间得到下载地址。</p>
<blockquote><p>while ($line=&lt;&gt;)<br />
{<br />
	if($line=~m/^http:\/\/www.56.com[^c]*?c(\d\d?)_\/(\d\d?)_\/(\d\d?)_\/([^\/]+?)_\/([^\/]*?)_\/.*swf\b/)<br />
		{<br />
  			print &#8220;http://c$1.56.com/flvdownload/$2/$3/$4\@56.com_56flv_$5.flv\n&#8221;;<br />
  		}<br />
}</p></blockquote>
<p>这个是php版的代码：</p>
<blockquote><p>
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;56网视频解析&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;h3 style=&#8221;text-align:center&#8221;&gt;视频解析&lt;/h3&gt;<br />
&lt;br /&gt;<br />
&lt;form method=&#8221;post&#8221; action=&#8221;#&#8221;&gt;<br />
	&lt;center&gt;&lt;input type=&#8221;text&#8221; size=&#8221;60&#8243; name=&#8221;url&#8221; /&gt;<br />
	&lt;input type=&#8221;submit&#8221; name=&#8221;submit&#8221; value=&#8221;Submit&#8221; /&gt;&lt;/center&gt;&lt;br /&gt;<br />
&lt;/form&gt;</p>
<p>&lt;?php<br />
if(isset($_POST['url'])&#038;&#038;isset($_POST['submit']))<br />
{<br />
	$url=$_POST['url'];<br />
	$pattern=&#8217;/^http:\/\/www.56.com[^c]*?c(\d\d?)_\/(\d\d?)_\/(\d\d?)_\/([^\/]+?)_\/([^\/]*?)_\/.*swf\b/&#8217;;<br />
	if(preg_match($pattern,$url,$matches))<br />
		{<br />
			$download=&#8221;http://c$matches[1].56.com/flvdownload/$matches[2]/$matches[3]/$matches[4]@56.com_56flv_$matches[5].flv&#8221;;<br />
		}<br />
	else<br />
		{<br />
			$download=&#8221;sorry,can not parse download address!&#8221;;<br />
		}<br />
	echo &#8220;下载地址是：&lt;br /&gt;$download&#8221;;<br />
}<br />
?&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;
</p></blockquote>
<p>效果请看 <a href="http://www.tomlog.com/parse.php" target="_blanck">这里</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomlog.com/2009/11/parse-video-using-regex/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>php学习</title>
		<link>http://www.tomlog.com/2009/10/study-php/</link>
		<comments>http://www.tomlog.com/2009/10/study-php/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 03:24:08 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[computer]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.tomlog.com/?p=542</guid>
		<description><![CDATA[php快看完了，这个语言给我的最大感觉就是简单，灵活，用起来随心所欲，很有keep it simple, stupid的特色，语法什么的跟c比较接近。所以很容易上手。刚刚写完了一个简单的小型cms系统，基本功能都有了，就是界面奇丑无比，布局很混乱。唉，没半点艺术细胞.. 看来得好好研究一下css了。 有时脑袋发晕了，什么错误都会犯，比如下面这个admin页面。一运行，就会出错Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource&#8230;看了半天不知道哪儿有问题。上网搜索也没有答案。后来我把查询语句移到函数外面则正常执行。折腾了大半天，才突然意识到虽然在开头把&#8217;conn.php&#8217;包含进来了，函数内部却没有声明。 global $a_users;下面加一名global $conn;就没问题了。 &#60;?php require_once 'conn.php'; require_once 'header.php'; $a_users=array(1=&#62;"Users","Moderators","Admins"); function echoUserList($lvl) { global $a_users; $sql="SELECT user_id,name,email FROM cms_users ". "WHERE access_lvl=$lvl ORDER BY name"; $result=mysql_query($sql,$conn) or die(mysql_error()); if(mysql_num_rows($result)==0) { echo "&#60;em&#62;NO ".$a_user[$lvl]." created.&#60;/em&#62;"; } else { while($row=mysql_fetch_array($result)) { if($row['user_id']==$_SESSION['user_id']) echo [...]]]></description>
			<content:encoded><![CDATA[<p>php快看完了，这个语言给我的最大感觉就是简单，灵活，用起来随心所欲，很有keep it simple, stupid的特色，语法什么的跟c比较接近。所以很容易上手。刚刚写完了一个简单的小型cms系统，基本功能都有了，就是界面奇丑无比，布局很混乱。唉，没半点艺术细胞.. 看来得好好研究一下css了。</p>
<p>有时脑袋发晕了，什么错误都会犯，比如下面这个admin页面。一运行，就会出错Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource&#8230;看了半天不知道哪儿有问题。上网搜索也没有答案。后来我把查询语句移到函数外面则正常执行。折腾了大半天，才突然意识到虽然在开头把&#8217;conn.php&#8217;包含进来了，函数内部却没有声明。 global $a_users;下面加一名global $conn;就没问题了。
<p>
<span id="more-542"></span></p>
<pre>&lt;?php
require_once 'conn.php';
require_once 'header.php';

$a_users=array(1=&gt;"Users","Moderators","Admins");
function echoUserList($lvl)
{
	global $a_users;

	$sql="SELECT user_id,name,email FROM cms_users ".
		"WHERE access_lvl=$lvl ORDER BY name";
	$result=mysql_query($sql,$conn) or die(mysql_error());

	if(mysql_num_rows($result)==0)
	{
		echo "&lt;em&gt;NO ".$a_user[$lvl]." created.&lt;/em&gt;";
	}
	else
	{
		while($row=mysql_fetch_array($result))
		{
			if($row['user_id']==$_SESSION['user_id'])
				echo htmlspecialchars($row['name'])."&lt;br&gt;\n";
			else
			{
				echo '&lt;a href="useraccount.php?userid='.$row['user_id'].
					'" title="'.htmlspecialchars($row['email']).'"&gt;'.
					htmlspecialchars($row['name'])."&lt;/a&gt;&lt;br&gt;\n";
			}
		}
	}
}
?&gt;
&lt;h2&gt;User Administration&lt;/h2&gt;
&lt;?php
for($i=1;$i&lt;=3;$i++)
{
	echo "&lt;h3&gt;".$a_users[$i]."&lt;/h3&gt;\n".
		"&lt;div class='scroller'&gt;\n";
	echoUserList($i);
	echo "\n&lt;/div&gt;\n";
}
?&gt;
&lt;br&gt;
&lt;?php require_once 'footer.php';?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tomlog.com/2009/10/study-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

