PHP explode()不工作

PHP explode()不工作,php,arrays,explode,Php,Arrays,Explode,我是php的初学者,在使用explode()函数时遇到了一些问题 if (isset($_GET["url"])) { $url = $_GET["url"]; $url = explode("/", $url); echo $url; $controller = $url[0]; $action = $url[1]; } else { $controller = "pages";

我是php的初学者,在使用explode()函数时遇到了一些问题

if (isset($_GET["url"])) {
        $url = $_GET["url"];
        $url = explode("/", $url);
        echo $url;
        $controller = $url[0];
        $action     = $url[1];
    } else {
        $controller = "pages";
        $action     = "home";
    }
我正在键入url“localhost/pages/home”,而echo只是打印“Array”,就好像它是空的一样。如果我在使用explode函数之前回显$url,它将显示为“pages/home”。提前感谢。

形成一个数组,由拆分的组件组成。当您给它字符串
localhost/pages/home
时,它形成三个组件:
localhost
pages
home

使用输出内容将输出数组本身,只需显示
数组
。如果要输出数组的内容,则需要使用或

<?php

$url = 'localhost/pages/home';
$url = explode("/", $url);
var_dump($url);
这也可以看出

如果您想获取一行,您需要使用
echo$url[index]
通过索引访问它。例如,
echo$url[2]
将为您提供
home
表单一个数组,由拆分的组件组成。当您给它字符串
localhost/pages/home
时,它形成三个组件:
localhost
pages
home

使用输出内容将输出数组本身,只需显示
数组
。如果要输出数组的内容,则需要使用或

<?php

$url = 'localhost/pages/home';
$url = explode("/", $url);
var_dump($url);
这也可以看出

如果您想获取一行,您需要使用
echo$url[index]
通过索引访问它。例如,
echo$url[2]
将为您提供
home
explode()
返回您分隔为数组()的字符串,因此PHP的
echo
不支持数组的输出。必须使用
print\u r()
var\u dump()
函数来执行此操作

if (isset($_GET["url"])) {
    $url = $_GET["url"];
    $url = explode("/", $url);
    print_r($url);
    $controller = $url[0];
    $action     = $url[1];
} else {
    $controller = "pages";
    $action     = "home";
}
explode()
返回分隔为数组()的字符串,因此PHP的
echo
不支持数组的输出。必须使用
print\u r()
var\u dump()
函数来执行此操作

if (isset($_GET["url"])) {
    $url = $_GET["url"];
    $url = explode("/", $url);
    print_r($url);
    $controller = $url[0];
    $action     = $url[1];
} else {
    $controller = "pages";
    $action     = "home";
}

问题可能与您的输入有关。$GET['url']不是访问url的方式,除非您正在设置它。您可能需要:$\u服务器['PHP\u SELF']:

var_dump($_GET["url"]); 
var_dump($_SERVER['HTTP_HOST']); 
var_dump($_SERVER['PHP_SELF']); 

测试此项:

$url=”https://stackoverflow.com/questions/49765341/php-explode-not-working";
$url=分解(“/”,$url);
var_dump($url);
模具();

输出

C:\wamp64\www\blink\vendor\bausch\yii2-purevision\views\report\index.php:75:
array (size=6)
  0 => string 'https:' (length=6)
  1 => string '' (length=0)
  2 => string 'stackoverflow.com' (length=17)
  3 => string 'questions' (length=9)
  4 => string '49765341' (length=8)
  5 => string 'php-explode-not-working' (length=23)

`

问题可能与您的输入有关。$GET['url']不是访问url的方式,除非您正在设置它。您可能需要:$\u服务器['PHP\u SELF']:

var_dump($_GET["url"]); 
var_dump($_SERVER['HTTP_HOST']); 
var_dump($_SERVER['PHP_SELF']); 

测试此项:

$url=”https://stackoverflow.com/questions/49765341/php-explode-not-working";
$url=分解(“/”,$url);
var_dump($url);
模具();

输出

C:\wamp64\www\blink\vendor\bausch\yii2-purevision\views\report\index.php:75:
array (size=6)
  0 => string 'https:' (length=6)
  1 => string '' (length=0)
  2 => string 'stackoverflow.com' (length=17)
  3 => string 'questions' (length=9)
  4 => string '49765341' (length=8)
  5 => string 'php-explode-not-working' (length=23)
`

$\u GET[“url”]
将是查询字符串参数的值,例如
http://localhost?url=foo/bar
。由于您的
localhost/pages/home
url中没有
url=
,因此未设置
$\u GET[“url”]
,因此您总是会得到
否则的
。可能重复的
$\u GET[“url”]
将是查询字符串参数的值,例如
http://localhost?url=foo/bar
。由于您的
localhost/pages/home
url中没有
url=
,因此未设置
$\u GET[“url”]
,因此您总是会得到
else
。数组中可能重复的not
print()
,只需
print\u r()
,或者更受IMO欢迎,因为它显示行号和数据类型,
var\u dump()
print()
对于数组,只需
print\r()
或更受欢迎的IMO,因为它显示行号和数据类型,
var\u dump()