2013-04-14 1 views
-2

У меня есть строка, такие какКак получить доступ к определенной части строки и заменить его после обработки в PHP

$text_string = 'Every thing must be done in time. So,It is not a good thing to be 
       so late. What are the Rules of This Process are prominent in this 
       video [VIDEO]http://www.youtube.com/watch?v=yseAuiSl[/VIDEO]. So, 
       It will be more sensible if you watch a tutorial here 
       [VIDEO]http://www.dailymotion.com/video/xyxmu6_underwater[/VIDEO] 
       It is much more explanatory. These are the Rules of Thumb.' 

Мне нужно, чтобы каждый [VIDEO] .... [/VIDEO], а затем передать его в функцию (я создал что функция на моем собственном), который преобразует его в соответствии код встраивания, например

[VIDEO]http://www.youtube.com/watch?v=yseAuiSl[/VIDEO] 

будет преобразована в

<iframe width="680" height="450" src="http://www.youtube.com/embed/yseAuiSl" 
frameborder="0" allowfullscreen></iframe> 

Затем мне нужно заменить [VIDEO] .... [/VIDEO] кодом вставки. Итак, как я могу прокрутить всю строку и получить каждый тег [VIDEO] ... [/VIDEO] один за другим, а после обработки замените его кодом вставки?

+0

'preg_replace();' ?? – egig

+0

@Charlie, который предназначен только для замены, но сначала мне нужно получить весь тег VIDEO, обработать его через функцию, а затем заменить его своим выходом. Итак, как я могу вытащить каждый тег VIDEO из строки? –

+0

использовать 'preg_match()' -> processing -> 'preg_replace()'. удачи ! – egig

ответ

1

После того, как вы потратили много времени и с помощью парней Stackoverflow, у меня есть решение.

$text_string = 'Every thing must be done in time. So,It is not a good thing to be 
       so late. What are the Rules of This Process are prominent in this 
       video [VIDEO]http://www.youtube.com/watch?v=yseAuiSl[/VIDEO]. So, 
       It will be more sensible if you watch a tutorial here 
       [VIDEO]http://www.dailymotion.com/video/xyxmu6_underwater[/VIDEO] 
       It is much more explanatory. These are the Rules of Thumb.' 

Вот функция, которая будет преобразовывать свою ссылку вставлять код

function convert_to_embed($matches) { 
    $link = $matches[1]; 

    // All the Function Process 

    return $embed; 
} 

Здесь я использую preg_replace_callback функцию, которая будет обрабатывать каждый из VIDEO тега по одному и функция преобразует и заменить тег VIDEO с кодом вставки.

$finalized_string = preg_replace_callback('/\[VIDEO\](.+?)\[\/VIDEO\]/i', "convert_to_embed", $text_string); 
1
echo preg_replace('/\[VIDEO\](.+?)\[\/VIDEO\]/i', '<iframe width="680" height="450" src="\\1" frameborder="0" allowfullscreen></iframe>', $text_string); 
+0

Хотя, мне нужно обработать ссылку между тегами VIDEO, но у меня появилась идея с вашего preg_replace. Я собираюсь использовать preg_replace_callback. Спасибо за REGEX. –

0

в моей идее: Вы будете нуждаться, чтобы перебирать слова и найти начальные и конечные позиции VIDEO; некоторый код:

$text_string = 'Every thing must be done in time. So,It is not a good thing to be 
       so late. What are the Rules of This Process are prominent in this 
       video [VIDEO]http://www.youtube.com/watch?v=yseAuiSl[/VIDEO]. So, 
       It will be more sensible if you watch a tutorial here 
       [VIDEO]http://www.dailymotion.com/video/xyxmu6_underwater[/VIDEO] 
       It is much more explanatory. These are the Rules of Thumb.' 

$start = '[VIDEO]'; 
$end = '[/VIDEO]'; 
$words_array = explode(' ',$text_string); 
$words = array_flip($words_array); 

//Then you can check for video element with: 
$word_pos = 0; 
foreach($words as $the_word){ 
$word_pos++; 
if ($the_word == $start){ 
$start_point = $word_pos; 
} 

if ($the_word == $end){ 
$end_point = $word_pos; 
} 
} 
$video_link = echo substr($text_string,$start_point,$end_point); 

код только разделить понятие я получил за это ..!

Смежные вопросы