Изменить относительный путь на полный в CSS - PullRequest
1 голос
/ 12 декабря 2010

Я использую простой HTML-файл для извлечения данных с веб-сайта и анализа их. Однако я не могу изменить один из реальных путей в теге style на полный. Я перепробовал много комбинаций.

Я нашел здесь сообщение об использовании скрипта PEAR с простым html dom, и он работал на всех ссылках, кроме ниже.

require_once 'includes/URL2.php';

$uri = new Net_URL2('http://www.stormcinemas.ie'); // URI of the resource
$baseURI = $uri;

foreach ($htmlcss->find('background[url]') as $elem) {
    $elem->url = $baseURI->resolve($elem->url)->__toString();
}

foreach ($html->find('*[src]') as $elem) {
    $elem->src = $baseURI->resolve($elem->src)->__toString();
}
foreach ($html->find('*[href]') as $elem) {
    if (strtoupper($elem->tag) === 'BASE') continue;
    $elem->href = $baseURI->resolve($elem->href)->__toString();
}
foreach ($html->find('form[action]') as $elem) {
    $elem->action = $baseURI->resolve($elem->action)->__toString();
}

style.css

<style> 
div.spriteImgSmall { background: url(/images/css_sprites/film_sprites/smallimages_sprite.jpg); } 
</style>

Спасибо

1 Ответ

3 голосов
/ 13 декабря 2010

Решение было предоставлено здесь, но, к сожалению, было удалено. Еще раз спасибо, это действительно решило мой вопрос.

Вот оно для будущего исх.

$htmlcss = preg_replace('/url\(\s*[\'"]?\/?(.+?)[\'"]?\s*\)/i', 'url('.
        $baseURI.'/$1)', $htmlcss);

Мне все равно было бы интересно, если кто-нибудь знает, как использовать простой html dom на css, поскольку в сети ничего нет. Это может быть даже невозможно.

...