Вы ищете <a rel...
вместо <link rel...
.
Кроме того, вы, вероятно, захотите что-то вроде (http.+?)
вместо (http+)
.
Лучший способ найти эту ссылку - что-то вроде:
if (preg_match('/<link.+?>/si', $page, $link_matches)
&& strpos($link_matches[0], 'shortcut icon') !== false
&& preg_match('/href\s*=\s*"(http:.+?)"/si', $link_matches[0], $matches))
{
$avatar = $matches[1];
}
else
{
$avatar = 'http://27.media.tumblr.com/avatar_749f6bc22627_128.png';
}
В приведенном выше примере вы сначала будете искать теги <link/>
, а затем искать атрибут href
в найденных тегах ссылки. Просто на тот случай, если они выглядят немного иначе, чем вы ожидаете.