一直在写关于音乐的API,然而到抓取歌词时,输出歌词内容中有很多HTML ASCII编码,搜索了半天也没搞定,查到的都是粘贴复制的内容

出现的问题

出现的编码

[ti:遇见]
[ar:孙燕姿]
[al:210651]
[by:]
[offset:0]
[00:00.10]遇见 (《向左走,向右走》电影主题曲) - 孙燕姿
[00:00.20]词:易家扬
[00:00.30]曲:林一峰
[00:00.40]
[00:25.06]听见 冬天的离开
[00:29.45]
[00:30.10]我在某年某月 醒过来
[00:34.42]
[00:35.22]我想 我等 我期待
[00:40.48]未来却不能因此安排
[00:45.28]
[00:54.00]阴天 傍晚 车窗外
[00:59.22]未来有一个人在等待
[01:04.37]向左向右向前看
[01:09.48]爱要拐几个弯才来
[01:13.98]
[01:14.58]我遇见谁 会有怎样的对白
[01:19.95]我等的人 他在多远的未来
[01:25.11]我听见风来自地铁和人海
[01:30.32]我排着队 拿着爱的号码牌
[01:36.22]
[01:56.65]阴天 傍晚 车窗外
[02:01.90]未来有一个人在等待
[02:07.06]向左向右向前看
[02:12.37]爱要拐几个弯才来
[02:17.28]我遇见谁 会有怎样的对白
[02:22.44]我等的人 他在多远的未来
[02:27.65]我听见风来自地铁和人海
[02:32.88]我排着队 拿着爱的号码牌
[02:39.23]
[02:43.39]我往前飞 飞过一片时间海
[02:48.66]我们也曾在爱情里受伤害
[02:53.76]我看着路 梦的入口有点窄
[02:59.06]我遇见你是最美丽的意外
[03:05.13]
[03:06.23]总有一天 我的谜底会揭开

之前一直以为是编码的问题,用了json_decode()也没搞定

后来查阅了文档才知道是html特有的转义字符,里面还有比较特殊的换行等等

需要用html_entity_decode()方法进行转换

解决示例

$str = '[ti:遇见]
[ar:孙燕姿]
[al:210651]
[by:]
[offset:0]
'
echo html_entity_decode($str,null,'UTF-8');

输出结果如下

[ti:遇见]
[ar:孙燕姿]
[al:210651]
[by:]
[offset:0]
最后修改:2019 年 03 月 18 日
如果觉得我的文章对你有用,请随意赞赏