Как забрать переменные из строки или БД на PHP

Как забрать переменные из строки или БД на PHP многие не могут понять как это нужно делать быстро и правильно. Существует несколько методов, но наиболее распространённый это создание массива прямо из строки по-быстрому. В PHP очень удобно сделано, что в момент создания образования элементов массива образуются номера ключей, это также и касается foreach, for, do… при разборе по ключам. Что удобно. Ключи начинаются с [1] в регулярных выражениях и заканчиваются последним номером вызываемого ключа. И так рассмотрим Задачку N1. У нас каким-то образом есть строка, и нам необходимо брать оттуда значение переменной, строго из одного и того же места. И так, внимание на экран:

$value = «А вот моей маме было бы сейчас 80 лет, ведь она 1932 года рождения…»;

Допустим вам надо брать число 80 и 1932! Всё куда проще, смотрим, как это делать правильно:

if (ereg(«А вот моей маме было бы сейчас (.*) лет, ведь она (.*) года рождения…», $value, $ago))  // Получается, что true!

{   // Вот так мы разбираем строку из элементов массива [1]…. Отчёт начинается с ЕДИНИЦЫ!, а не нуля как обычно!

     $age1 = $ago[1]; // Суда получим: 80

     $age2 = $ago[2]; // Суда получим: 1932

}

echo «Ей уже:».$age1.» («.$age2.» г.р.)»; // Ей уже: 80 (1932 г.р.)

Т.е. мы при помощи регулярного выражения забираем все данные, заключенные в скобках (.*) Теперь эта конструкция будет работать всегда, когда строка одинаковая и в ней будут меняться только цифры в полях со *! Вы можете и сами сделать похожий шаблон. Что очень удобно, когда Вам необходимо разбирать большие объёмы типичной информации, но для этого уже нужно делать свой собственный фильтр. Не имеет разницы, что вы «записываете» в массив число или текст или смешанную информацию. Будет работать — пока в if’е получается true!

Теперь, нам необходимо, вызвать из БД MySQL единственное значение (Ограниченное по LIMIT 1) по полям и записать их в массив, а затем вызвать их по ключам массива. Рассмотрим Задачку N2, тут тоже всё просто. Но тут, отчёт ключей массива начинается с [0] в отличие от функции ereg:

// В БД была первая запись: age1=80 и age2=1932 и прочие…         

$query = mysql_query («SELECT `age1`, `age2`, `name`, `address`, `id`  FROM `mama_tables` WHERE id = 1  LIMIT 1»);
         $ago = mysql_fetch_row($query);  // Делаем массив с элементами, автоматически соответствующего каждому из полей. Вывод начинается с НУЛЕВОГО ключа

         $age1 = $ago[0];       // Суда получим: 80
         $age2 = $ago[1];       // Суда получим: 1932

// $name = $ago[2];       // … и т.п…

echo «Ей уже:».$age1.» («.$age2.» г.р.)»; // Ей уже: 80 (1932 г.р.)

Видите, получилось всё просто. Теперь мы можем не только забирать переменные из строки на php, но и забирать их из Базы Данных, при этом сразу сортируя их по ключам массива. Что очень удобно для автоматической обработки данных, если скажем вам нужно обрабатывать каталогизированную информацию и сразу хранить всё по-полочкам. Без лишних заморочек с регулярными выражениями, от который собственно бывает взрывается мозг. Я сам когда-то путался, но стоит понять пару правил — как всё сразу начинает работать в php! В следующий раз мы тоже поговорим о небольших хитростях на php! Удачи.