PHP :我需要从 www.smple.com/sample.php/value in php 中读取值

PHP : I need to read value from ur "www.smple.com/sample.php/value in php

我需要在 php 代码中读取 url 的值。下面是示例 url 。我在 php 文件名后传递值。 我知道我们可以使用 "www.smple.com/sample.php?name=value"

这样的查询字符串

但是要求是url需要filename/value,这个值会是动态的。 请任何人都可以帮助我解决这个问题。

URL : www.smple.com/sample.php/value

使用 parse_url 从 URL 获取路径,然后使用 explode 将其拆分成多个段。

$uri_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$uri_segments = explode('/', $uri_path);

echo $uri_segments[1];

如果值像

http://www.example.com?value=42

您可以阅读

$value = $_GET['value'];

如果值像

http://www.example.com/index.php/foo

其中 foo 是值,您可以使用 $_SERVER 变量读取它:

$_SERVER['SERVER_NAME'] => localhost
$_SERVER['REQUEST_URI'] => /index.php/foo
$_SERVER['REQUEST_METHOD'] => GET
$_SERVER['SCRIPT_NAME'] => /index.php
$_SERVER['SCRIPT_FILENAME'] => /Users/sensorario/Development/local/fake-server/web/index.php
$_SERVER['PATH_INFO'] => /foo
$_SERVER['PHP_SELF'] => /index.php/foo

此外,如果您需要有关请求的更多信息,.. 只需键入

print_r($_SERVER);

查看当前请求的所有信息^_^

如果我没看错,你想将你的参数作为友好的 url 传递。如果是这种情况,您需要在 Apache 或 Nginx 中使用重写模式,所以当您获得 example.com/xxx/yyy 后,它会发送到 php example.com/xxx?param=yyy,您可以使用 $_SERVER['QUERY_STRING'] 如答案 above/below.

中所述

A​​pache 信息:http://httpd.apache.org/docs/current/mod/mod_rewrite.html