<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[php源码网-开源程序大全(Open Source)]]></title> 
<link>http://www.osphp.com.cn/index.php</link> 
<description><![CDATA[php教程,PHP开源社区,PHP开源论坛,PHP国外开源,PHP中国站,php+mysql,打造国内最新、最全的php开源代码网PHP开源程序大全]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[php源码网-开源程序大全(Open Source)]]></copyright>
<item>
<link>http://www.osphp.com.cn/read.php/327.htm</link>
<title><![CDATA[Url Rewriter URL重写]]></title> 
<author>shuguang &lt;admin@yourname.com&gt;</author>
<category><![CDATA[HTTP]]></category>
<pubDate>Tue, 20 Nov 2007 16:39:37 +0000</pubDate> 
<guid>http://www.osphp.com.cn/read.php/327.htm</guid> 
<description>
<![CDATA[ 
	<strong>程序名称：</strong>Url Rewriter <br/><strong>开发者/组织名称：</strong>Cesar D. Rodas<br/><strong>运行环境：</strong>php+mysql,php+文本 <br/><strong>官方网站：</strong>http://www.thyphp.com/<br/><strong>文章来源：http://www.OSphp.com.cn</strong><br/><strong>下载地址：</strong><a href="attachment.php?fid=113">点击这里下载文件</a><br/><strong>程序介绍：</strong><br/>This class can be used to redirect requests based on URL rewriting rules.<br/><br/>It can check whether the current request URL matches one or more rules.<br/><br/>If one of the defined rules is matched, the class determines the path of a PHP script that will handle the request and executes that script using the PHP require command.<br/><br/>If none of the rules matches, the class include the default error script and returns the 404 status code to the browser.<br/><br/><div class="code" style="overflow: auto;">{downsource}<code><span style="color: #000000">
<br />URL&nbsp;Rewriter<br />Cesar&nbsp;D.&nbsp;Rodas&nbsp;&lt;cesar@sixdegrees.com&gt;<br /><br />This&nbsp;class&nbsp;provides&nbsp;an&nbsp;easy&nbsp;mechanism&nbsp;to&nbsp;manage&nbsp;URL&nbsp;rewriting,&nbsp;avoiding&nbsp;to&nbsp;write&nbsp;and&nbsp;manage&nbsp;the&nbsp;&nbsp;".htaccess"&nbsp;file.<br />Another&nbsp;issue&nbsp;is&nbsp;that&nbsp;you&nbsp;can&nbsp;use&nbsp;a&nbsp;personalized&nbsp;regular&nbsp;expression&nbsp;for&nbsp;create&nbsp;friendlies&nbsp;URL.<br /><br />I.&nbsp;Basic&nbsp;Structure<br />&nbsp;&nbsp;&nbsp;<span style="color: #0000BB">&lt;?php<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">require&nbsp;</span><span style="color: #DD0000">"url_rewriter.php"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$url&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">url_rewriter</span><span style="color: #007700">(</span><span style="color: #DD0000">'example/'</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$url</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">e404&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"error.php"</span><span style="color: #007700">;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;regular&nbsp;expression&nbsp;rules&nbsp;goes&nbsp;here<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$url</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execute</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">?&gt;<br /></span><br />II.&nbsp;Regular&nbsp;Expressions<br />&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;regular&nbsp;expression&nbsp;are&nbsp;simple&nbsp;a&nbsp;set&nbsp;of&nbsp;constants,&nbsp;variable,&nbsp;and&nbsp;optionals&nbsp;parts.<br />&nbsp;&nbsp;&nbsp;&nbsp;Example:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$country=array('Argentina','Brasil','Paraguay');<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url-&gt;add_rule("index.php","/[country]/{index.html}",&nbsp;array('country'=&gt;&nbsp;$country)&nbsp;);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;the&nbsp;first&nbsp;rule&nbsp;give&nbsp;true,&nbsp;"index.php"&nbsp;will&nbsp;be&nbsp;executed.&nbsp;For&nbsp;that&nbsp;country&nbsp;must&nbsp;be&nbsp;"Argentina",&nbsp;"Brasil"&nbsp;or&nbsp;"Paraguay"&nbsp;(this&nbsp;is&nbsp;because&nbsp;we&nbsp;force&nbsp;with&nbsp;the&nbsp;third&nbsp;parameter.&nbsp;"Country"&nbsp;must&nbsp;be&nbsp;in&nbsp;$country),&nbsp;and&nbsp;must&nbsp;exist&nbsp;an&nbsp;"index.html"&nbsp;or&nbsp;nothing.<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;/Paraguay/index.html&nbsp;&nbsp;:&nbsp;Match<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;/Paraguay/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;Match<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;/Paraguay/foo.html&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;Mismatch<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;:numberX,&nbsp;where&nbsp;X&nbsp;is&nbsp;an&nbsp;identification,&nbsp;variable&nbsp;is&nbsp;an&nbsp;special&nbsp;variable&nbsp;that&nbsp;it&nbsp;must&nbsp;be&nbsp;numeric&nbsp;for&nbsp;match.<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Example:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$country=array('Argentina','Brasil','Paraguay');<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url-&gt;add_rule("foo.php","/[country]/[str]-[:number1]-site{-[:number2]}.[ext]",&nbsp;array('country'=&gt;&nbsp;$country,':number2'&nbsp;=&gt;&nbsp;2)&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;/Paraguay/some_string-123-site.html&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;Match<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;/Paraguay/some_other_string-123-site-456.html&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;Mismatch<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;/Paraguay/some_other_string-123-site-2.html&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;Match<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;/Paraguay/some_other_string-123-site-foo.html&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;Mismatch<br /><br />III.&nbsp;Real&nbsp;life&nbsp;example<br />&nbsp;&nbsp;&nbsp;&nbsp;Steps&nbsp;for&nbsp;&nbsp;translate&nbsp;a&nbsp;page&nbsp;which&nbsp;is&nbsp;"foo.php?id=45"&nbsp;to&nbsp;its&nbsp;URL&nbsp;friendly&nbsp;mode.<br />&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;Download&nbsp;http://cesars.users.phpclasses.org/url_rewriter<br />&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;Edit&nbsp;url_handler.php<br />&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;Add&nbsp;a&nbsp;new&nbsp;rule<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url-&gt;add_rule("foo.php","/entry-[:number1].html");<br />&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;Change&nbsp;all&nbsp;your&nbsp;links<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foo.php?id=45&nbsp;for&nbsp;/entry-45.html<br />&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Edit&nbsp;foo.php&nbsp;adding&nbsp;an&nbsp;extra&nbsp;header<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000BB">&lt;?php<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$id&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$urlVars</span><span style="color: #007700">[</span><span style="color: #DD0000">'number1'</span><span style="color: #007700">];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//check&nbsp;if&nbsp;$id&nbsp;exist<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">$id&nbsp;not&nbsp;exist</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">$urlHandler</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">error404</span><span style="color: #007700">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//handle&nbsp;request&nbsp;as&nbsp;you&nbsp;did&nbsp;before<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">?&gt;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span>
</code></div><br/>Tags - <a href="http://www.osphp.com.cn/go.php/tags/url/" rel="tag">url</a> , <a href="http://www.osphp.com.cn/go.php/tags/rewriter/" rel="tag">rewriter</a> , <a href="http://www.osphp.com.cn/go.php/tags/%25E9%2587%258D%25E5%2586%2599/" rel="tag">重写</a>
]]>
</description>
</item><item>
<link>http://www.osphp.com.cn/read.php?327&amp;guid=0#topreply</link>
<title><![CDATA[[评论] Url Rewriter URL重写]]></title> 
<author>calvin_shen &lt;shenke_198@yahoo.com.cn&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 14 Nov 2008 05:37:02 +0000</pubDate> 
<guid>http://www.osphp.com.cn/read.php?327&amp;guid=0#topreply</guid> 
<description>
<![CDATA[ 
	wo,learning!!!
]]>
</description>
</item>
</channel>
</rss>