因此,在PHP中,我尝试使用;
$raw = file_get_contents($inlink);
然后我正在研究结果$内联来自$_GET变量。这适用于大多数URL,但当URL包含TM时,我会遇到问题(™)符号,因为我得到一个404错误。
有问题的URL是http://www.boots.com/en/Soap-Glory-Flake-Away-™-车身-Crub-300ml27894/
所以这看起来像是一个编码问题。所以我尝试了urlencode,但这没有帮助。我还尝试过从firefox中的地址栏复制和过去,这样我就进入了
http://www.boots.com/en/Soap-Glory-Flake-Away-%E2%84%A2-Body-Scrub-300ml_27894/
相反,但这也于事无补。
通过调试和对屏幕的响应,我最终得到了
http://www.boots.com/en/Soap-Glory-Flake-Away-â„¢-Body-Scrub-300ml_27894/
或
http%3A%2F%2Fwww.boots.com%2Fen%2FSoap-Glory-Flake-Away-%E2%84%A2-Body-Scrub-300ml_27894%2F
正在提交,但都不起作用。
奇怪的是,如果我在程序中硬编码链接,它就会工作!
有什么想法吗?
您需要utf8_encode
URL(我认为它来自ISO-8859-1(5)/Latint1)
此外,我假设在运行file_get_contents()
之前,您正在对URL进行utf8_decoding和验证-您不希望用户让您的系统从Internet上的任何位置请求任意URL。