[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нужна помощь с регуляркой
CJ_Junyor
Задача: у нас есть ссылка вида http://lifentco.s3.amazonaws.com/700_Plati...Amino_Acids.flv, надо ее обнаружить и заменить на
<a href=" http://lifentco.s3.amazonaws.com/700_Platinum_Plus_Amino_Acids.flv" style="display:block;width:640px;height:360px;" id="fl_player"> </a>
<script
language="javascript">
flowplayer("fl_player"," .... flowplayer-3.2.7.swf");
</script>


-----------
я пробовал регулярку типа:
#http:\/\/.*?\.flv#is

и использовать при этом preg_replace() ... но что-то не выходит ... подскажите



Спустя 4 минуты, 18 секунд (21.02.2012 - 15:49) Winston написал(а):
Так?
$str = '
http://lifentco.s3.amazonaws.com/700_Platinum_Plus_Amino_Acids.flv
http://lifentco.s3.amazonaws.com/700.flv
'
;
$replace = '<a href="$1" style="display:block;width:640px;height:360px;" id="fl_player">$1</a>';
echo preg_replace('#(http://.*\.flv)#isU', $replace, $str);

Спустя 37 минут, 57 секунд (21.02.2012 - 16:27) CJ_Junyor написал(а):
Спасибо.
А если таких ссылок может быть несколько на странице, и нужно менять номер индекса id="fl_player_01" и т.д. ... тогда как быть?

Мне пока пришло в голову проверить общее количество всех совпадений типа:


preg_match_all("#(http://.*?\.flv)#isU",$content,$matches);

$count=count($matches);

// а потом прогнать в цикле preg_replace
for($i=0;$i<$count;$i++){
$replace = '<a href="$1" style="display:block;width:640px;height:360px;" id="fl_player_'.$i.'">$1</a>';
preg_replace('#(http://.*?\.flv)#isU',$replace,$content,1);

}


Может можно как-то иначе?

Спустя 11 минут, 49 секунд (21.02.2012 - 16:39) Winston написал(а):
Можно так
$str = '
http://lifentco.s3.amazonaws.com/700_Platinum_Plus_Amino_Acids.flv
http://lifentco.s3.amazonaws.com/700.flv
'
;
echo preg_replace_callback('#(http://.*\.flv)#isU', create_function('$item', '
static $i;
return "<a href=
\'$item[1]\' style=\'display:block;width:640px;height:360px;\' id=\'fl_player_" . ++$i ."\'>$item[1]</a>";
'
), $str);

Спустя 2 дня, 19 часов, 37 минут, 39 секунд (24.02.2012 - 12:16) CJ_Junyor написал(а):
Возник вопрос:
при такой регулярке

#(http://.*\.flv)#isU


если на странице идет несколько flv файлов подряд ... то он их захватывает, как переписать эту регулярку так, чтобы можно было обнаруживать каждый такой flv файл по отдельности?

Например:

http://lifentco.s3.amazonaws.com/700.flv
http://lifentco.s3.amazonaws.com/700.flv
http://lifentco.s3.amazonaws.com/700.flv


Спустя 30 минут, 46 секунд (24.02.2012 - 12:47) Winston написал(а):
Цитата (CJ_Junyor @ 24.02.2012 - 11:16)
если на странице идет несколько flv файлов подряд

Что значит подряд? Не отделяясь пробелом?
Так7
http://lifentco.s3.amazonaws.com/700.flvhttp://lifentco.s3.amazonaws.com/700.flv
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.