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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Замена ссылок 
:(
    Опции темы
ziga
Дата 22.1.2011, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Есть текст, он грузится из базы и выводится как есть

Код

аывт олавты авы авы 
а выа выа ыва 
ав ыаыв а выа выа ыв

http://newsmusic.ru/news_3_20081.htm 
http://mainpeople.ru/photo/9/Zvezdnoe_prepati_Italia_Ocean_Cup_2010:1/ 
http://www.newsmusic.ru/news_3_19753.htm


как мне эти ссылки привести к такому виду? что бы уже при выводе в HTML они выглядили как ссылки а не как текст?

Код

аывт олавты авы авы 
а выа выа ыва 
ав ыаыв а выа выа ыв

<A href = 'http://newsmusic.ru/news_3_20081.htm'>http://newsmusic.ru</a>
<A href = 'http://mainpeople.ru/photo/9/Zvezdnoe_prepati_Italia_Ocean_Cup_2010:1/ >http://mainpeople.ru</a>
<A href = 'http://www.newsmusic.ru/news_3_19753.htm'>http://www.newsmusic.ru</a>


может уже есть у каво готовое решение?
PM MAIL   Вверх
ziga
Дата 25.1.2011, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Может хоть кто идею подскажет как это реализовать? 
PM MAIL   Вверх
Shogun
Дата 25.1.2011, 13:26 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


сёгун-сан
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 8.6.2006
Где: Кишинёв

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



preg_replace_all


Это сообщение отредактировал(а) Shogun - 25.1.2011, 13:29


--------------------
2b || !2b
PM MAIL ICQ Skype   Вверх
The_Aleksey
Дата 25.1.2011, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


<?php
*


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

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



Цитата

preg_replace_all

Идея правильная, только с all - это preg_match)
А вот реализация:
Код

$search=array(
"/(http:\/\/[a-zA-Z\.\-\/?&_%=0-9]+)/",
"/(https:\/\/[a-zA-Z\.\-\/?&_%=0-9]+)/",
"/(ftp:\/\/[a-zA-Z\.\-\/?&_%=0-9]+)/"
);
$replace=array(
"<a target=\"_blank\" href=\"$1\">$1</a>",            
"<a target=\"_blank\" href=\"$1\">$1</a>",
"<a target=\"_blank\" href=\"$1\">$1</a>"
);
$output=preg_replace($search, $replace, $some_text);


лишнее можно убрать
PM MAIL   Вверх
ziga
Дата 25.1.2011, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



не умею работать с регулярными выражениями подскажите как в условия включить ":desc" ? а то ссылку 

http://dom2.ru/community/rubric/buzproject...order=date:desc не до конца переделал smile
а так же bar/photo/140805#go-photo конец после # не включил

PM MAIL   Вверх
Addmin
Дата 26.1.2011, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Просто PHP вырвало на середине ссылки на Дом-2 smile

Можно сделать простой посимвольный парсер, который начинает заносить в массив значение, как только найдёт "http" и заканчивает на пробеле или символе новой строки "\n".


--------------------
PM MAIL   Вверх
skyboy
Дата 26.1.2011, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(The_Aleksey @  25.1.2011,  15:33 Найти цитируемый пост)
$search=array(
"/(http:\/\/[a-zA-Z\.\-\/?&_%=0-9]+)/",
"/(https:\/\/[a-zA-Z\.\-\/?&_%=0-9]+)/",
"/(ftp:\/\/[a-zA-Z\.\-\/?&_%=0-9]+)/"
);

заменяем
Код

$search = '#(f|ht)tps?://[a-z0-9.,_#%&?+-]+#i';

так читаемее будет smile
между квадратными скобками - список символов, которые твоя логика относит к телу url'a. можно почитать RFC, чтоб знать, какие символы могут быть и в каком порядке(к примеру, доменное имя не начинается с точки), но можно следить за процессом и просто добавлять символы, на которых замена "спотыкается" в этот самый список между квадратными скобками.
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.2272 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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