X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Обрезка урлов (URL)
T(h)rasher
T(h)rasher
Topic Starter сообщение 16.5.2014, 20:24; Ответить: T(h)rasher
Сообщение #1


Всем добрый вечер. Мне нужно вырезать из урла среднюю часть, т.е. есть, например, такой урл: www.mysite.ru/hardware/Intel/processors/new/u56723.jpg. А в итоге нужно получить следующий урл: www.mysite.ru/u56723.jpg, т.е. нужно вырезать все подкаталоги из средней части урла до самого файла. Подозреваю, что это делается с помощью регулярных выражений, но я пока с ними толком не знаком. Подскажите как можно решить задачу. Заранее спасибо за помощь.


Сообщение отредактировал T(h)rasher - 16.5.2014, 20:25
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 16.5.2014, 21:54; Ответить: ixman
Сообщение #2


[member=T(h)rasher], я думаю функция preg-replace вам в помощь


Сообщение отредактировал Ixman - 16.5.2014, 21:55
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
T(h)rasher
T(h)rasher
Topic Starter сообщение 16.5.2014, 22:05; Ответить: T(h)rasher
Сообщение #3


Спасибо за ссылку. Да, судя по всему, надо воспользоваться этой функцией, но я не знаю как само регулярное выражение записать - для удаления всех подкаталогов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 16.5.2014, 23:32; Ответить: ixman
Сообщение #4


Вечером голова уже не варит, чёт не могу сообразить как их вырезать.

Сообщение отредактировал Ixman - 16.5.2014, 23:32
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 17.5.2014, 21:44; Ответить: matroskin8
Сообщение #5


Добрый вечер.
Например так возможно:

$str = "www.mysite.ru/hardware/Intel/processors/new/u56723.jpg";
$domen = "www.mysite.ru/";
$pattern = "#.*/(.+)$#";

echo preg_replace($pattern, $domen."$1", $str); // результат: www.mysite.ru/u56723.jpg
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sakhseo
sakhseo
сообщение 17.5.2014, 23:16; Ответить: sakhseo
Сообщение #6



$str = "www.mysite.ru/hardware/Intel/processors/new/u56723.jpg";
echo preg_replace("#^([^/]+)/.*/([^/]+)$#", "$1/$2", $str);

Или вот так. По ситуации надо)))

$str = "бла бла бла dfhhfdhd www.mysite.ru/hardware/Intel/processors/new/u56723.jpg бла бла бла";
echo preg_replace("#([^/\s]+)/.*/([^/\s]+)#", "$1/$2", $str); // бла бла бла dfhhfdhd www.mysite.ru/u56723.jpg бла бла бла



Сообщение отредактировал sakhseo - 17.5.2014, 23:39
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
T(h)rasher
T(h)rasher
Topic Starter сообщение 17.5.2014, 23:22; Ответить: T(h)rasher
Сообщение #7


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


Сообщение отредактировал T(h)rasher - 17.5.2014, 23:37
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 18.5.2014, 8:26; Ответить: matroskin8
Сообщение #8


Начать можно с первой книги (она попроще), после приступить ко второй книге, этого будет достаточно:
1. Бен Форта. Регулярные выражения. 10 минут на урок.
2. Дж. Фридл. Регулярные выражения.
Обе книги можно без проблем найти и скачать.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
T(h)rasher
T(h)rasher
Topic Starter сообщение 19.5.2014, 22:04; Ответить: T(h)rasher
Сообщение #9


Со строкой для паттерна в примере, приведенном [member=matroskin8], разобрался. Не пойму, что означает в этом же примере "$1" (в примере [member=sakhseo] это "$1/$2"), и зачем делать слияние строки $domen и "$1". Подскажите пожалуйста
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 20.5.2014, 10:46; Ответить: matroskin8
Сообщение #10


(T(h)rasher) *
Не пойму, что означает в этом же примере "$1" (в примере sakhseo это "$1/$2")

В регулярных выражениях часть шаблона, заключенная в скобки (их называют "группирующими", "запоминающими" в зависимости от цели), запоминается, иногда говорят - "кладется в карман". Вот эти вот "карманы" нумеруются, это как пронумерованные переменные. В моем примере использованы круглые скобки 1 раз, соответственно, мы положили часть строки (все, что идет до первого слеша от конца строки) в карман №1.
В примере sakhseo запоминающие скобки использованы дважды: в карман №1 попадет доменное имя, а в карман №2 - все, что идет после последнего слеша до слеша или пробела.
Далее во втором параметре функции preg_replace() мы можем обратиться к содержимому карманов и что-то сделать с ним или же просто вывести. Только в данном случае вместо знака № используется знак $.
В моем примере строка домена склеивается с содержимым переменной 1 (кармана №1), в примере sakhseo склеивается содержимое переменных $1 и $2.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Куплю "вечные URL" с ваших сайтов с тематикой - Пластиковые Окна!
5 regem 8370 15.3.2020, 19:46
автор: Narsus797
Открытая тема (нет новых ответов) ТОП-10 Яндекс, по примерно 40 млн слов, 400+ млн урлов.
Собрана 1-10 сентября 2019
3 mistral5 2713 21.9.2019, 21:12
автор: devvver
Открытая тема (нет новых ответов) Куплю места для размещения TXT+URL Строительная тематика.
7 regem 7596 28.3.2019, 18:31
автор: regem
Открытая тема (нет новых ответов) Куплю места для размещения TXT+URL Кафе, Ресторан, Банкетные тематики.
0 regem 8336 1.3.2017, 3:20
автор: regem
Открытая тема (нет новых ответов) убрать GET запрос с URL
Сделать ЧПУ ссылок
18 WoWeb 9851 28.10.2016, 17:18
автор: WoWeb


 



RSS Текстовая версия Сейчас: 29.3.2024, 18:24
Дизайн