У меня есть поле, которое в этом форматеполучать только определенные данные из таблицы
5551112391^HUMAN^HUMAN-800-800^6-main^^
Как бы я только захватить число 5551112391
перед символом ^
?
Вы бы сделали это с регулярным выражением?
У меня есть поле, которое в этом форматеполучать только определенные данные из таблицы
5551112391^HUMAN^HUMAN-800-800^6-main^^
Как бы я только захватить число 5551112391
перед символом ^
?
Вы бы сделали это с регулярным выражением?
Вы можете использовать взрываются:
$var = '5551112391^HUMAN^HUMAN-800-800^6-main^^';
$arr = explode('^',$var);
$num = $arr[0];
Использование регулярных выражений:
$var = '5551112391^HUMAN^HUMAN-800-800^6-main^^';
if(preg_match('/^(\d+)/',trim($var),$m)){
$num = $m[1];
}
Вы делаете это в совершенно неправильно.
Вы обрабатываете базу данных mysql как текстовый файл. Но это не так.
Чтобы получить только определенные данные из таблицы, вы не должны выбрать все строки, а затем сравнить один за другим, но сделать базу данных сделать это для вас:
SELECT * FROM таблицы WHERE число = 5551112391
Это не мой выбор. Номер хранится в поле userdata вместе со всей этой другой информацией, поэтому я должен сделать это таким образом. –
Это не оправдание, @zx попытаться научиться использовать базу данных немного. Мы сохраняем данные пользователя в наших таблицах. ничего плохого в нормализации его также –
Я не кодировал эту часть, это звездочка делает это. Я просто работаю с данными, данными мне :) –
Regex overkill, nice ...
Как насчет простого приведения в int? Будет работать отлично, если номер находится в начале данных. И, безусловно, быстрее, чем регулярные выражения ...
$var = '5551112391^HUMAN^HUMAN-800-800^6-main^^';
$num = (int)$var;
http://www.php.net/manual/en/language.types.type-juggling.php
Именно то, что я искал .. Спасибо! –
Как я могу использовать это «главное»? –