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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> регулярное выражение, работа со ссылками 
:(
    Опции темы
Hellka
Дата 6.8.2009, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



привет, снова бьюсь с регулярками)))
такая проблемка:

есть строка, например такая:

Код

$str = "ncjsfhncsycsi oofdfndfu8sk <a href='http://rapidshare.com/files/451622/Bride.rar' target='_blank'>rapidshare.com</a> 
svcfsvdgrhy5weff<a href='http://www.hosting.su/photo/fa894b4bdc' target='_blank'>
<img src='http://dl.download.su/preview/fa894b4bdc.jpg' border='0' alt='user posted image' /></a>";


нужно. вытащить из нее ссылку на рапиду. т.е. вот эту часть: <a href='http://rapidshare.com/files/451622/Bride.rar' target='_blank'>rapidshare.com</a>
превратить ее в 

<a href='http://mysite.ru/away.php?to=http://rapidshare.com/files/451622/Bride.rar' target='_blank'>rapidshare.com</a>

и засунуть обратно в сроку, чтобы она имела вид

Код

$str = "ncjsfhncsycsi oofdfndfu8sk <a href='http://mysite.ru/away.php?to=http://rapidshare.com/files/451622/Bride.rar' target='_blank'>rapidshare.com</a>
 svcfsvdgrhy5weff<a href='http://www.hosting.su/photo/fa894b4bdc' target='_blank'>
<img src='http://dl.download.su/preview/fa894b4bdc.jpg' border='0' alt='user posted image' /></a>";


затрагиваются только ссылки с рапиды. с других хостов остаются прежними.
пытался сделать, но обрабатываются полностью все ссылки(((

просто решил перепарсить все посты на сайте, чтобы переходы на левые страницы были через мой сайт.
заранее спасибо за любую помощь)

Это сообщение отредактировал(а) Hellka - 6.8.2009, 13:00
PM MAIL   Вверх
fesor
Дата 6.8.2009, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

$exp = "|\<a(|[ ]+)href(|[ ]+)=(|[ ]+)(\"|')http\:\/\/rapidshare\.com\/(.+)\\4(.+)\>(.+)\<\/a\>|is";


как-то так. Побалуйся))
PM MAIL WWW   Вверх
Hellka
Дата 6.8.2009, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(fesor @ 6.8.2009,  13:05)
Код

$exp = "|\<a(|[ ]+)href(|[ ]+)=(|[ ]+)(\"|')http\:\/\/rapidshare\.com\/(.+)\\4(.+)\>(.+)\<\/a\>|is";


как-то так. Побалуйся))

а можно сразу всю функцию? а то чот не допедриваю
PM MAIL   Вверх
fesor
Дата 6.8.2009, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

<?php

$str = "ncjsfhncsycsi oofdfndfu8sk <a href='http://rapidshare.com/files/451622/Bride.rar' target='_blank'>rapidshare.com</a> 
svcfsvdgrhy5weff<a href='http://www.hosting.su/photo/fa894b4bdc' target='_blank'>
<img src='http://dl.download.su/preview/fa894b4bdc.jpg' border='0' alt='user posted image' /></a>";

$exp = "/\<a(|[ ]+)href(|[ ]+)=(|[ ]+)('|\")http\:\/\/rapidshare\.com(.+)\\4(.+)\>/Uis";
preg_match($exp, $str, $matches);
var_dump($matches);
/*
    array(7) {
        [0]=>
        string(71) "<a href='http://rapidshare.com/files/451622/Bride.rar' target='_blank'>"
        [1]=>
        string(1) " "
        [2]=>
        string(0) ""
        [3]=>
        string(0) ""
        [4]=>
        string(1) "'"
        [5]=>
        string(23) "/files/451622/Bride.rar"
        [6]=>
        string(16) " target='_blank'"
    }
*/


этого более чем достаточно. Чтобы заменить так как ты хочешь можно сделать отдельную функцию типа rebuildurl и потом через функцию preg_replace_callback выполнять обработку. Ну или так:

Код

$str = preg_replace($exp, "<a href=\"http://mysite.ru/away.php?to=http://rapidshare.com\\5\">", $str);

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1080 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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