sha*_*ane 3 php arrays preg-match
基本上我正在尝试使用preg_match查找带有PDF附件的所有链接,然后将整个URL添加到数组中.我正在努力的部分是如何在比赛前选择所有内容,直至"引用" <a href="">.我想这样做,这样我就可以循环遍历数组,并为每个文档做我需要的任何事情.我只想'1234.pdf'在数组中得到(加上任何子目录信息).
有任何想法吗?
这是我到目前为止,它只返回比赛...
$string1 = "<a href='1234.pdf'>Document 1</a>";
$match = preg_match("/.pdf/i", $string1, $output);
Run Code Online (Sandbox Code Playgroud)
谢谢
您应该使用DOM解析器来提取该信息,因为它更容易,而且更安全.然后,您可以preg_match用来检查链接是否实际上是PDF:
$html = '<a href="foo.pdf">Foo</a>'.
'<a href="bar.jpg">Bar</a>'.
'<a href="baz.pdf">Baz</a>';
$dom = new DOMDocument;
$dom->loadHTML($html);
$links = $dom->getElementsByTagName('a');
$result = array();
foreach ($links as $link) {
$href = $link->getAttribute('href');
if (preg_match('/\.pdf$/i', $href)) $result[] = $href;
}
print_r($result);
Run Code Online (Sandbox Code Playgroud)
输出:
Array
(
[0] => foo.pdf
[1] => baz.pdf
)
Run Code Online (Sandbox Code Playgroud)