我使用正则表达式来匹配链接,但结果却缺少一个重要的部分。匹配后,它错过了''在链接中出于某种原因。为什么会发生这种情况,我该如何解决?
$link = "/w/index.php?title=Category:English_verbs&pagefrom=AFFAMISH%0Aaffamish#mw-pages";
$regex = "~^/.+~";
preg_match($regex, $link, $match);
print_r($match);
结果:
Array ( [0] => /w/index.php?title=Category:English_verbs&pagefrom=AFFAMISH%0Aaffamish#mw-pages )
^ ---此结果缺少amp;
和verbs&
之间的pagefrom
。
预期结果:
Array ( [0] => /w/index.php?title=Category:English_verbs&pagefrom=AFFAMISH%0Aaffamish#mw-pages )
答案 0 :(得分:0)
It's not。您可能只是在浏览器中查看输出,如果发送了Content-type
text/html
标头,则浏览器会将其作为HTML处理(,因此{{1} }变成&
)。
尝试在CLI中查看以避免此问题,或者如果您坚持在浏览器中查看它,请使用&
。