parse_url() 参数之一为 url 时出现问题

发布于 2024-10-17 03:15:31 字数 483 浏览 7 评论 0原文

我调用了一个 php 脚本 http://site.com/process.php ,它将 url 作为其参数之一。 for=

http://site.com/process.php?for=http://www.anotherwebsite.com

然后我这样做并尝试 parse_url() 但 parse_url() 给出了解析错误。

$uri = $_SERVER['REQUEST_URI']; // /process.php?for=http://www.anotherwebsite.com
parse_url($uri);

如何在发送端(在 url 中)或接收端(php)对 for 参数进行编码,以便 parse_url() 理解它只是一个参数这恰好看起来像一个网址?

I call a php script http://site.com/process.php that takes a url as one of its parameters. for=

http://site.com/process.php?for=http://www.anotherwebsite.com

I then do this and try to parse_url() but parse_url() gives a parse error.

$uri = $_SERVER['REQUEST_URI']; // /process.php?for=http://www.anotherwebsite.com
parse_url($uri);

How can I encode the for parameter either on the sending side (in the url) or on the receiving side (php) so that parse_url() understands that it's just a parameter that happens to look like a url?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

短叹 2024-10-24 03:15:31

在将您的网址包含为 get 参数之前,请使用 <代码>urlencode

$full_url = 'http://site.com/process.php?for=' . urlencode('http://www.anotherwebsite.com');

此功能在以下情况下很方便
编码要在 a 中使用的字符串
查询 URL 的一部分,作为一种方便
将变量传递给下一个的方法
页。


要反转 urlencode 的结果,请使用 urldecode。正如 mario 在下面的评论中指出的那样,$_GET 参数已经进行了 url 解码。

Before including your url as a get parameter, use urlencode

$full_url = 'http://site.com/process.php?for=' . urlencode('http://www.anotherwebsite.com');

This function is convenient when
encoding a string to be used in a
query part of a URL, as a convenient
way to pass variables to the next
page.


To reverse the result of urlencode, use urldecode. As mario pointed out in a comment below, $_GET parameters are already urldecoded.

-黛色若梦 2024-10-24 03:15:31

好吧,首先你必须使用 urlencode() for= 参数,然后在 process.php 中,你可以简单地执行

$url = $_GET["for"];
$url = urldecode($url); // http://www.anotherwebsite.com

以下功能:
http://php.net/manual/en/function.urlencode.php
http://php.net/manual/en/function.urldecode.php

Well, first you must urlencode() the for= parameter, then in process.php, you can simply do

$url = $_GET["for"];
$url = urldecode($url); // http://www.anotherwebsite.com

Here are the functions:
http://php.net/manual/en/function.urlencode.php
http://php.net/manual/en/function.urldecode.php

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文