gpt4 book ai didi

php - 当字符串变量中有 URL 时,如何在 PHP 中使用 parse_url?

转载 作者:可可西里 更新时间:2023-11-01 01:10:20 27 4
gpt4 key购买 nike

我是一个 PHP 新手,所以我需要一些帮助。

我正在为我的网站创建一个自行设计的联属网络营销计划,并且可以选择让联属网络营销网络将 SubID 添加到他们的链接以进行跟踪。在无法控制输入内容的情况下,我一直在测试不同的场景,并在输入完整 URL(即“http://example.com”)时发现了一个错误。

在我的 PHP 中,我可以毫无问题地从字符串中获取变量。我的问题来自于我获取引用 URL 并解析它时(因为我需要解析引用 URL 以获得主机鬃毛以供其他用途)。代码如下:

$refURL = getenv("HTTP_REFERER");

$parseRefURL = parse_url($refURL);

WORKS 当传入链接是(例如):

http://example.com/?ref=REFERRER'S-ID&sid=www.test.com

传入链接时出错(注意在“sid=”之后添加“http://”):

http://example.com/?ref=REFERRER'S-ID&sid=http://www.test.com

这是警告信息:

Warning: parse_url(/?ref=REFERRER'S-ID&sid=http://www.test.com) [function.parse-url]: Unable to parse url in /home4/'directory'/public_html/hosterdoodle/header.php on line 28`

当有人可能决定将 URL 放入变量时,关于如何防止 parse-url 函数被丢弃的任何想法? (我实际上测试了这个问题,直到它会在变量中以“:/”的形式抛出错误)

最佳答案

以下部分代码:

$url = "http://example.com/?ref=REFERRER'S-ID&sid=http://www.test.com";
$data = parse_url($url);
var_dump($data);

对我来说工作正常(PHP 5.3.2),并提供以下输出:

array
'scheme' => string 'http' (length=4)
'host' => string 'example.com' (length=11)
'path' => string '/' (length=1)
'query' => string 'ref=REFERRER'S-ID&sid=http://www.test.com' (length=41)


您确定要将完整的 URL 传递给 parse_url 吗?

如果我使用这部分代码:

$url = "/?ref=REFERRER'S-ID&sid=http://www.test.com";
$data = parse_url($url);

我收到了和你一样的警告:

Warning: parse_url(/?ref=REFERRER'S-ID&sid=http://www.test.com) 
[function.parse-url]: Unable to parse URL

但这是在不传递完整 URL 的情况下......

关于php - 当字符串变量中有 URL 时,如何在 PHP 中使用 parse_url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2701336/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com