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

Как разобрать строку

21.03.2012, 19:04. Показов 3760. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется строка [tag:123456] как можно из неё вырезать число и занестви в переменную? Число может быть любой длинны.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2012, 19:04
Ответы с готовыми решениями:

Разобрать строку в ассоциативный массив
Всем привет! Передаю методом пост 2 переменные, одна из которых имеет вид строки: m_data ...

разобрать строку выведенную в хтмл использовав метку
Здравствуйте. помогите решить задачу: Я в цикле делаю выборку и создаю массив: foreach ($new...

Как разобрать строку?
Text = "Liverpool\r\nMan Utd\r\n12:30 72\r\n4/5 1/1" помогите pls

Как разобрать строку
Здравствуйте. Мне нужно разобрать строки, получить переменные. Однако разделителей несколько...

13
238 / 235 / 43
Регистрация: 16.03.2011
Сообщений: 750
21.03.2012, 19:22 2
PHP
1
2
3
$text='[tag:123456]';
preg_match('@\[tag:(\d+)\]@i',$text, $matches);
echo $matches[1];
1
75 / 75 / 13
Регистрация: 02.02.2012
Сообщений: 462
21.03.2012, 19:23 3
$s = substr('[tag:123456]', 5)
0
0 / 0 / 1
Регистрация: 24.01.2012
Сообщений: 53
21.03.2012, 19:33  [ТС] 4
Цитата Сообщение от r36 Посмотреть сообщение
PHP
1
2
3
$text='[tag:123456]';
preg_match('@\[tag:(\d+)\]@i',$text, $matches);
echo $matches[1];
Спасибо!

Цитата Сообщение от fireridlle Посмотреть сообщение
$s = substr('[tag:123456]', 5)
Длина числа динамична
0
75 / 75 / 13
Регистрация: 02.02.2012
Сообщений: 462
21.03.2012, 20:36 5
ну и что. она вырежет с 5 го символа(точней надо было написать с 4 го) и до конца строки
0
0 / 0 / 1
Регистрация: 24.01.2012
Сообщений: 53
21.03.2012, 20:51  [ТС] 6
Цитата Сообщение от fireridlle Посмотреть сообщение
ну и что. она вырежет с 5 го символа(точней надо было написать с 4 го) и до конца строки
А в конце ещё ']'
PHP
1
2
3
$one = strpos($str, "[tag:");
$two = strpos($str, "]");
$id = substr($str, $one+4, $two-$one-4);
Вот подсмотрел кое где способ, он даже лучше способа товарища r36 т.к. можно вывести не только числовое значение но и строковое.
0
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
22.03.2012, 11:47 7
Цитата Сообщение от ZYX Посмотреть сообщение
т.к. можно вывести не только числовое значение но и строковое.
PHP
1
2
3
$text='[tag:123456]';
preg_match('@\[tag:([\d\w]+)\]@i',$text, $matches);
echo $matches[1];
0
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
22.03.2012, 12:12 8
intval
0
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
22.03.2012, 12:17 9
crautcher, Вы может сначала будете проверять, что выдает скрипт? А выдаст он 0.
0
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
22.03.2012, 18:58 10
Цитата Сообщение от crautcher Посмотреть сообщение
intval
Если будет длинее 10 цифр или больше 231-1 , то получится ровно 231-1.
0
0 / 0 / 1
Регистрация: 24.01.2012
Сообщений: 53
24.03.2012, 13:17  [ТС] 11
А как разобрать несколько строк встречающихся в тексте ? Например
[tag:123456] текст текст [tag:123457] текст текст
0
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
24.03.2012, 13:22 12
preg_replace_callback
1
0 / 0 / 1
Регистрация: 24.01.2012
Сообщений: 53
24.03.2012, 14:15  [ТС] 13
Блин что то сложная функция для понимания, можно код с моим примером?
0
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
24.03.2012, 14:28 14
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
header('Content-type: text/html; charset=utf-8');
 
$text = '[tag:123456] текст текст [tag:123457] текст текст';
 
function matches($matches){
  if( $matches[1] == '123456' ) return '<b>Вот тег</b>';
  elseif( $matches[1] == '123457' ) return '<i>Уау!</i>';
  else return '';
}
 
echo preg_replace_callback('/\[tag:(\d+)\]/', 'matches', $text);
1
24.03.2012, 14:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2012, 14:28
Помогаю со студенческими работами здесь

Как разобрать по частям строку
Доброго всем времени суток! Прошу вашей помощи - ситуация такая есть некий файл с данными очень...

Как правильно разобрать строку на C++?
В программе#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; #include &lt;stdlib.h&gt; #include...

Как разобрать строку с номером телефона?
Привет! Есть номера телеофнов в произвольном виде. то есть они забиты так 8 (982) 900-210-87 -...

Как с помощью istringstream разобрать строку на переменные
у нас есть клас CDateTime, внутри private: string date; и куча прототипов для перегрузки...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru