Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Поиск ссылки в тексте, Поиск ссылки в тексте
dron4ik  
 ۩     Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1704
Пользователь №: 31058
На форуме: 13 лет, 2 месяца, 9 дней
Карма: 24




Я новичок, дошел до регулярных выражений, в частности поиск и замена в тексте!
Суть такая, есть Пост текст и пытаюсь сделать все внутреннее ссылки обрамлены тегом А
$text = $_POST['text'];
$text =preg_replace("/(http:\/\/[^\s]+)/", "<a href='$1' target='_blank'>$1</a>",$text );
Все до чего я дошел)))
Было бы интересно чтоб не только в ссылку, а если ссылка на картинку, то вместо тега А бил ИМГ, Может ктото знает как такое сделать? Мне чисто для обучения))) В гугле толкового не нашел, но вполне возможно что не то искал)))


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9630
Пользователь №: 26630
На форуме: 14 лет, 17 дней
Карма: 664




Цитата (dron4ik @ 10.01.2012 - 22:22)
Было бы интересно чтоб не только в ссылку, а если ссылка на картинку, то вместо тега А бил ИМ

А как ты узнаешь на что ссылается ссылка?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
dron4ik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1704
Пользователь №: 31058
На форуме: 13 лет, 2 месяца, 9 дней
Карма: 24




По окончанию... если ссылка на картинку то по любому будет окончание .jpg .png .JPG .jpeg ну как там, и тому подобное))) Но Как такую проверку организовать, или отдельно нужно писать проверку? а ссылки на страницы сайтов, или .php .html ну или вообще никакой)


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9630
Пользователь №: 26630
На форуме: 14 лет, 17 дней
Карма: 664




Цитата (dron4ik @ 10.01.2012 - 22:30)
По окончанию... если ссылка на картинку то по любому будет окончание .jpg .png .JPG .jpeg ну как там,

Переделай регулярку чтоб ловила расширения файлов.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
dron4ik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1704
Пользователь №: 31058
На форуме: 13 лет, 2 месяца, 9 дней
Карма: 24




Текст нужно будет два раза пропустить через preg_replace?
или возможно вписать условие какой тег подставлять?


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9630
Пользователь №: 26630
На форуме: 14 лет, 17 дней
Карма: 664




Цитата (dron4ik @ 10.01.2012 - 22:36)
Текст нужно будет два раза пропустить через preg_replace?
или возможно вписать условие какой тег подставлять?

можно использовать preg_replace_callback
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9630
Пользователь №: 26630
На форуме: 14 лет, 17 дней
Карма: 664




dron4ik
держи
$text = 'text http://static.php.net/www.php.net/images/php_snow_2008.gif  
alll
http://www.php.net/manual/ru/function.preg-replace-callback.php
text
'
;
$text = preg_replace_callback(
'#https?://[a-z\d\._/~%-]+(?:\.(jpe?g|png|gif))?(?:\s|$)#isU',
create_function('$m', '
if(!empty($m[1]))
return
\'<img src="\'.$m[0].\'" alt="pic" />\';
else
return
\'<a href="\'.$m[0].\'">\'.$m[0].\'</a>\';
'
),
$text
);
echo '<pre>'.htmlspecialchars($text).'</pre>';
echo $text;
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
dron4ik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1704
Пользователь №: 31058
На форуме: 13 лет, 2 месяца, 9 дней
Карма: 24




Я Пока гуглил за меня все сделали))) Спасибо))) Проверил) Простые ссылки работают на ура) но вод к примеру http://vkontakte.ru/feed?section=comments уже не срабатывает, из-за окончания))) Но это я уже сам добью) Спасибо) biggrin.gif


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9630
Пользователь №: 26630
На форуме: 14 лет, 17 дней
Карма: 664




Цитата (dron4ik @ 10.01.2012 - 23:37)
уже не срабатывает, из-за окончания))

Нет, я там в регулярке упустил знак "=", "?" и "&". Исправь
'#https?://[a-z\d\._/~%\?&=-]+(?:\.(jpe?g|png|gif))?(?:\s|$)#isU'
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
dron4ik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1704
Пользователь №: 31058
На форуме: 13 лет, 2 месяца, 9 дней
Карма: 24




Я в самый конец добавил /? потому что ссылки кончающийся на слеш он не видел! Это правильно?)


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 15 лет, 8 месяцев, 26 дней
Карма: 552




Цитата (dron4ik @ 11.01.2012 - 00:55)
Это правильно?)

Угу.
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
dron4ik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1704
Пользователь №: 31058
На форуме: 13 лет, 2 месяца, 9 дней
Карма: 24




Спасибо за помощь))) Теперь буду раскуривать как это сделано, и как можно улучшить и модернизировать)))


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 15 лет, 8 месяцев, 26 дней
Карма: 552




Цитата (dron4ik @ 11.01.2012 - 01:53)
как можно улучшить и модернизировать

Можно сократить на несколько символов :)
'#https?://[\w./~%?&=-]+(?:\.(jpe?g|png|gif))?(?:\s|$)#isU'
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9630
Пользователь №: 26630
На форуме: 14 лет, 17 дней
Карма: 664




Цитата (dron4ik @ 11.01.2012 - 00:55)
Я в самый конец добавил /? потому что ссылки кончающийся на слеш он не видел! Это правильно?)

Не может быть. Покажи пример ссылки.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
dron4ik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1704
Пользователь №: 31058
На форуме: 13 лет, 2 месяца, 9 дней
Карма: 24




Нынче все нормально! Но вод ссылка "http://vkontakte.ru/")


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса