我正在使用PHPDocument
和DOMXPath
。我试图获取具有json类型值的属性。但我没有得到确切的价值。我可以很好地得到其他属性但不是这个。 HTML看起来像
<a href="URL" title="{tt4438848=Nicholas Stoller (dir.), Seth Rogen, Rose Byrne, tt2567026=James Bobin (dir.), Mia Wasikowska, Johnny Depp, tt3498820=Anthony Russo (dir.), Chris Evans, Robert Downey Jr., tt2948356=Byron Howard (dir.), Ginnifer Goodwin, Jason Bateman, tt3385516=Bryan Singer (dir.), James McAvoy, Michael Fassbender, tt1985949=Clay Kaytis (dir.), Jason Sudeikis, Josh Gad, tt3068194=Whit Stillman (dir.), Kate Beckinsale, Chloë Sevigny, tt3799694=Shane Black (dir.), Russell Crowe, Ryan Gosling, tt3040964=Jon Favreau (dir.), Neel Sethi, Bill Murray, tt2241351=Jodie Foster (dir.), George Clooney, Julia Roberts}">X-Men: Apocalypse</a>
如果我使用echo $dom->getAttribute("href");
,则输出为URL
如果我使用echo $dom->getAttribute("title");
,则输出为Bryan Singer (dir.), James McAvoy, Michael Fassbender
我无法获得确切的属性值。
修改 链接phpfiddle.org/main/code/dvj5-zf0q
任何人都可以帮忙吗?我是PHPDOM的新手。提前致谢
答案 0 :(得分:2)
获取title属性:
title
请注意,\w+=((?:(?!(?:, tt)).)+)
不包含json字符串,而是一些自定义实现
见a demo on ideone.com。
$regex = '~\w+=((?:(?!(?:, tt)).)+)~';
foreach ($links as $link) {
preg_match_all($regex, $link->getAttribute('title'), $actors);
print_r($actors);
}
根据您的问题分解:
Handle
同时查看此演示文稿on ideone.com。