gpt4 book ai didi

javascript - PHP $_GET 和下划线

转载 作者:行者123 更新时间:2023-12-03 07:47:11 25 4
gpt4 key购买 nike

我有一段非常短的 PHP 代码,用来从 JavaScript 发出 HTTP 请求。

<?php echo file_get_contents($_GET['url']); ?>

我已在几个项目中成功使用它,但在当前项目中发出请求时遇到了问题。根据我的搜索,我认为这可能是由于请求中的下划线引起的,尽管通过我的搜索并且不了解PHP,我无法确认这一点。

下面是我使用 JavaScript 所做的示例:

$.get("grabber.php?url=" + "http://tidesandcurrents.noaa.gov/api/datagetter?station=8573364&begin_date=20160202&end_date=20160203&product=predictions&units=english&time_zone=gmt&format=json&application=poseidonweathercom+&datum=MLLW", function(forecast) {

console.log(forecast);

});

如果我复制 URL 并将其放入浏览器中,我会得到我请求的 JSON。当我使用上面的代码时,我最终收到来自 NOAA 的错误消息:

Wrong Product : Product cannot be null or empty Wrong Time zone: Time zone cannot be null or empty Wrong Unit:Unit cannot be null or empty Wrong Format: Format cannot be null or empty Wrong Date: The beginDate cannot be null or empty

我需要在 PHP 中使用正则表达式来表示下划线吗?还有其他问题我不明白吗?

谢谢。

最佳答案

您需要将其编码发送,这将转换所有下划线/空格/与符号等及其编码等效项:

var url = "http://tidesandcurrents.noaa.gov/api/datagetter?station=8573364&begin_date=20160202&end_date=20160203&product=predictions&units=english&time_zone=gmt&format=json&application=poseidonweathercom+&datum=MLLW";

$.get("grabber.php?url=" + encodeURIComponent(url), function(forecast){
console.log(forecast);
}

在该 URL 上使用 encodeURIComponent() 显示:

http%3A%2F%2Ftidesandcurrents.noaa.gov%2Fapi%2Fdatagetter%3Fstation%3D8573364%26begin_date%3D20160202%26end_date%3D20160203%26product%3Dpredictions%26units%3Denglish%26time_zone%3Dgmt%26format%3Djson%26application%3Dposeidonweathercom%2B%26datum%3DMLLW
<小时/>

或者,如果您只想访问 JSON 数据并在 JavaScript 函数中处理它,您可以直接通过 URL 检索数据,而无需对 URL 进行编码:

$.get("http://tidesandcurrents.noaa.gov/api/datagetter?station=8573364&begin_date=20160202&end_date=20160203&product=predictions&units=english&time_zone=gmt&format=json&application=poseidonweathercom+&datum=MLLW", function(forecast) {
console.log(forecast);
});

关于javascript - PHP $_GET 和下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35159259/

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