PHP如何在HTTP链接中正确嵌入变量实现动态数据下载
问题原因
PHP 的单引号字符串不会解析内部嵌入的变量,你写的 $t1、$t2 没有被替换为实际的数值,而是直接作为字符串的一部分发送到服务端,路径不匹配自然请求失败。
正确写法
下面提供两种常用的可行方案:
- 方案1:用双引号包裹URL,双引号会自动解析内部变量
用大括号包裹变量是更规范的写法,可以避免变量名和后续字符产生歧义。$homepage = file_get_contents("http://www.dataserver.com/getfeed/72062b24e00c4aa4ad7208d98c02bb39/h2h/{$t1}/{$t2}"); - 方案2:使用字符串拼接语法,逻辑更直观,不需要考虑引号解析规则
$homepage = file_get_contents('http://www.dataserver.com/getfeed/72062b24e00c4aa4ad7208d98c02bb39/h2h/' . $t1 . '/' . $t2);
额外优化建议
如果 $t1、$t2 是从用户输入或者其他不可控来源获取的,建议先用 urlencode() 函数处理变量,避免特殊字符导致请求路径异常:
$homepage = file_get_contents('http://www.dataserver.com/getfeed/72062b24e00c4aa4ad7208d98c02bb39/h2h/' . urlencode($t1) . '/' . urlencode($t2));
内容的提问来源于stack exchange,提问作者Ayo Owoade
相关产品推荐
相关产品推荐

