Здравствуйте, такая проблема и не как не могу решать. В столбце(Aboutfilm) базы хранятся такой текст " Год: 2016 Страна: Мексика, Канада, США Жанр: драма, криминал, отечественное, ужасы, мелодрама, приключения Режиссер: Роберт Бин В ролях: Марк, Мари, Пупар, Николь, Анна, Джейн " У меня есть массив с жанрами и ссылками, и хочу чтобы код искал по жанрам, если есть совпадение по словам массива, автоматический сделал ссылку(например так. <a href = "dramy/">драма</a>, <a href = "kriminal/">криминал</a>....) Вот мой код $menu_janr = array(); $menu_janr['melodramy/']='мелодрама'; $menu_janr['istoricheskie-filmy/']='история'; $menu_janr['biograficheskie-filmy/']='биография'; $menu_janr['komedii/']='комедия'; $menu_janr['priklyucheniya/']='приключения'; $menu_janr['kriminal/']='криминал'; $menu_janr['uzhasy/']='ужасы'; $menu_janr['trillery/']='триллер'; $menu_janr['fantastika/']='фантастика'; $menu_janr['vesterny/']='вестерн'; $menu_janr['fehntezi/']='фэнтези'; $menu_janr['boeviki/']='боевик'; $menu_janr['voennye-filmy/']='военный'; $menu_janr['semejnye-filmy/']='семейные'; $menu_janr['detektivy/']='детектив'; $menu_janr['mistika/']='мистика'; $menu_janr['dokumentalnoe-kino/']='документальное'; $menu_janr['sportivnye/']='спорт'; $menu_janr['muzykalnye-filmy/']='музыкальные'; $menu_janr['anime/']='аниме'; $menu_janr['tv-shou/']='тв-шоу'; $menu_janr['dramy/']='драма'; $db = mysql_connect ("localhost", "root", ""); mysql_select_db("nig",$db); $news = mysql_query("SELECT * FROM table1 ORDER BY ID DESC limit 1"); while ($row = mysql_fetch_assoc($news, MYSQL_ASSOC)) { //foreach ($menu_janr as $key => $menulink ) foreach ($menu_janr as $key => $value) { $content = $row['Aboutfilm']; $content = mb_strtolower($content, 'UTF-8'); $arg = $value; $pos = strripos($content, $arg); if ($pos !== false) { $text6.="<a class='linq' href='$key'>$value,</a> "; $content = str_replace($arg, $text6, $content); } } echo $content; } Получаю вот такое жанр: мелодрама,приключения,криминал,ужасы,драма, , криминал, отечественное, ужасы, меломелодрама,приключения,криминал,ужасы,драма, Но должен быть так жанр: мелодрама,приключения,криминал,ужасы,драма, отечественное Поможете разобратся? Спасибо
https://secure.php.net/preg_replace_callback --- Добавлено --- Или даже проще: https://secure.php.net/str_replace, только два массива подготовить
@kikosik Ты смешиваешь перебор масок в массиве и совпадений масок в тексте да еще и в цикле работы с базой, лучше получить все из базы, закрыть соединение и потом обработать данные. Примерно так: PHP: <?php foreach ($content as $row){ foreach ($menu_janr as $key => $value){ str_replace($value, '<a href='.$key.'>'.$value.'</a>', $row)}}
Я не понял что за строка foreach($content as $row). ? Что за переменные? --- Добавлено --- Такую ошибку выдает Invalid argument supplied for foreach() in... Эту строку показывает foreach($contentas$row){