You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在HTML的href中保留*332*18747586#的#符号实现充值拨号?

解决tel链接中#号被截断的问题

你遇到的问题我之前帮不少开发者排查过——#号在URL体系里属于特殊字符,浏览器会把它识别为锚点的起始标记,所以解析tel:*332*18747586#时,会自动把#及之后的内容(这里#是结尾字符,直接就被截断了)当成锚点处理,导致最终href里只剩*332*18747586。

解决核心很简单:对#号做URL编码,把它转换成标准编码值%23。在PHP里推荐用rawurlencode()函数处理,它更贴合RFC 3986标准,对特殊字符的编码更严谨。

修改后的代码如下:

<?php 
$a = "*332*18747586#"; 
$aa = rawurlencode($a); 
?> 
<a href="tel:<?php echo $aa; ?>">Click Here To Top Up</a>

这段代码运行后,输出的href会是tel:*332*18747586%23,浏览器能正确解析这个编码后的#号,点击链接时会完整触发拨号字符串*332*18747586#。

如果你只是静态字符串,也可以手动把#替换成%23(比如直接写$a = "*332*18747586%23";),但用函数处理更灵活,适合拨号字符串动态生成的场景。

内容的提问来源于stack exchange,提问作者Schadrack Rurangwa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:55:18