<MyRusakov.ru />

WordPress 6 с Нуля до Гуру

WordPress 6 с Нуля до Гуру

Этот курс научит Вас созданию самых разных сайтов на самой популярной в мире CMS - WordPress. Вы увидите установку и настройку локального сервера, разбор каждой настройки, каждой кнопки и каждого пункта меню в панели WordPress.

Также Вы получите и всю практику, поскольку прямо в курсе с нуля создаётся полноценный Интернет-магазин, который затем публикуется в Интернете. И всё это прямо на Ваших глазах.

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

И, наконец, к курсу идёт ценнейший Бонус по тому, как используя ChatGPT и создавая контент для сайта, можно выйти на пассивный доход. Вы наглядно увидите, как зарегистрироваться в ChatGPT (в том числе, и если Вы из России), как правильно выбрать тему для сайта, как правильно генерировать статьи для него(чтобы они индексировались поисковыми системами) и как правильно монетизировать трафик на сайте.

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

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

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

Подписавшись по 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, например. Это не так сложно как может показаться на первый взгляд, да и по ссылке выше уже фактически готовое решение.

Ответить

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