weranda
@weranda

Как правильно заменить несколько значений переменной в PHP?

Приветствую

Сразу отмечу — в PHP не силен. Пытаюсь заменить значения переменной на нужные, но толком ничего не получается, то одно, то другое.
Что я делал:
// это наши данные
$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;


В итоге значение переменной $content должно по задумке преобразоваться в такое:

$content = '
<p>Первая строка</p>
<p>Вторая строка</p>
<div>ID видео: dlkfghn9odnfvbde&t=644s</div>
<p>Третья строка</p>
<p>Четвертая строка</p>
<div>ID видео: bnviufedyfgbvpo9&t=644s</div>
<p>Пятая строка</p>
';

Но, как видимо, что-то делаю не так.
Помогите пожалуйста разобраться — что не так и как нужно правильно переписать, чтобы заработало.
  • Вопрос задан
  • 376 просмотров
Решения вопроса 1
OKyJIucT
@OKyJIucT
Sunshine reggae
$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);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы