1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
<?php /** * WPSEO plugin file. * * @package WPSEO\Admin\Links */
/** * Represents the link extractor. */ class WPSEO_Link_Extractor {
/** * @var string */ protected $content;
/** * Sets the content. * * @param string $content The content to extract the links from. */ public function __construct( $content ) { $this->content = $content; }
/** * Extracts the hrefs from the content and returns them as an array. * * @return array All the extracted links */ public function extract() { $links = array();
if ( strpos( $this->content, 'href' ) === false ) { return $links; }
$regexp = '<a\s[^>]*href=("??)([^" >]*?)\\1[^>]*>';
// Used modifiers iU to match case insensitive and make greedy quantifiers lazy. if ( preg_match_all( "/$regexp/iU", $this->content, $matches, PREG_SET_ORDER ) ) { foreach ( $matches as $match ) { $links[] = trim( $match[2], "'" ); } }
return $links; } }
|