file_get_contents()没有';不起作用,因为url包含&;amp;和%20


file_get_contents() doesn't work because url includes & and %20

我使用file_get_contents()读取远程文件。它可以很好地处理普通字符的url,但是,客户端有一些类似的文件

http://www.site.org/?m=sp_view_doc&file=publicpolicy/shared%20documents/therapeutic%20discovery%20project%20credit%20general%20guide.pdf

它在源代码中显示了这一点

http://www.site.org/?m=sp_view_doc&file=publicpolicy/shared%20documents/therapeutic%20discovery%20project%20credit%20general%20guide.pdf

我尝试过urldecode(),但没有成功。我该如何避免这个问题?

只要一个简单的str_replace("&","&",$url)就可以了。

%20在URL中是完全可以的,因为它只是代表一个空格,所以你不需要担心它

您尝试过html_entity_decode(urldecode($string))吗?

使用rawurldecode,它将把%20s变成空格,而不是像urldecode那样的加号。