如何将 php 变量传递给另一个 php 文件
How To Pass php Variable To another php file
我创建了一个自定义路由器。例如
$istek = $_SERVER['REQUEST_URI'];
switch ($istek) {
case '/' :
$title = "Anasayfa";
require base . 'views/index.php';
break;
所以我想用 $_GET 传递示例 id 变量。但是路由器阻止它并重定向到 404 页面。我怎样才能传递这个变量而不出现任何错误或重定向到 404?
原因是 $_SERVER['REQUEST_URI']
包含所有内容,而不仅仅是 /
,因此您的切换将失败。
要修复,请使用 parse_url,/
是 PHP_URL_PATH
,而 ?id=
将在 PHP_URL_QUERY
.
所以你可以使用类似这样的东西从 $_SERVER['REQUEST_URI']
:
得到你想要的东西
<?php
// example
$_SERVER['REQUEST_URI'] = '/controller/action?id=123';
$uri = $_SERVER['REQUEST_URI'];
$uri = parse_url($uri);
$route = explode('/', ltrim($uri['path'], '/'));
print_r($route);
parse_str($uri['query'], $query);
print_r($query);
结果:
Array
(
[0] => controller
[1] => action
)
Array
(
[id] => 123
)
我创建了一个自定义路由器。例如
$istek = $_SERVER['REQUEST_URI'];
switch ($istek) {
case '/' :
$title = "Anasayfa";
require base . 'views/index.php';
break;
所以我想用 $_GET 传递示例 id 变量。但是路由器阻止它并重定向到 404 页面。我怎样才能传递这个变量而不出现任何错误或重定向到 404?
原因是 $_SERVER['REQUEST_URI']
包含所有内容,而不仅仅是 /
,因此您的切换将失败。
要修复,请使用 parse_url,/
是 PHP_URL_PATH
,而 ?id=
将在 PHP_URL_QUERY
.
所以你可以使用类似这样的东西从 $_SERVER['REQUEST_URI']
:
<?php
// example
$_SERVER['REQUEST_URI'] = '/controller/action?id=123';
$uri = $_SERVER['REQUEST_URI'];
$uri = parse_url($uri);
$route = explode('/', ltrim($uri['path'], '/'));
print_r($route);
parse_str($uri['query'], $query);
print_r($query);
结果:
Array
(
[0] => controller
[1] => action
)
Array
(
[id] => 123
)