A PHP Error was encountered

Severity: 8192

Message: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.

Filename: mysql/mysql_driver.php

Line Number: 303

Работа с массивами: explode() - разделяй и властвуй

Работа с массивами: explode() - разделяй и властвуй

Автор: Mowshon.
Опубликовано 29 марта 2012

Просмотров: 2920.
Подписаться на комментарии по RSS.

Работа с массивами: PHP explode()

Работая с массивами нам часто приходится манипулировать данными, делаем из строки массив и наоборот массив превышаем в строку. В текущей статье рассмотрим как можно строку разбить в массив, разбив имеете в веду, что по заданным параметрам содержимое строки разделит по разным ключам и значениям массива. Функция которая возьмет на себя разделение массива будет explode(); а вот implode(); является антонимам emplode(); по принципу работы.

Описание функции explode();

Функция занимается разбиванием строки с помощью указанного разделителя.

explode( $Разделитель, $Строка [, int $Лимит] );

$Разделитель - Переменная String играет роль разделителя, указанное в ней значение (текст или символ) будет обыскивать содержимое переменной $Строка, на наличие в ней аналогичное ему значение. Если в $Строка будет найдены такие же символы какие указаны в $Разделитель то первая часть "До разделителя" будет один элемент массива и "После разделителя" другой элемент массива.

$Строка - Любой текст без ограничения который будет подвергнут поиску на наличие в нем эквивалентного значения разделителя. После нахождения в нем текст будет разбит на разные элементы массива.

$Лимит - Если он задан, разделение строки на элементы массива будет осуществятся только в пределах лимита. Остальной текст который не прошел под ограничение лимитом будет добавлен к последнему значению массива, выводится так же вместе.

Ознакомимся с примером, у нас есть переменная которая хранит в себе название нескольких футбольных команд которые разделены между собой символом " | ", после разделения афишируем пронумерованные команды в окно браузера.

<?php
$FootballTeam = "Реал Мадрид|Барселона|Манчестер Юнайтед|Челси|Милан";
$Teams = explode("|", $FootballTeam);
foreach($Teams as $TeamName) {
	$TeamNumber++;
	echo $TeamNumber.". ".$TeamName."<br />";
}
// Выводим название 1 и 2 команды
echo $Teams[0]."<br />"; // Реал Мадрид
echo $Teams[1]."<br />"; // Барселона
?>

Результат выполнения скрипта:

1. Реал Мадрид
2. Барселона
3. Манчестер Юнайтед
4. Челси
5. Милан
Реал Мадрид
Барселона

Еще один пример который я часто принимаю в своем скрипте добавления новостей, это разделения содержимого статьи на короткую статью и полную статью. Некоторые вводят текст с начало в поле короткой статьи и уже весь текст в одеяльное поле. Всю рутину процесса можно уничтожить при помощью ББ-кода [cut] он добавляется в тот участок текста где нужно осуществить его разделение.

<?php
$FullText = "Текст приведен для примера, тут будет короткая статья которую увидят на главной. [cut] После этого тега следует весь текст статьи который увидит пользователь при нажатии на - Подробнее";
$Text = explode("[cut]", $FullText);
// Выводим короткий текст
echo $Text[0];
// Остальной текст после тега [cut]
echo $Text[1];
?>

Функции удобно использовать в парсингах информации, некоторые веб разработчики вместо того, чтобы создавать отельные столбцы в таблице, кладут всю информацию в одну и разделяют данные пробелом между ними. Чаще всего, в качестве данных участвуют числовые значения. Хочу сразу сказать, что такой метод хранения информации очень плох, не поленитесь и создайте логические имена для полей таблиц и храните в них соответствующие названию значения.

<?php
// Допустим был запрос в базу данных и мы получили
// содержимое информации о пользователе `UserData` в соответвующею переменную
$UserData = "91 2012-03-29 23 1333039451";
$Data = explode(" ", $UserData);
echo "ID пользователя: ".$Data[0]."<br />";
echo "Дата регистрации: ".$Data[1]."<br />";
echo "Возраст: ".$Data[2]."<br />";
echo "Последний вход: ".date("d.m.Y H:i:s", $Data[3])."<br />";
?>
Результат работы скрипта:
ID пользователя: 91
Дата регистрации: 2012-03-29
Возраст: 23
Последний вход: 29.03.2012 19:44:11
Если кокой либо посторонний программист начнет работать с таким видом архитектуры баз данных, он либо перепишет либо обвинит вас в криворукости и будет прав т.к. все данные должны быть распределены по логически названым переменным, полям, массивам.

Оставьте комментарий!

Гость
Комментатор / хотите им стать

Чтобы стать комментатором введите email и пароль. Напишите комментарий. В дальшейшем ваша связка email-пароль, позволит вам комментировать и редактировать свои данные. Не забудьте про активацию (инструкция придет на ящик, указанный при регистрации).

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)