эй,
Я понятия не имею, что я делаю не так.
У меня есть шаблон регулярного выражения, который ищет URL-адрес YouTube внутри или [track = url].
Я возвращаю код для вставки YouTube, если регулярное выражение совпадает. Мне нужно иметь уникальный идентификатор для каждого видео. Я создаю этот идентификатор с помощью простой переменной count внутри моего цикла foreach preg_match_all.
$ uniqueID, который мне нужен для каждого видео, отлично работает. Если у меня есть 3 [track = url] в моем контенте $, я получаю 3 разных идентификатора (player_1, player_2, player_3 и т. Д ...)
Однако ЕДИНСТВЕННАЯ ОСНОВНАЯ ПРОБЛЕМА, которую я имею, состоит в том, что я понятия не имею, как я использую preg_replace в этом случае. Мне нужно вернуть код embedCode для каждого видео с каждым уникальным идентификатором, который я создаю.
<?php
$youtubeUrl = "/(\[TRACK=)((http|https)(\:\/\/)(www|it|co\.uk|ie|br|pl|jp|fr|es|nl|de)(\.youtube\.)(com|it|co\.uk|ie|br|pl|jp|fr|es|nl|de)([a-zA-Z0-9\-\.\/\?_=&;]*))(\])/si";
$search = preg_match_all($youtubeUrl, $content, $matches, PREG_OFFSET_CAPTURE);
$i = 0;
foreach ($matches[8] as $match) {
$watch = $match[0];
//unique id
$uniqueID = "player_" . $i; // player_0, player_1, player_2 ...
//final video url
$video = $uri . $watch;
echo $video . "<br/>"; //correct 3 times different
$content = preg_replace($youtubeUrl, embedCode($video, $uniqueID), $content);
// three times player_0
$i++;
}
//$content = preg_replace($youtubeUrl, embedCode($video, $uniqueID), $content);
// three times player_3
return $content;
?>
Есть идеи, что мне здесь делать? Я беспомощен!
Если я вызываю preg_replace внутри цикла, я трижды получаю код embed_code для player_0, если я вызываю его вне цикла foreach, я получаю три раза player_3.
Что я здесь не так делаю! Большое спасибо за вашу помощь.