如何在.php之后获取值

时间:2018-09-18 08:07:15

标签: php

我想知道如何才能从.php之后的URL中获取所有值?

示例: http://localhost/api/test

API = api.php ,只需.htaccess。

我想知道如何仅从URL中获取“测试”,或者获取更多值, / test / test1 / test2

我已经尝试过$_SERVER['PATH_INFO'],但对我却不起作用,错误输出显示$_SERVER['PATH_INFO']未定义。有什么解决方法吗?

3 个答案:

答案 0 :(得分:0)

尝试

使用parse_url()您可以检索url组件

$url = "http://localhost/api/test";
$myurl = parse_url($url);
echo  $myurl['path'];

答案 1 :(得分:0)

简单的步骤

第一步:写在.htaccess

RewriteEngine on
RewriteRule  ^(.+)/?$ test.php?url=$1

第二步:带有以下代码的test.php文件

<?php

   $url = $_GET['url'];
   echo '<pre>';
       print_r($url);
   echo '</pre>';
?>

注意:您可以在explode变量上调用$url函数

rewrite module 必须在Apache服务器上。

enter image description here

请注意,我认为这可以解决您的问题

脚本是不言自明的,但是如果感到困惑,请告诉我。

<?php
  $url = $_GET['url'];

  echo '<pre>';
      print_r($url);
  echo '</pre>';

  //echo '<pre>';
      ///print_r(explode('/',$url,4));
  //echo '</pre>';

  list($file,$controller,$method,$params) = explode('/',$url,4);


  echo "<hr/>file:" . $file;
  echo "<hr/>controller:" . $controller;
  echo "<hr/>method:" . $method;

  echo "<hr/>params:" ;
  echo '<pre>';
      print_r($params);
  echo '</pre>';

  ?>

输出2 enter image description here

答案 2 :(得分:0)

您可以在$ _SERVER变量(php.net)中找到所需的内容。 只需print_r $ _SERVER的值,然后查看那里有什么信息...,您将很容易地看到所需的信息。 然后,您可以使用字符串函数来隔离URL中所需的部分,或查询字符串以获取所需的任何内容。

还...

如果将.htaccess与重写一起使用,则可能会将它们发送到$ _GET变量中。可以肯定的是,您需要在进行重写的地方张贴一些.htaccess文件。