Добрый день уважаемые форумчане. Помогите пожалуйста новичку с реализацией вывода слов в зависимости от символов, которые содержатся в переменной. Требуется написать php условие с регуляркой. Пример. Выводится переменная из базы данных $hotel. Допустим значение переменной равно $hotel = "Crowne Plaza Darwin 5*"; Требуется условие, что если на конце отеля стоит "5*" в выводимом тексте на странице вида ( $hotel . " " .$a ) переменная $a заменялась на слово "пять звезд", если на конце стоит "4*", то переменная $a заменялась на слово "четыре звезды", если "3*" то "три звезды", если "2*" то "две звезды", если "1*" то "одна звезда". Тогда в данном примере строчка будет иметь вид "Crowne Plaza Darwin 5* пять звезд ". То есть значение слова в переменной $a зависело от звездности отеля, выводимого в таком виде "5*" на конце названия каждого отеля. Помогите пожалуйста, если не сложно. Очень требуется для работы - просто горю. Заранее спасибо вам всем за ответы. Удачи всем. С уважением к вам, Денис
можно без регулярки... =) я просто плохо знаю регулярки. Код (PHP): $h = "Crowne Plaza Darwin 5*"; $replace = array( '1*' => '*1 Одна звезда', '2*' => '*2 Две звезды', '3*' => '*3 Три звезды', '4*' => '*4 Четыре звезды', '5*' => '*5 Пять звезд' ); echo str_replace(array_keys($replace), $replace, $h);
спасибо вам большое igordata сейчас правда выводится в таком виде "Crowne Plaza Darwin *5 Пять звезд" помогите еще разграничить, чтобы к примеру можно было звездность выводить отдельно для отеля ? Например для получения предложения вида: Отель Crowne Plaza Darwin *5 находится рядом с морем. У него пять звезд. Спасибо вам большое что откликнулись и удачи.
дык такое задание было =) я регулярки не знаю. я бы тут регулярку сделал бы. Добавлено спустя 8 минут 45 секунд: Код (PHP): $replace = array( '1' => 'Одна звезда', '2' => 'Две звезды', '3' => 'Три звезды', '4' => 'Четыре звезды', '5' => 'Пять звезд' ); $h = "Crowne Plaza Darwin 5*"; $matches = array(); if (preg_match('/(\d+)\*/', $h, $matches)) { echo $h . ' ' . $replace[$matches[1]]; }
Огромное спасибо igordata дружище. Классно получилось - а говоришь регулярки не знаешь. скромничаешь )
=) ну дык девять минут почти убил, пример пришлось глянуть. Я это за знание не считаю сложную регулярку вобще не напишу. не знаю. не идут они у меня.