Старый 06.07.2008, 21:57   #1
Мастер
 
Аватар для MrJinx
 
Регистрация: 10.12.2007
Сообщений: 566
Вес репутации: 237
MrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущее
По умолчанию Обрезание URL-ов

Столкнулся с такой проблемой. Напарсил сайтов из выдачи, часть из адресов с хвостами (т.е. именно ссылки). Может у кого-то есть готовое решение? Нужно эти хвосты убрать или в отдельный файл записать только адреса самих сайтов.

РегЭкспом по формуле http://[^/]*/ нахожу сами адреса, а вот как сделать формулу, чтобы находило всё, что после них - не додумался.
Я уверен, я не один такой весёлый с такой проблемой - поэтому не жадничайте, если богаты на минисофтинку для этого случая. Что-то выдумывать, когда я уверен, что оно уже есть - не очень-то хочется
__________________
Здоровье, сон и богатство может по-настоящему оценить только тот, кто их потерял и обрел снова. Жан Поль (Иоганн Пауль Фридрих Рихтер)
Зарегистрируйся в системе моим рефералом
MrJinx вне форума   Ответить с цитированием
Старый 06.07.2008, 22:16   #2
Специалист
 
Аватар для MadGreen
 
Регистрация: 29.09.2007
Сообщений: 403
Вес репутации: 216
MadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личность
По умолчанию

если речь о php то не придумывая велосипеда:
<?php
$url = pathinfo('http://www.sape.ru/1.php');
echo $url['dirname'];
?>

набросал на коленке, но вроде все верно
MadGreen вне форума   Ответить с цитированием
Старый 06.07.2008, 22:17   #3
Особый статус
 
Регистрация: 23.03.2008
Адрес: localhost
Сообщений: 2,594
Вес репутации: 322
Ufaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущее
Отправить сообщение для Ufaweb с помощью ICQ
По умолчанию

preg_match('|http://([^/]+)([^"])"|Usi', $ссылка, $куда_скидувать_массив)
Ufaweb вне форума   Ответить с цитированием
Старый 06.07.2008, 22:18   #4
Специалист
 
Аватар для MadGreen
 
Регистрация: 29.09.2007
Сообщений: 403
Вес репутации: 216
MadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личность
По умолчанию

или, если беречь память сервака при большом кол-ве урлов, написать строковыми функциями обрезание по одиночному слешу...
регулярки здесь, имхо, будут более затратными чем pathinfo
MadGreen вне форума   Ответить с цитированием
Старый 06.07.2008, 22:18   #5
Особый статус
 
Регистрация: 23.03.2008
Адрес: localhost
Сообщений: 2,594
Вес репутации: 322
Ufaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущее
Отправить сообщение для Ufaweb с помощью ICQ
По умолчанию

Цитата:
Сообщение от MadGreen Посмотреть сообщение
если речь о php то не придумывая велосипеда:
<?php
$url = pathinfo('http://www.sape.ru/1.php');
echo $url['dirname'];
?>

набросал на коленке, но вроде все верно
Это брет - неясно как со спецсимволами (?, например) Тогда уж parse_str или parse_url =)

Добавлено через 1 минуту
Цитата:
Сообщение от Ufaweb Посмотреть сообщение
preg_match('|http://([^/]+)([^"])"|Usi', $ссылка, $куда_скидувать_массив)
Хотя это тоже смахивает на брет

Последний раз редактировалось Ufaweb; 06.07.2008 в 22:20. Причина: Добавлено сообщение
Ufaweb вне форума   Ответить с цитированием
Старый 06.07.2008, 22:21   #6
Специалист
 
Аватар для MadGreen
 
Регистрация: 29.09.2007
Сообщений: 403
Вес репутации: 216
MadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личность
По умолчанию

Цитата:
Сообщение от Ufaweb Посмотреть сообщение
Это брет - неясно как со спецсимволами (?, например) Тогда уж parse_str или parse_url =)

Добавлено через 1 минуту

Хотя это тоже смахивает на брет
$url = pathinfo('http://www.sape.ru/1.php?dfsg=dd');
echo $url['dirname'];

что непонятно?

Добавлено через 2 минуты
регулярка кстати косячная

Последний раз редактировалось MadGreen; 06.07.2008 в 22:24. Причина: Добавлено сообщение
MadGreen вне форума   Ответить с цитированием
Старый 06.07.2008, 22:28   #7
Особый статус
 
Регистрация: 23.03.2008
Адрес: localhost
Сообщений: 2,594
Вес репутации: 322
Ufaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущее
Отправить сообщение для Ufaweb с помощью ICQ
По умолчанию

Цитата:
Сообщение от MadGreen Посмотреть сообщение
регулярка кстати косячная
Ну я и говорю - на бред смахивает
Спекся за этот день...
Ufaweb вне форума   Ответить с цитированием
Старый 06.07.2008, 22:30   #8
Специалист
 
Аватар для MadGreen
 
Регистрация: 29.09.2007
Сообщений: 403
Вес репутации: 216
MadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личность
По умолчанию

в общем вариант я написал рабочий, проверил
MrJinx, пользуйся... если конечно захочешь..
MadGreen вне форума   Ответить с цитированием
Старый 06.07.2008, 22:54   #9
Мастер
 
Аватар для MrJinx
 
Регистрация: 10.12.2007
Сообщений: 566
Вес репутации: 237
MrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущееMrJinx - прекрасное будущее
По умолчанию

Цитата:
Сообщение от MadGreen Посмотреть сообщение
или, если беречь память сервака при большом кол-ве урлов, написать строковыми функциями обрезание по одиночному слешу...
регулярки здесь, имхо, будут более затратными чем pathinfo
dirname не покатит, потому что там много ссылок не с главной сразу, а в подкаталогах типа http://site.com/site/site/1.html, в итоге будет выдавать адрес http://site.com/site/site/, а не http://site.com/

Добавлено через 7 минут
ещё варианты?
__________________
Здоровье, сон и богатство может по-настоящему оценить только тот, кто их потерял и обрел снова. Жан Поль (Иоганн Пауль Фридрих Рихтер)
Зарегистрируйся в системе моим рефералом

Последний раз редактировалось MrJinx; 06.07.2008 в 23:01. Причина: Добавлено сообщение
MrJinx вне форума   Ответить с цитированием
Старый 06.07.2008, 23:35   #10
Специалист
 
Аватар для MadGreen
 
Регистрация: 29.09.2007
Сообщений: 403
Вес репутации: 216
MadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личностьMadGreen - просто великолепная личность
По умолчанию

а, согласен, тогда вот так:

$url = 'http://site.com/site/site/1.html';
$url = substr($url, 0, strpos($url, '/', 7)+1);
echo $url;

Добавлено через 4 минуты
ну или parse_url на самом деле
только вот массив по любому больше памяти будет выедать...

Последний раз редактировалось MadGreen; 06.07.2008 в 23:39. Причина: Добавлено сообщение
MadGreen вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 11:19.