PHP脚本中如何在Bearer Token中传递变量?
解决PHP中Bearer Token变量无法解析的问题
这是PHP字符串解析的经典小坑啦~你遇到的问题核心是单引号与双引号在PHP中的解析规则差异:
问题根源
PHP里用单引号包裹的字符串是「字面量字符串」,里面的$token会被当成普通文本字符,而不是变量解析。所以你的请求头实际发送的是Bearer $token,而不是Bearer 你的令牌值,服务器自然识别不了这个无效令牌,就拒绝请求了。
三种可行的解决方法
方法1:用双引号包裹字符串
把包含变量的字符串换成双引号,PHP会自动解析里面的变量:
$headers = array( 'Authorization' => "Bearer $token", 'Content-type' => 'application/json' );
这种方式最简洁,适合简单的变量嵌入场景。
方法2:字符串拼接
用.连接符把固定字符串和变量拼接起来,单双引号都能混用:
$headers = array( 'Authorization' => 'Bearer ' . $token, 'Content-type' => 'application/json' );
这种方式可读性也很强,尤其是当变量前后有复杂内容时,不容易出错。
方法3:使用sprintf格式化字符串
如果需要更复杂的字符串格式化(比如多个变量、格式转换),sprintf是个不错的选择:
$headers = array( 'Authorization' => sprintf('Bearer %s', $token), 'Content-type' => 'application/json' );
这里的%s会被$token的实际值替换,扩展性很好。
选其中一种方法替换你的代码,就能正常传递令牌啦~
内容的提问来源于stack exchange,提问作者Shiva
相关产品推荐
相关产品推荐

