我是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”,就好像它是空的一样。如果我在使用分解函数之前回显$url,它会显示为"pages/home“。提前谢谢。
发布于 2018-04-11 10:05:54
explode()返回以数组()形式分隔的字符串,因此echo不支持数组的输出。您必须使用print_r()或var_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";
}发布于 2018-04-11 10:08:28
问题可能出在您的输入上。除非您设置了$GET' URL‘,否则它不是您访问URL的方式。您可能需要:$_SERVER‘’PHP_SELF‘:
var_dump($_GET["url"]);
var_dump($_SERVER['HTTP_HOST']);
var_dump($_SERVER['PHP_SELF']); 参见PHP Server Variables。
测试: $url = "https://stackoverflow.com/questions/49765341/php-explode-not-working"; $url = explode("/", $url); var_dump($url); die();
输出
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)`
发布于 2018-04-11 10:05:53
forms数组,由拆分的组件组成。当您为其提供字符串localhost/pages/home时,它将形成三个组件:localhost、pages和home。
使用输出内容将输出数组本身的,并且只显示Array。如果要输出数组的内容,则需要使用或
<?php
$url = 'localhost/pages/home';
$url = explode("/", $url);
var_dump($url);返回:
array(3) {
[0]=>
string(9) "localhost"
[1]=>
string(5) "pages"
[2]=>
string(4) "home"
}这也可以在上看到。
如果您想获取单个行,则需要使用echo $url[index]按索引访问它。例如,echo $url[2]将为您提供home。
https://stackoverflow.com/questions/49765341
复制相似问题