Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Найти и дополнить строку

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Работа со ссылками. Помогите пожалуйста в решении!!!
red_komrad
Отправлено: 02 Октября, 2010 - 00:05:21
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Добрый день! Не могу решить одну задачу, помогите пожалуйста. Суть задачи такова:
Имеется текст. Требуется отыскать в нем все ссылки на mp3 файлы и дополнить их(допустим, поместить в конструкцию вида [this is mp3: http://найденная ссылка])


Есть наброски:

function my_dummy_function($content) {
$pattern = '#<a\s+[^>]*?href=[\'"][^\'"]++(?<=\.mp3)[^>]++>#i';
$content = preg_replace($pattern, '$0[this is mp3]: ', $content);
return $content;
}

Заранее спасибоУлыбка
 
 Top
JustUserR
Отправлено: 02 Октября, 2010 - 01:51:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




red_komrad пишет:
Есть наброски
Приведенная вами функция для произведения поиска и замены заданногого вхождения в строке не может работать для автоматического глобального просмотра в силу ее архитектуры - дело в том что при осуществлении поочередного просмотра значений позиция изначального поиска будет подлежать последовательному сбросу в силу чего необходимая проверка не будет завершена - таким образом применение данной функции возможно для получения модифицированного представления всей полной строки

(Отредактировано автором: 02 Октября, 2010 - 02:30:34)



-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
red_komrad
Отправлено: 02 Октября, 2010 - 01:53:36
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Гм, а как это можно исправить? Я никогда не работал со строками, а потому слегка запутался((
 
 Top
JustUserR
Отправлено: 02 Октября, 2010 - 02:27:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




red_komrad пишет:
Гм, а как это можно исправить?
В используемом ваме шаблоне регулярного выражения не имееются все компоненты необходимые для полной замены вхождений - в частности необходимо примепнение круглых скобок для выделения той части найденного вхождения которое будет представлено в виде обратной ссылки - и также компонента проведения позитивного поиска назад производит поиск условных вхождений но не собствкнное значение в очередную обратную ссылку Кроме того некоторые используемые вхожденияя двойных квантификаторов базового поиска такие как + представлены в дублирующей форме - что в случае отсутствия необходимой группировки не предоставляет необходимую функциональность


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
red_komrad
Отправлено: 02 Октября, 2010 - 02:29:52
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




А можно это отразить в реальном примере?
 
 Top
JustUserR
Отправлено: 02 Октября, 2010 - 02:43:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




red_komrad пишет:
А можно это отразить в реальном примере?
В качестве простого примера регулярного выражения для проведения поиска гиперссылок - возможно использование примерно следующего шаблона
$content = preg_replace("/\<a(.*?)href=([\"']?)http:\/\/(.*?)\\2(.*?)\>(.*?)\<\/a\>/is", '$3 $5[this is mp3]: ', $content);
Вы можете посмотреть дополнительную информацию по вашему вопросу в этой теме http://forum.php.su/topic.php?fo...=4&topic=824 - в ней также произведено описание регулярного выражения для фильтрации гиперссылок определенного типа


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
red_komrad
Отправлено: 02 Октября, 2010 - 03:14:01
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Спасибо большое, действительно ценная информация, но есть вопрос:
где мы определяем что это ссылка на mp3?
 
 Top
JustUserR
Отправлено: 03 Октября, 2010 - 01:29:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




red_komrad пишет:
Спасибо большое, действительно ценная информация, но есть вопрос:
где мы определяем что это ссылка на mp3?
Пожалуйста! Приведенный выше пример регурялного выражения обеспечивает нахождение всех вхождений гиперссылок в предоставляемых текст - для выбора ресурсов с некоторым расширением файла необходимо добавить механихм предварительного просмотра назад который может быть заимствован из вашего оригинального примера - резульрирующее выражение может иметь примерно такой вид
CODE (text):
скопировать код в буфер обмена
  1. $content = preg_replace("/\<a(.*?)href=([\"']?)http:\/\/(.*?)(?<=\.mp3)\\2(.*?)\>(.*?)\<\/a\>/is", '$3 $5[this is mp3]: ', $content);


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB