【问题标题】:PHP get url with special characters without urlencode:ing them!PHP 获取带有特殊字符的 url 而不使用 urlencode:ing 他们!
【发布时间】:2009-07-23 20:11:30
【问题描述】:

我希望 file_get_contents 获得如下所示的 url:http://wapedia.mobi/sv/Gröt

问题在于它请求(无法发布整个链接,抱歉):...wapedia.mobi/sv/Gr%C3%B6t 您可以看到已被 urlencoded,该页面没有给我任何结果.

我该怎么做?

【问题讨论】:

    标签: php urlencode file-get-contents


    【解决方案1】:

    根据PHP manual,如果 URL 包含特殊字符,则必须对其进行专门编码。这意味着函数本身不应进行特殊编码。您的 URL 很可能在 被传递给函数之前被编码,所以首先将它传递给 urldecode 看看会发生什么。

    编辑:你是说编码被弄乱了。 PHP 手册再次明确指出,您需要在将 url 传递给file_get_contents 之前对其进行编码。尝试对 URL 进行编码,然后将其传递给函数。

    $url = urlencode($url);
    file_get_contents($url);
    

    【讨论】:

    • wapedia.mobi/sv/Gr%C3%B6t 实际上在工作。抱歉,我的 PHP 脚本要求:Gr%F6t。这是为什么?我怎样才能编码(Gröt)它所以它最终会变成beeing:Gr%C3%B6t。非常感谢。
    • 我解决了这个问题。它起源于将字符串作为 GET 参数传递给 PHP 文件的 JavaScript 函数。所以我想这毕竟不是一个 PHP 问题,对此感到抱歉。我最初使用 JavaScript escape() 函数对其进行编码,但是,我发现使用 encodeURIComponent 与 UTF-8 一起工作得更好。非常感谢您的时间和帮助。
    • 感谢 Johan,您使用“encodeURIComponent”的建议对我有用!
    猜你喜欢
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    相关资源
    最近更新 更多