Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2011, 07:36   #1
askerpro
Новичок
Джуниор
 
Регистрация: 17.09.2009
Сообщений: 45
По умолчанию замена относительных ссылок на абсолютные

Добрый день, скажите как составить регулярное выражение, для поиска всех относительных ссылок на странице включая картинки, пути к файлам, пути к стилям и т.д.

есть код, который принимает урл (относительный, абсолютный), который на выходе всегда дает абсолютный
PHP код:
function adjust($uri,$this) { 
         if(!
eregi('^http',$uri)) { // path need to adjust 
            
if(eregi('^[a-z]+:',$uri)) { // mailto: ftp:// etc. 
               
return $uri
            } 
            if(
eregi('^/',$uri)) { // Absolute path 
               
return $this['scheme'].'://'.$this['host'].$uri
            } 
            
$path explode('/',$this['path']); 
            unset(
$path[count($path)-1]); 
            
$path=implode('/',$path); 
            while(
eregi('^\.\./',$uri)) { 
               
$uri substr($uri,3); 
               
$path explode('/',$path); 
               unset(
$path[count($path)-1]); 
               
$path=implode('/',$path); 
            } 
            return 
$this['scheme'].'://'.$this['host'].$path.'/'.$uri
         } 
         return 
$uri
      } 
вот так я его использую


PHP код:
preg_match_all("!href=\"?'?([^ \">]+)\"?'?.*?>(.*?)!is",$htmltext,$ok);
    foreach (
$ok[1] as $lnk) {
        
        if( !(
preg_match"!^http://!is"$lnk)))
            
$htmltext=str_replace($lnk,adjust($lnk,$url),$htmltext);
            
    } 
но этот код работает только для ссылок, а мне нужно как нить в таком духе заменить и пути к картинкам, стилям и тд.
в общем, все пути начинающиеся с
PHP код:
="\...\" 
должен быть заменен на
PHP код:
$url['host']."\...\" 
как это сделать?
помогите пожалуйста, 2 дня уже потратил
askerpro вне форума Ответить с цитированием
Старый 30.11.2011, 07:36   #2
askerpro
Новичок
Джуниор
 
Регистрация: 17.09.2009
Сообщений: 45
По умолчанию

в регулярных выражениях ничего не понимаю, все функции были найдены в гугле
askerpro вне форума Ответить с цитированием
Старый 30.11.2011, 10:21   #3
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Функции парсинга web-страниц
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена ссылок в книге HTR Microsoft Office Excel 4 05.04.2011 17:22
массовая замена ссылок в куче файлов kzld Microsoft Office Excel 0 22.11.2010 12:48
Изменение группы ссылок на абсолютные/относительные MaxxVer Microsoft Office Excel 3 11.12.2009 10:11
Трансформация относительных ссылок в абсолютные d-kiselev Microsoft Office Excel 2 18.12.2008 21:27
абсолютные адреса kano Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 01.07.2008 20:49