Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 22.04.2017
Сообщений: 134

Разделение строки

12.08.2019, 18:22. Показов 1656. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, добрые люди. Хочу поделить одну строку с цифрами на много строк.
PHP
1
2
3
4
$get_str_exm = 'DevID:AAAAAAA1;Q:18854;iRR:$11972;Temp:$30.19;xA:$14904;yA:$4308;zA:$5088;xG:$65057;yG:$105;zG:$112;';
$get_str_exm = preg_replace("/[^0-9]/", ' ', $get_str_exm); //1 18854 11972 30 19 14904 4308 5088 65057 105 112 
$pieces = explode(" ", $get_str_exm);
echo $pieces[1];//Хочу получить 18854, но выдаёт пустоту
Кто-нибудь видит ошибку?)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.08.2019, 18:22
Ответы с готовыми решениями:

Разделение строки
Здравствуйте, появился такой вопрос: у меня есть строчка, на пример, "1,12". Мне нужно как то разделить её на 2 части, до запятой и после...

Разделение на строки
Как в генераторе сделать что бы первые 6 чисел были на первой строчке, следующие 6 чисел на второй, следующие 6 чисел на третей и так по...

Разделение текста на строки
Средствами PHP нужно на картинке написать надпись(сделано), но вот если длинна надписи велика, как сделать чтобы она не заходила за границы...

6
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
12.08.2019, 18:48
Лучший ответ Сообщение было отмечено ЕвгенийВащенко как решение

Решение

PHP
1
2
3
4
5
6
$get_str_exm = 'DevID:AAAAAAA1;Q:18854;iRR:$11972;Temp:$30.19;xA:$14904;yA:$4308;zA:$5088;xG:$65057;yG:$105;zG:$112;';
$get_str_exm = preg_replace("/[^0-9]+/", ' ', $get_str_exm); //1 18854 11972 30 19 14904 4308 5088 65057 105 112 
$pieces = explode(" ", $get_str_exm);
$_ = array_values(array_diff($pieces, ['']));
 
echo $_[1]; //18854
Добавлено через 2 минуты
либо
PHP
1
2
$pieces = preg_split("/\s/", $get_str_exm, -1, PREG_SPLIT_NO_EMPTY);
echo $pieces[1]; //18854
0
10 / 8 / 2
Регистрация: 04.01.2017
Сообщений: 36
12.08.2019, 18:55
После preg_replace, у вас много пробелов получается в строке, вот explode и разбивает на большой массив, с многочисленными пустыми значениями. Такая вот особенность php.

PHP
1
2
3
4
$z = "                         a";
$x = " a";
echo $z.'<br>';
echo $x;
0
1 / 1 / 0
Регистрация: 22.04.2017
Сообщений: 134
12.08.2019, 18:58  [ТС]
Пифагор, огромное спасибо. Благодарю за скорую помощь)
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
12.08.2019, 19:02
ЕвгенийВащенко, а зачем обрезать лишнее? Лучше сразу получать из строки необходимые значения:
PHP
1
2
3
4
5
$get_str_exm = 'DevID:AAAAAAA1;Q:18854;iRR:$11972;Temp:$30.19;xA:$14904;yA:$4308;zA:$5088;xG:$65057;yG:$105;zG:$112;';
 
! preg_match_all('~\d+~', $get_str_exm, $pieces) ?: $pieces = $pieces[0];
 
echo $pieces[1] ?? null; // 18854
1
Невнимательный
 Аватар для ft4l
3108 / 1285 / 358
Регистрация: 08.02.2013
Сообщений: 7,547
Записей в блоге: 2
12.08.2019, 19:50
Цитата Сообщение от Строитель Посмотреть сообщение
preg_match_all
preg_split() всё-же как-то быстрее , хоть и совсеем на немножко .)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$get_str_exm = 'DevID:AAAAAAA1;Q:18854;iRR:$11972;Temp:$30.19;xA:$14904;yA:$4308;zA:$5088;xG:$65057;yG:$105;zG:$112;';
#==================================================
 
$TM0 = microtime(1);
for($i=0;$i<50000;$i++) { 
    $pieces = preg_split ('/\D++/', $get_str_exm, -1, PREG_SPLIT_NO_EMPTY);
}
echo '<pre>'. print_r($pieces, 1) .'----------</pre>';
print ' === '. (microtime(1)-$TM0) . '===';
#==================================================
 
 
$TM0 = microtime(1);
for($i=0;$i<50000;$i++) { 
    $pieces = preg_match_all('~\d++~', $get_str_exm, $pieces)? $pieces[0]: [];
}
echo '<pre>'. print_r($pieces, 1) .'----------</pre>';
print ' === '. (microtime(1)-$TM0) . '===';
#==================================================
1
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
12.08.2019, 20:05
Цитата Сообщение от ft4l Посмотреть сообщение
preg_split() всё-же как-то быстрее
Бесспорно )
Но я говорил о другом: суть в том, что бы сразу получать необходимый набор данных, а не вырезать всё лишнее.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.08.2019, 20:05
Помогаю со студенческими работами здесь

Разделение текста на строки
Есть некий набор слов, записанный через запятые, как сделать так , чтобы текст после запятой переходил выводить на новую строку, т.е. как...

Разделение строки по условиям
Есть скрипт вставляющий текст в word, но есть проблема с переносом строк в соседние ячейки. В первой ячейке помещается 57 символов,...

Разделение строки в файле
Вообщем есть PHP &lt;?php $filename = (&quot;test.txt&quot;); $login = $_GET; $password = $_GET; $somecontent = $login. $password; ...

Разделение строки по регулярному выражению
Добрый вечер всем. Пытаюсь разделить строку через reg_split по регулярному выражению. Делится по всем знакам препинания, но не делится...

Разделение строки по N-ому повтору символа
Приветствую, друзья! Всех с наступающим, а у меня такой вопрос: как можно разделить строку на php по N-ому повтору символа, то есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru