<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Разбиение и объединение строк в PHP

Разбиение и объединение строк в PHP

Иногда бывает нужно разбить одну строку на несколько строк и отправить их в массив. Очень часто такое бывает нужно, когда мы получили набор входных данных в виде одной строки, разделённых, например, пробелами. Более редко (по крайней мере, в моей практике), но тоже используется обратная операция - объединение строк в PHP. Давайте обсудим эти две задачи более подробно.

Для разбиения строки на элементы используется функция explode(), которая принимает два параметра: строку, которую необходимо разбить и разделитель. Рассмотрим функцию explode() сразу на примере:

<?php
  $arr = explode("/", "Lexus/Smirnov/40");
  print_r($arr);
?>

В данном примере, мы создаём массив, элементами которого становятся "Lexus", "Smirnov", "40". То есть мы, учитывая разделитель "/", разбили эту строку на несколько и записали их в массив. Существует так же и операция разбиение строки на элементы и мгновенная запись их в переменные:

<?php
  list($car, $owner, $age) = explode("/", "Lexus/Smirnov/40");
  echo $car."<br />";
  echo $owner."<br />";
  echo $age."<br />";
?>

То есть в данном примере, мы создали три переменные, в каждую из которых записали соответствующее значение.

Теперь о применении данной функции. В своё время я реализовывал задачу поиска по сайту. И мне нужно было сформировать из GET-запроса, полученного из формы, запрос к базе данных, чтобы извлечь оттуда подходящие записи. Проблема была в том, что ведь могут искать несколько слов сразу, например, "создать сайт быстро". И нужно вывести все материалы со словами "создать", либо "сайт", либо "быстро". И мне приходилось использовать функцию explode(), а в качестве разделителя брался пробел. А уже затем я формировал запрос к базе данных (разумеется, с количеством OR зависящем от количества слов, либо AND, если пользователь потребовал вхождение всех слов) и извлекал подходящие записи из таблицы базы данных. Вообще, задача была на порядок тяжелее, но тут я привёл Вам её кусок, чтобы Вы поняли, что бывают ситуации, когда без этой функции очень трудно работать.

Для объединения строк в PHP имеется функция implode(), которая принимает тоже два параметра: разделитель и массив:

<?php
  $arr = array(15, 10, 1985);
  $str = implode(".", $arr);
  echo $str;
?>

В результате получится строка: "15.10.1985". Думаю, что здесь всё прозрачно.

Скажу честно, я не помню, когда эту функцию использовал (может быть, вообще не использовал), но применение для неё определённо имеется. Например, первое, что приходит в голову - это получить несколько значений, соответствующих, дню рождения пользователя. И чтобы вывести его день рождения в любом формате, можно с помощью функции implode() тут же преобразовать полученные значения в строку (с любым разделителем) и дальше уже выводить только строку, а не соединять каждый раз все значения.

Вот и всё, что касается разбиения и объединения строк в PHP.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (19):

BageN BageN 13.10.2011 14:26:40

в функции explode('http://myrusakov.ru/', "Lexus/Smirnov/40"); вместо знака / отображет ссылку на твой сайт.

Ответить

Admin Admin 14.10.2011 16:00:15

Спасибо большое! Уже подправил.

Ответить

kashirinav kashirinav 20.06.2012 15:17:46

Михаил, добрый день! Не могу разобраться с проверкой данных. Есть два массива данных, которые получены с помощью метода "explode", введенных через "/". Выполняю проверку - количество элементов в 1 массиве должно быть равно количеству элементов во 2-ом массиве "if (count($hum1)!=count($indicator1)) {echo "Проверьте правильность вводимых данных. Количество подразделений должно быть равно количеству показателей.";} else { основной алгоритм". Получается следующая ситуация: если я ввожу в 1 массив 13/15/17/18, а во второй 99/98/96/, то выполняется основной алгоритм с ошибкой по 4 элементу. Если же во 2-ой массив ввожу 99/98/96, то выходит сообщение об ошибке заложенное в программе. Разница в одном "/". Значит если я ввел "/", но не ввел сам показатель, то php присваивает ему 0? Или как? Как правильно проверять в данном случае? Спасибо!

Ответить

Admin Admin 20.06.2012 15:21:14

Надо проверять не количество, а сами элементы. А слеш действительно добавит новый элемент, который будет пустой строкой.

Ответить

kashirinav kashirinav 20.06.2012 16:26:17

Я правильно понимаю, что нужно в цикле for перебирать все элементы и функцией isset проверять их наличие? А как же мне проверить их общее количество? Соответствие количества главнее.

Ответить

Admin Admin 20.06.2012 16:56:11

Не isset(), а просто значение. И да, через цикл.

Ответить

kashirinav kashirinav 25.06.2012 18:21:40

Михаил, добрый день! Я правильно вас понял if ($hum1[$i]== 0)?

Ответить

Admin Admin 25.06.2012 18:26:25

Да, правильно.

Ответить

kashirinav kashirinav 26.06.2012 16:45:03

Михаил, спасибо! Все получилось! Подскажите, каким образом можно передать информацию из php в html? Читать ваши уроки по порядку не получается (много забывается сразу), поэтому изучаю php по мере решения задач. Спасибо!

Ответить

Admin Admin 26.06.2012 17:26:14

<?php echo "Вывести в HTML";?> А для закрепления материала нужно выполнять упражнения, а просто читать - толку точно не будет.

Ответить

kashirinav kashirinav 26.06.2012 17:56:35

Ну так я и выполняю упражнения, только свои. У вас на сайте, к сожалению, не нашел упражнений. Или я чего то не увидел?

Ответить

Admin Admin 26.06.2012 18:41:15

На сайте упражнений нет, они есть в этом курсе: http://srs.myrusakov.ru/kurs

Ответить

malina95 malina95 05.10.2012 21:37:41

А мне кажется это хорошая идея сделать на сайте тесты для новичков примерно такие же как в курсе...почему вы не отреогировали?

Ответить

kashirinav kashirinav 24.07.2012 16:03:16

Михаил, добрый день! Я немного неправильно сформулировал свой вопрос. Есть форма, которая передает данные в php. Там данные обрабатываются и выводятся на форму html. Мне нужно совместить две формы html в одну. Т.е. сверху ввожу, нажимаю "рассчитать" и снизу получаю ответ. Как передать информацию из php в ту же форму, из которой взяты первичные данные.

Ответить

Admin Admin 24.07.2012 16:43:20

Раз хотите чтобы Вам именно в html выводилось, можете использовать javascript http://myrusakov.ru/javascript-post.html

Ответить

kashirinav kashirinav 24.07.2012 16:47:10

А какие еще есть варианты? У меня блог на WP. Есть страничка, в которой поля для ввода данных. Есть возможность для вывода прямо на страницу?

Ответить

Admin Admin 24.07.2012 23:28:35

Вы и html всё хотите оставить, и с javascript не хотите связываться? Ну уж извитите, таких простых решений не бывает.

Ответить

kashirinav kashirinav 25.07.2012 13:52:01

Михаил, при чем тут "не хотите связываться"? Я просто узнаю у вас все возможные варианты. Вы специалист, я новичок. Мне кажется это нормально, когда человек интересуется всеми возможными вариантами! И никто не ждет готовых решений! Если не хотите отвечать, так не отвечайте. А уж если, сделали возможность задавать вопросы, то тогда отвечайте без сарказма. Это же диалог! Зачем же показывать свое превосходство?!

Ответить

Admin Admin 25.07.2012 16:54:58

Извиняюсь, если прозвучало грубо. Просто вопрос странный - html по определению преставляет собой статику, тут ничего не поделать. А лучше воспользоваться javascript, например. Это не так сложно как может показаться на первый взгляд, да и по ссылке выше уже фактически готовое решение.

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.