我正在研究巨大的字符串,以使用PHP提取有用的数据。一切顺利,直到我遇到了意外的结果。
echo substr("https%3A%2F%2Fwww.instagram.com%2Fapexcalit%2F&redir_token=cQ3kBke8cJRkD9SHj2PKKqMFR598MTUzMTk0NDQ5MkAxNTMxODU4MDky&event=channel_description;",0,50);
我得到的输出是
https%3A%2F%2Fwww.instagram.com%2Fapexcalit%2F&amp
我不明白最后一个放大器在哪里输出。有什么建议吗?
答案 0 :(得分:0)
虽然这对我来说是不可复制的,但在这种情况下,我会使用html_entity_decode
代替substr
。 html_entity_decode
通过将所有HTML实体覆盖为其适用的字符来给出实际结果
$tst = html_entity_decode("https%3A%2F%2Fwww.instagram.com%2Fapexcalit%2F&redir_token=cQ3kBke8cJRkD9SHj2PKKqMFR598MTUzMTk0NDQ5MkAxNTMxODU4MDky&event=channel_description;");
echo substr ($tst, 0, 50);
在此处了解更多 http://php.net/manual/en/function.html-entity-decode.php
答案 1 :(得分:0)
&
是HTML实体,请尝试在输入字符串中使用函数htmlspecialchars_decode()
。
赞:
$str = "https%3A%2F%2Fwww.instagram.com%2Fapexcalit%2F&redir_token=cQ3kBke8cJRkD9SHj2PKKqMFR598MTUzMTk0NDQ5MkAxNTMxODU4MDky&event=channel_description;";
$str = htmlspecialchars_decode($str);
echo substr($str, 0, 47);
// Output: https%3A%2F%2Fwww.instagram.com%2Fapexcalit%2F&