php preg_match.添加到数组

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)

谢谢

net*_*der 5

您应该使用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)