PHP函数substr无法按预期工作

时间:2018-07-17 20:15:05

标签: php

我正在研究巨大的字符串,以使用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&ampamp

我不明白最后一个放大器在哪里输出。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

虽然这对我来说是不可复制的,但在这种情况下,我会使用html_entity_decode代替substrhtml_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);

在此处https://3v4l.org/jf5VZ

在此处了解更多 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&