我需要在php代码中读取url中的值。以下是示例网址。我在php文件名后传递值。 我知道我们可以使用像" www.smple.com/sample.php这样的查询字符串?name = value"
但要求是url需要文件名/值,这个值将是动态的。 请任何人都可以帮我解决这个问题。
答案 0 :(得分:0)
使用parse_url从URL获取路径,然后使用explode将其拆分为其段。
$uri_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$uri_segments = explode('/', $uri_path);
echo $uri_segments[1];
答案 1 :(得分:0)
如果值类似
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);
查看当前请求可以获得的所有信息^ _ ^
答案 2 :(得分:0)
如果我做对了,你想把你的参数作为一个友好的网址传递给你。如果是这种情况,你需要在Apache或Nginx中使用重写模式,所以当你得到example.com/xxx/yyy
后,它会发送到php example.com/xxx?param=yyy
,你可以通过$_SERVER['QUERY_STRING']
得到它如上/下文的答案所述。
Apache信息:http://httpd.apache.org/docs/current/mod/mod_rewrite.html