Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Знакомство с preg_replace

Сообщения:  [1-10]   [11-20] 

 
 автор: AcidTrash(кафе)   (17.06.2009 в 13:26)
 
   для: Keyses   (13.06.2009 в 19:36)
 

preg_replace('/^(\d{1}:)([1-5]{1,2})/', '0\\1\\2', $_POST['time_in_h'])

  Ответить  
 
 автор: vadimka   (17.06.2009 в 11:58)   письмо автору
 
   для: Keyses   (14.06.2009 в 08:50)
 

убитая тема, надо делать новую, а так?

$_POST['time_in_h']='1:13';
$f=preg_replace("|(^[0-9])(:)([0-9]{2})$|e", "sprintf('%02d', $1).'$2$3'", $_POST['time_in_h']);
echo $f;

  Ответить  
 
 автор: Keyses   (14.06.2009 в 08:50)   письмо автору
 
   для: vadimka   (13.06.2009 в 23:21)
 

Немного не то, регулярка составлена не верно для минут, там обязательно должен быть ведущий нуль. или же его тоже требуется подствлять.
А просто preg_replace() тут никак не обойтись разве?

  Ответить  
 
 автор: vadimka   (13.06.2009 в 23:21)   письмо автору
 
   для: Keyses   (13.06.2009 в 19:36)
 

как запасной вариант(изврат, конечно)

<?
$_POST
['time_in_h']="1:13";
(
ereg ("([0-9]):([0-9]{1,2})"$_POST['time_in_h'], $regs));
$a=sprintf("%02d"$regs[1]);
echo 
$a.":".$regs[2];
?>

но, в первом приближении работает:)

  Ответить  
 
 автор: Keyses   (13.06.2009 в 19:36)   письмо автору
 
   для: Владимир55   (27.03.2009 в 14:34)
 

Подскажите как составить выражение для преобразования 1:13 => 01:13

Делал так, но не работает:

<?php
preg_replace
('/^(\d{1})[:]([1-5]{1})(\d{1})/''0\\1'$_POST['time_in_h'])
?>

  Ответить  
 
 автор: ddhvvn   (27.03.2009 в 19:29)   письмо автору
 
   для: Владимир55   (27.03.2009 в 19:07)
 

да нет =))
я про само "название", выданное Никитой )
Было бы лучше сказать "ограничение".
Вот эти "символы, стоящие по краям" задают границы регулярного выражения.

  Ответить  
 
 автор: Владимир55   (27.03.2009 в 19:07)   письмо автору
 
   для: ddhvvn   (27.03.2009 в 18:42)
 

Не могли бы Вы пояснить, что именно является "извращением" и как делается более корректно?

  Ответить  
 
 автор: ddhvvn   (27.03.2009 в 18:42)   письмо автору
 
   для: nikita2206   (27.03.2009 в 15:45)
 

Да с этим "округлением" Вы, конечно, постарались - еще то извращение =)

  Ответить  
 
 автор: Владимир55   (27.03.2009 в 17:55)   письмо автору
 
   для: nikita2206   (27.03.2009 в 17:07)
 

ОК!

  Ответить  
 
 автор: nikita2206   (27.03.2009 в 17:07)   письмо автору
 
   для: Владимир55   (27.03.2009 в 17:04)
 

отвечу кратко:
<?
$var 
'Видимо, для удаления ? лучше использовать строковую функцию. Так?';
$var preg_replace('|\?|'NULL$var); // но намного быстрее будет использовоние str_replace

  Ответить  

Сообщения:  [1-10]   [11-20] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования