【问题标题】:PHP: CURL - Trying to hit website with &not in the URLPHP:CURL - 试图在 URL 中使用 &not 来访问网站
【发布时间】:2014-09-06 07:33:06
【问题描述】:

我有一个要访问的网站,它在 URL 中使用 GET 参数。例如:

http://example.com?val=123&notice=abc

问题是启动 notice 键的 &not 被读取为 html 给我这个字符:¬

我已尝试在 notice 之前转义 & 字符并尝试将其替换为 & 但均无效。

有人知道该怎么做吗?

编辑

以下是相关代码:

$url = "https://example.com/extern?type=2&notification-mode=1";
curl_get_contents($url, true, false);

这是它调用的 CURL 函数:

function curl_get_contents($url, $body = true, $header = false) {
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HEADER, $header);
    curl_setopt($curl, CURLOPT_NOBODY, !$body);
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    $data = curl_exec($curl);
    curl_close($curl);
    return $data;
}

【问题讨论】:

  • 让我们看看您尝试过的代码,因为这应该不是问题。也许你需要一个斜杠,比如http://example.com/?val=...
  • 至少分享代码。
  • 你在做什么获取并显示¬ 字符?
  • 你复制粘贴网址了吗?尝试输入网址..
  • 我刚刚测试了你的脚本,它对我来说很好用。 $_REQUEST 包含:Array ( [type] => 2 [notification-mode] => 1 )

标签: php url curl special-characters ampersand


【解决方案1】:

¬ 字符输出 html 符号,因为您正在尝试在 html 文档中调试 $url,导致它将实体转换为符号。

通过将您的 url 包装在 htmlspecialchars 中,它会将 html 符号从 ¬ 编码为 ¬。

【讨论】:

    【解决方案2】:

    如果您将 URL 放在引号中,它应该可以工作。

    【讨论】:

    • URL 用引号括起来。没有运气。我添加了代码,以便您查看。
    猜你喜欢
    • 2020-03-08
    • 2013-09-25
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多