背景在调试微信分享功能时打印拼接好的字符串×tamp=返回×tamp=
解决url中×会被转成×的问题 ×tamp=打印出来是 ×tamp=
错误示例
预计打印字符串
string(195) "jsapi_ticket=bxLdikRXVbTPdHSM05e5u3kzOJuUVOl0stOKBg2WGV0OZOgiRI9TkAq5biowyxqqLqvU0MLwSFK6Us88N8361A&noncestr=Fn5Y1anbaK1Zcbg2×tamp=1712469025&url=https://www.baidu.com"
实际打印字符串
string(195) "jsapi_ticket=bxLdikRXVbTPdHSM05e5u3kzOJuUVOl0stOKBg2WGV0OZOgiRI9TkAq5biowyxqqLqvU0MLwSFK6Us88N8361A&noncestr=Fn5Y1anbaK1Zcbg2xtamp=1712469025&url=https://www.baidu.com"
最终解决方案(如何是为了解决微信得问题请用方法1其他问题,三个解决方案均可)
方法1:把【&】符号转义成html实体,【&】的实体是【&】。
$string = 'jsapi_ticket=' . $ticket . '&noncestr=' . $noncestr . '&timestamp=' . $timestamp . '&url=' . $url;
方法2:既然是&符号和times结合会被转义,那就不写在一起,将参数放在第一位。
$string = 'timestamp=' . $timestamp. '&noncestr=' . $noncestr . 'jsapi_ticket=' . $ticket . '&url=' . $url;
方法3:使用htmlspecialchars()函数,把预定义的字符 转成 HTML 实体。
$string = 'jsapi_ticket=' . $ticket . '&noncestr=' . $noncestr . '×tamp=' . $timestamp . '&url=' . $url; echo htmlspecialchars($string );