suchen
HeimBackend-EntwicklungPHP-TutorialPHP实现伪静态化页面的具体实现方式_PHP教程
PHP实现伪静态化页面的具体实现方式_PHP教程Jul 15, 2016 pm 01:28 PM
phpeinsspezifischexistieren实现Rechts方式方法statisch页面

大家也许对PHP实现伪静态化页面方法一:

在你的程序初始化时使用如下代码:

<ol class="dp-xml">
<li class="alt"><span><strong><font color="#006699"><span class="tag"></span><span class="tag-name">php</span></font></strong><span>   </span></span></li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">Php2Html_FileUrl</font></span><span> = $_SERVER["REQUEST_URI"];   </span>
</li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">Php2Html_UrlString</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">str_replace</font></span><span>("/", "", strrchr($Php2Html_FileUrl, "/"));   </span>
</li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">Php2Html_UrlQueryStrList</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">explode</font></span><span>("@", $Php2Html_UrlString);   </span>
</li>
<li class="alt"><span>foreach($Php2Html_UrlQueryStrList as $Php2Html_UrlQueryStr)   </span></li>
<li class=""><span>{   </span></li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">Php2Html_TmpArray</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">explode</font></span><span>("|", $Php2Html_UrlQueryStr);   </span>
</li>
<li class=""><span>$_GET[$Php2Html_TmpArray[0]] = $Php2Html_TmpArray[1];   </span></li>
<li class="alt"><span>}   </span></li>
<li class="">
<span>echo '假静态:$_GET变量</span><strong><font color="#006699"><span class="tag"><span class="tag-name">br</span></span></font></strong><span> </span><span class="tag"><strong><font color="#006699">/></font></strong></span><span>';   </span>
</li>
<li class="alt"><span>print_r($_GET);   </span></li>
<li class="">
<span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span>   </span>
</li>
</ol>

然后php中调用$_GET变量就像平常一样了。

连接使用方式:

****.php/param1|1234@param2|4321

和****.php?param1=1234¶m2=4321一样。

PHP实现伪静态化页面方法二:通过URL Rewrite实现链接静态化

我们知道搜索引擎对于静态页面是非常友好的,因此很多网站通过生成静态页面等手段方便爬虫抓取自己网站的内容。但是有时候一些应用并不适合全部静态化,比如数据变化非常大的论坛/贴吧系统,这时候我们可以通过URL重写来实现链接的伪静态化,即网站对外使用静态化的链接,而内部实际上仍然使用动态页面的 URL形式。比如像这样一个链接:http://www.ci123.com/abc.php?action=a&id=1,我们可以改写成http://www.ci123.com/abc/a/1.html的形式。这是搜索引擎优化最重要的内容之一,它还有一个额外的好处,可以使页面有一个永久链接,即便以后网站系统内部链接有变化,通过适当改变Rewrite规则就可以保证原先的外部URL一直有效。

下面介绍2种简单的Apache+PHP下实现URL重写的方法,第一种适合有服务器配置权限的用户,第二种适合租用空间的用户,也作为我近期的学习心得的整理。

1、对于有服务器配置权限的用户,推荐使用Apache的mod_rewrite模块,这里假设已经安装好mod_rewrite模块。打开Apache的配置文件,找到相应主机的部分,添加以下代码:

<ol class="dp-xml">
<li class="alt"><span><span>RewriteEngine On   </span></span></li>
<li class="">
<span>RewriteRule ^/abc/([a-z]+)/([0-9]+).html$ /abc.php?</span><span class="attribute"><font color="#ff0000">action</font></span><span>=$1&</span><span class="attribute"><font color="#ff0000">id</font></span><span>=$2 </span>
</li>
</ol>

然后在shell里执行service httpd reload,让Apache重新载入配置就好了。现在在PHP页面里面我们可以把链接写成 abc/a/1.html的形式,Apache在解析这个 URL的时候会rewrite成abc.php?action=a&id=1的形式,并返回正确的页面。运用正则表达式我们可以实现几乎任何我们想要的链接形式,mod_rewrite模块的功能异常强大,这里只是一个及其简单的应用。

2、对于租用空间的用户,一般都没有办法修改Apache的配置,这里有个变通的方法,原理是这样的:当要传递参数访问PHP 页面时,正常情况下是通过自动全局变量$_GET来获得,比如上面的链接,在页面里可以通过$_GET['action'] 和 $_GET['id'] 来获得,重写URL后就不行了。现在在每个页面里require一个url_rewrite.php文件,里面代码如下:

<ol class="dp-xml">
<li class="alt"><span><span>$</span><span class="attribute"><font color="#ff0000">filename</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">basename</font></span><span>($_SERVER['SCRIPT_NAME']);   </span></span></li>
<li class=""><span> </span></li>
<li class="alt"><span>if (strtolower($filename) == "abc.php"){   </span></li>
<li class=""><span>if (!empty($_GET[id])){   </span></li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">id</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">intval</font></span><span>($_GET[id]);   </span>
</li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">action</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">intval</font></span><span>($_GET[action]);   </span>
</li>
<li class="alt"><span>}   </span></li>
<li class=""><span>else {   </span></li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">nav</font></span><span> = $_SERVER["REQUEST_URI"];   </span>
</li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">script</font></span><span> = $_SERVER["SCRIPT_NAME"];   </span>
</li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">nav</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">ereg_replace</font></span><span>("^$script", "", urldecode($nav));   </span>
</li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">vars</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">explode</font></span><span>("/", $nav);   </span>
</li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">action</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">intval</font></span><span>($vars[1]);   </span>
</li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">id</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">intval</font></span><span>($vars[2]);   </span>
</li>
<li class="alt"><span> }   </span></li>
<li class=""><span>}   </span></li>
</ol>
这样$action和$id也得到了,页面里链接可以写成abc.php/a/1的形式来访问相应页面。

需要注意的是这种PHP实现伪静态化页面方法效率较第一种低,第一种方法是在WEB服务器URL解析过程中实现的,而这里是在PHP页面解析过程里实现的,第2种方法只是变通,不得已而为之,要修改链接形式很不方便也不灵活。


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446426.htmlTechArticle大家也许对 PHP实现伪静态化页面方法一: 在你的程序初始化时使用如下代码: ? php $ Php2Html_FileUrl =$_SERVER["REQUEST_URI"]; $ Php2Html_UrlString = s...
Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace("&nbsp;","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor