PHP如果URL问题

时间:2012-05-21 17:48:01

标签: php

好的我有if php命令的问题。

{php}
$searchloadpage = "/search/Car/";
$listingloadpage = "/listing/%";
$currentpage = $_SERVER['REQUEST_URI'];
if($searchloadpage==$currentpage) { 
include('searchload.php');
}
if($listingloadpage==$currentpage) { 
include('searchload.php');
} else {

}
{/php}

现在的问题是你如何使用$ listingloadpage =“/ listing / HERE”来完成这个问题,我需要在这里制作它以便列出它之后的所有内容都可以。

示例:/listing/1222.html或/ listing /之后的任何内容都会加载我的searchload.php文件。我认为它被称为通配符代码,其中php会认为/ listing /以及此列表目录之后的任何内容。

希望很清楚。 :(

2 个答案:

答案 0 :(得分:1)

您可以使用stristr

$listingloadpage = "/listing/";
if (stristr($currentpage, $listingloadpage) !== false) {
  ...

如果/listing/出现在网址的任何位置,那么这将有效。如果您在开始时需要它:

if (stristr($currentpage, $listingloadpage) === 0) {

请注意,我已从字符串中删除了%字符。

答案 1 :(得分:0)

您可以使用正则表达式来验证/listing/123.html,列出/ abc.html,列出/ abc ......

<?php
    $searchloadpage = "/search/Car/";
    $listingloadpage = "/\/listing\/.+/";

    $currentpage = $_SERVER['REQUEST_URI'];

    if($searchloadpage == $currentpage) {
        include('searchload.php');

    } else if (preg_match($listingloadpage, $currentpage)) {
        include('searchload.php');

    // something else
    } else {

    }
?>

并且,例如,如果您只想要/listing/123.html而不是/ listing / somethingelse,那么您需要:

$listingloadpage = "/\/listing\/[0-9]+\.html/";