W
W
weranda2018-02-04 13:03:51
PHP
weranda, 2018-02-04 13:03:51

How to correctly replace multiple values ​​of a variable in PHP?

Greetings
I’ll note right away that I’m not strong in PHP. I'm trying to replace the values ​​​​of the variable with the necessary ones, but nothing really works, then one thing, then another.
What I did:

// это наши данные
$content = '
<p>Первая строка</p>
<p>Вторая строка</p>
ВИДЕО:https://www.youtube.com/watch?v=dlkfghn9odnfvbde&t=644s
<p>Третья строка</p>
<p>Четвертая строка</p>
ВИДЕО:https://www.youtube.com/watch?v=bnviufedyfgbvpo9&t=644s
<p>Пятая строка</p>
';

// ищум подстроку / строку
$find = '/ВИДЕО:.*/';

// получаем массив с найденными элементами
preg_match_all($find, $content, $videos);

// перебираем элементы массива и ищем совпадения > меняем
foreach ($videos[0] as $line){

    // делим строку по разделителю
    $video_url = explode("watch?v=", $line);

    // формируем нужный вид (для замены строки)
    $video_content = '<div>ID видео: ' . $video_url[1] . '</div>';

    // меняем найденное совпадение на нужноен
    $content = preg_replace($line, $video_content, $content);

}
echo $content;

As a result, the value of the $content variable should, as planned, be transformed into this:
$content = '
<p>Первая строка</p>
<p>Вторая строка</p>
<div>ID видео: dlkfghn9odnfvbde&t=644s</div>
<p>Третья строка</p>
<p>Четвертая строка</p>
<div>ID видео: bnviufedyfgbvpo9&t=644s</div>
<p>Пятая строка</p>
';

But it looks like I'm doing something wrong.
Please help me figure out what is wrong and how to rewrite it correctly to make it work.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
O
OKyJIucT, 2018-02-04
@weranda

$content = '
<p>Первая строка</p>
<p>Вторая строка</p>
ВИДЕО:https://www.youtube.com/watch?v=dlkfghn9odnfvbde&t=644s
<p>Третья строка</p>
<p>Четвертая строка</p>
ВИДЕО:https://www.youtube.com/watch?v=bnviufedyfgbvpo9&t=644s
<p>Пятая строка</p>
';

$content = str_replace('ВИДЕО:https://www.youtube.com/watch?v=', 'ID видео: ', $content);

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question