Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Собрать полный url 
:(
    Опции темы
nepster
Дата 20.10.2013, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



Собственно пишу парсер, и попал в такой вот просак. Есть страница:

Код
http://nodejs.org/api/


Тут есть вот такие вот ссылки 
Код

<li><a href="documentation.html">About these Docs</a></li>
<li><a href="synopsis.html">Synopsis</a></li>
<li><a href="assert.html">Assertion Testing</a></li>
<li><a href="buffer.html">Buffer</a></li>
<li><a href="addons.html">C/C++ Addons</a></li>
<li><a href="child_process.html">Child Processes</a></li>
<li><a href="cluster.html">Cluster</a></li>
<li><a href="console.html">Console</a></li>
<li><a href="crypto.html">Crypto</a></li>


Полный адрес которых, вот такой:
Код

http://nodejs.org/api/documentation.html
...



Я начил парсить с главной тсраницы и моя функция 


Код

    // Получаем полную ссылку к странице нашего сайта 
    public static function getFullUrl($link, $myLink)
    {
        // сразу избавимся от www, если есть
        $myLink = str_replace('//www.','//',$myLink);
        $link   = str_replace('//www.','//',$link);
        
        $parse_url = parse_url($link);
        
        if(isset($parse_url['scheme']) && isset($parse_url['host']))
        {
            if(isset($parse_url['path']))
            {
                return $myLink.$parse_url['path'];
            }
            else
            {
                return $link;
            }
        }
        
        
        if(!isset($parse_url['scheme']) && !isset($parse_url['host']) && isset($parse_url['path']))
        {           
            if(substr($link,0,1) != '/')
            {
                $path  = (isset($parse_url['path']))  ? '/'.$parse_url['path']  : '';
                $query = (isset($parse_url['query'])) ? '/'.$parse_url['query'] : '';
                
                return $myLink.$path.$query; 
            }
            
            return $myLink.$link;
        }
        
        return false;
    }  


честно подставила домен
Код

http://nodejs.org/documentation.html


а правильный вариант:
Код

http://nodejs.org/api/documentation.html



Подскажите пожалуйста, можно ли как то исправить ситуацию ? 

Это сообщение отредактировал(а) nepster - 20.10.2013, 23:22
PM MAIL   Вверх
Sanchezzz
Дата 21.10.2013, 02:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



Проверку делай если в начале нету 
/ - означает что путь с корня сайта 
или 
// - домен  + с путь начинается с корня

Далее тебе известно на какой ты странице парсишь.

Если ты встречаешь ссылки "doc.html" то ты присваиваешь этой ссылке путь текущей дериктории.

Например если парсер забрел  на страницу /api/docs.php

то мы выясняем путь папки /api/ этот путь и будет базовым для всех  ссылок у которых не задан полный путь.

 


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
nepster
Дата 21.10.2013, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



большое спасибо, тоже так думал, но еще надеялся на какое-то невелосипедное решение .
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0651 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.