Автор Тема: Вырезания линка из текста. Регулярное выражение.  (Прочитано 2680 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Hong

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.hong.de
Привет всем.
Помогите пожалуйста совтавить регулярное выражение, которое я потом смогу применить на пхп.

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

Первоначальный текст:

Text: Osnabrück, Tel: 000000, Fax: 000000,
E-Mail: TEST@TE-TE.Test.com and
test@test.de
Stadt Osnabrück
http://www.test1.de/index3.php and
http://www.test2.de and
http://www.test3.de?variable=vor&variable2=vor and
http://www.test4.de?variable=vor and
http://test5.subdomain.de and
http://test6.de?variable=yes&weiter
...

Естественно текст всегда разный и могут быть разные вариации линка. Длинные линки должны приведены к нормальной короткой форме, как показано внизу.
Что надо получить:

Text: Osnabrück, Tel: 000000, Fax: 000000,
E-Mail: TEST@TE-TE.Test.com and
test@test.de
Stadt Osnabrück
http://www.test1.de/index3.php">http://www.test1.de and
http://www.test2.de">http://www.test2.de and
http://www.test3.de?variable=vor&variable2=vor">http://www.test3.de and
http://www.test4.de?variable=vor">http://www.test4.de?variable=vor and
http://test5.subdomain.de">http://test5.subdomain.de and
http://test6.de?variable=yes&weiter">http://test6.de
...

Cпасибо.

Cu.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
ну, начинай составлять

Оффлайн Hong

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.hong.de
Вот что то уже нашол но не совсем правильно работает. Первая ошибка с первым имайлом нет пробела, и потом неправильно переводятся 1,2,5,6 линки.

function change_string($str)
{
   $str = trim($str);
    $str = htmlspecialchars($str);
    $str = preg_replace(\'/\\s([^\\s]+\\@[^\\s]+\\.[^\\s]+)\\s/i\',\'$1\',$str);
    $str = preg_replace(\'=([^\\s]*)(http://www.|http://)(([^?]*)[^\\s]*)=\',\'\\\\2\\\\4\',$str);
    return $str;
}


Кто нибудь может исправить.

THX.
Cu.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28