
01.04.2009, 01:46
|
|
Познающий
Регистрация: 14.03.2009
Сообщений: 86
С нами:
9031356
Репутация:
12
|
|
В общем, нашел функцию... помогите, пожалуйста, теперь с циклом, чтобы все ссылки привести в абсолютный вид и вывести страницу :-)
PHP код:
<?php
/**
* Приведение ссылки к абсолютному URI
*
* @param string $link ссылка (абсолютный URI, абсолютный путь на сайте, относительный путь)
* @param string $base базовый URI (можно без "http://")
* @return string абсолютный URI ссылки
*/
function uri2absolute($link, $base)
{
if (!preg_match('~^(http://[^/?#]+)?([^?#]*)?(\?[^#]*)?(#.*)?$~i', $link . '#', $matchesLink)) {
return false;
}
if (!empty($matchesLink[1])) {
return $link;
}
if (!preg_match('~^(http://)?([^/?#]+)(/[^?#]*)?(\?[^#]*)?(#.*)?$~i', $base . '#', $matchesBase)) {
return false;
}
if (empty($matchesLink[2])) {
if (empty($matchesLink[3])) {
return 'http://' . $matchesBase[2] . $matchesBase[3] . $matchesBase[4];;
}
return 'http://' . $matchesBase[2] . $matchesBase[3] . $matchesLink[3];
}
$pathLink = explode('/', $matchesLink[2]);
if ($pathLink[0] == '') {
return 'http://' . $matchesBase[2] . $matchesLink[2] . $matchesLink[3];
}
$pathBase = explode('/', preg_replace('~^/~', '', $matchesBase[3]));
if (sizeOf($pathBase) > 0) {
array_pop($pathBase);
}
foreach ($pathLink as $p) {
if ($p == '.') {
continue;
} elseif ($p == '..') {
if (sizeOf($pathBase) > 0) {
array_pop($pathBase);
}
} else {
array_push($pathBase, $p);
}
}
return 'http://' . $matchesBase[2] . '/' . implode('/', $pathBase) . $matchesLink[3];
}
$url = "http://www.google.ru/";
$content = file_get_contents($url);
Код:
preg_match_all("#src=['\"]([^'\"].*\.(gif|jpg|jpeg|png|js))#iU", $content, $images);
...........
Последний раз редактировалось draliokero; 01.04.2009 в 04:57..
|
|
|