Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何获取从$\u get派生的URL的最后一部分_Php_Get - Fatal编程技术网

Php 如何获取从$\u get派生的URL的最后一部分

Php 如何获取从$\u get派生的URL的最后一部分,php,get,Php,Get,假设我有这个页面: example.com/state/california 我使用$\u GET从数据库中检索特定页面 但是,当我尝试此页面时: example.com/state/new%20york 我的页面似乎只检索“new”而不是“new york” htaccess: RewriteRule ^([^\.]+)$ $1.php [NC,L] RewriteRule ^state/([0-9a-zA-Z]+) location.php?state=$1 [NC,L] 代码: 这个%2

假设我有这个页面:
example.com/state/california

我使用
$\u GET
从数据库中检索特定页面

但是,当我尝试此页面时:
example.com/state/new%20york

我的页面似乎只检索“new”而不是“new york”

htaccess:

RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^state/([0-9a-zA-Z]+) location.php?state=$1 [NC,L]
代码:

这个
%20
正在“打破”链条。也就是说,您的htaccess没有看到后面的内容与前面的内容属于同一块。
我建议创建一个函数,用下划线或连字符替换空格

显示您的代码可能与路由器重复吗?还是简单的.htaccess重写?没有足够的信息帮助您…htaccess RewriteRule^([^\.]+)$$1.php[NC,L]RewriteRule^ state/([0-9a-zA-Z]+)location.php?state=$1[NC,L]
你能提供一个我可以用连字符替换空格的例子吗?如果我可以用它作为一个例子,那就太棒了。com/state/newyorks你需要在创建链接时这样做,将用户带到相关页面。因此,我将使用
$url=str_replace(“,“-”,$state)
此代码运行正常,但是example.com/state/new-york仍然返回“new”,似乎hypen也在打破链条,为什么会发生这种情况?尝试将
RewriteRule^state/([0-9a-zA-Z]+)
更改为
RewriteRule^state/(*)
<? 
$state = $_GET['state'];
$sql = "
    SELECT
        *
    FROM
        states
    WHERE
        state = '$state'
    ";

$records = mysqli_query($db_conx, $sql);

$sql = "
    SELECT
        *
    FROM
        states
    WHERE
        state='$state' LIMIT 1
    ";
$query = mysqli_query($db_conx, $sql);
$numrows = mysqli_num_rows($query);

if ($numrows < 1) {
    echo $state;
    exit();
} else {
    echo "Welcome to the state of ".$state;
}
?>