<?php
function get_video() {
$stripper = "Content...[video=1], content...content...[video=2],
content...content...content...[video=1], no more...";
preg_match_all("/\[video=(.+?)\]/smi", $stripper, $search);
$unique = array_unique($search[0]);
$total = count($unique);
for($i=0; $i < $total; $i++)
{
$vid = $search[1][$i];
if ($vid > 0)
{
$random_numbers = rand(1, 1000);
$video_id = $vid."_".$random_numbers;
$stripper = str_replace($search[0][$i], $video_id, $stripper);
}
}
return $stripper;
}
echo get_video();
?>
Je veux supprimer les doublons [video = 1] dans stripper $, c'est le résultat que j'ai besoin:Retirez correspondance double de chaîne par expression régulière
Content...1_195, content...content...2_963,
content...content...content..., no more...
J'utilise la fonction array_unique() pour supprime le tableau en double. De mon code ci-dessus, si je print_r (unique $), le tableau en double a été supprimé:
Array ([0] => [video=1] [1] => [video=2])
Mais si je fais l'écho get_video(), le double [video = 1] existent encore:
Content...1_195, content...content...2_963,
content...content...content...1_195([video=1]), no more...
Je n'arrive pas à comprendre pourquoi !!! :(
Demo: http://eval.in/7178
Parfait! Merci! – richard