Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: немогу заменить текст.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
strengerst
Отправлено: 28 Июня, 2012 - 17:59:39
Post Id


Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Всем привет у меня такая ситуация - Есть массив с данными в котором 6 значные цифры типа (738526), а мне нужно из этих цифр зделать так (7385 26); тоесть, поставить пробел после 4го знака перед 5ым. Я пытался делать так:
PHP:
скопировать код в буфер обмена
  1. $masi=array(); str_replace($mas['Modely'], '/[0-9]{4}[\s][0-9]{2}/',$masi);

где $mas['Modely'] - массив с 6значными цыфрами;
условие замены, и $masi - массив с изменнеными данными; естественно это все в цикле.
Что нет почему не заменяет, или как можно зделать иначе (правильнее); Хм
 
 Top
ams
Отправлено: 28 Июня, 2012 - 18:02:44
Post Id



Посетитель


Покинул форум
Сообщений всего: 351
Дата рег-ции: Нояб. 2010  


Помог: 13 раз(а)




 
 Top
strengerst
Отправлено: 28 Июня, 2012 - 18:09:32
Post Id


Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




ams пишет:
http://ua.php.net/manual/en/function.number-format.php



Спасибо счас попробую, а почему мое выражение не работает?
(Добавление)
strengerst пишет:
http://ua.php.net/manual/en/function.number-format.php


да нет эта функция не подходит. По ней из числа 652135 не зделает 6521 35
 
 Top
armancho7777777 Супермодератор
Отправлено: 28 Июня, 2012 - 18:38:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




strengerst пишет:
а почему мое выражение не работает?

Во первых, потому что если используете шаблоны, то для этого надо использовать preg_replace(), а не str_replace(). Во-вторых, шаблон идёт первым значением, вторым - на что заменяете, и третьим - сама строка.

(Отредактировано автором: 28 Июня, 2012 - 18:38:57)

 
 Top
EuGen Администратор
Отправлено: 28 Июня, 2012 - 18:40:20
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




PHP:
скопировать код в буфер обмена
  1. $sData   = '837451';
  2. $sResult = substr($sData, 0, 4).' '.substr($sData, -2, 2);

?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
strengerst
Отправлено: 28 Июня, 2012 - 18:51:46
Post Id


Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




armancho7777777 пишет:
strengerst пишет:
а почему мое выражение не работает?

Во первых, потому что если используете шаблоны, то для этого надо использовать preg_replace(), а не str_replace(). Во-вторых, шаблон идёт первым значением, вторым - на что заменяете, и третьим - сама строка.

Я делал так:
PHP:
скопировать код в буфер обмена
  1. $massive=array();
  2. $massive=preg_replace('/[0-9]{6}/','/[0-9]{4}[\s][0-9]{2}/', $mas['Modely']);

где в $mas['Modely'] - содержит цыфры типа: 786541;

Потом вывожу: - а там не то;
(Добавление)
strengerst пишет:
armancho7777777 пишет:
strengerst пишет:
а почему мое выражение не работает?

Во первых, потому что если используете шаблоны, то для этого надо использовать preg_replace(), а не str_replace(). Во-вторых, шаблон идёт первым значением, вторым - на что заменяете, и третьим - сама строка.

Я делал так:
PHP:
скопировать код в буфер обмена
  1. $massive=array();
  2. $massive=preg_replace('/[0-9]{6}/','/[0-9]{4}[\s][0-9]{2}/', $mas['Modely']);

где в $mas['Modely'] - содержит цыфры типа: 786541;

Потом вывожу:
- а там не то; Естествено это все в цикле. кроме:
 
 Top
armancho7777777 Супермодератор
Отправлено: 28 Июня, 2012 - 18:56:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




strengerst пишет:
$massive=preg_replace('/[0-9]{6}/','/[0-9]{4}[\s][0-9]{2}/', $mas['Modely']);

В этой строке куча ошибок.
У Вас и в первом и во втором передаваемых значениях шаблоны.
PHP:
скопировать код в буфер обмена
  1. echo preg_replace('/([0-9]{4})([0-9]{2})/','$1 $2', '123456');

Ну и Вам EuGen подкинул более оптимальное решение.

(Отредактировано автором: 28 Июня, 2012 - 19:02:14)

 
 Top
strengerst
Отправлено: 28 Июня, 2012 - 18:57:50
Post Id


Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




EuGen пишет:
PHP:
скопировать код в буфер обмена
  1. $sData   = '837451';
  2. $sResult = substr($sData, 0, 4).' '.substr($sData, -2, 2);

?


Круто так работает, спасибо. А почему с регулярными не получилось интересно?
(Добавление)
armancho7777777 пишет:
strengerst пишет:
$massive=preg_replace('/[0-9]{6}/','/[0-9]{4}[\s][0-9]{2}/', $mas['Modely']);

В этой строке куча ошибок.
У Вас и в первом и во втором передаваемых значениях шаблоны, да ещё и не верные в плане синтаксиса: нет ограничителей.
Ну и Вам EuGen подкинул более оптимальное решение.


Наверное вы правы, ну у меня прозьба напишите как правильно, что бы я знал в дальнейшем.
(Добавление)
armancho7777777 пишет:
strengerst пишет:
$massive=preg_replace('/[0-9]{6}/','/[0-9]{4}[\s][0-9]{2}/', $mas['Modely']);

В этой строке куча ошибок.
У Вас и в первом и во втором передаваемых значениях шаблоны, да ещё и не верные в плане синтаксиса: нет ограничителей.
Ну и Вам EuGen подкинул более оптимальное решение.


Напишите как правильно.
 
 Top
armancho7777777 Супермодератор
Отправлено: 28 Июня, 2012 - 19:00:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




strengerst пишет:
Наверное вы правы, ну у меня прозьба напишите как правильно, что бы я знал в дальнейшем.

PHP:
скопировать код в буфер обмена
  1. echo preg_replace('/([0-9]{4})([0-9]{2})/','$1 $2', $mas['Modely']);

(Отредактировано автором: 28 Июня, 2012 - 19:01:19)

 
 Top
strengerst
Отправлено: 28 Июня, 2012 - 19:10:52
Post Id


Частый гость


Покинул форум
Сообщений всего: 172
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




armancho7777777 пишет:
strengerst пишет:
Наверное вы правы, ну у меня прозьба напишите как правильно, что бы я знал в дальнейшем.

PHP:
скопировать код в буфер обмена
  1. echo preg_replace('/([0-9]{4})([0-9]{2})/','$1 $2', $mas['Modely']);



хочу немного уточнить $1 -относиться к данным в ([0-9]{4});
$2 - ([0-9]{2}; по сути мы находим 6значное число и в строке замены просто ставим между ними пробел. Классно спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB