|
|
|
| В тексте встречаются даты в виде:
4.01.2008 17:13 > Стрелец
7.01.2008 4:43 > Козерог
9.01.2008 14:13 > Водолей
11.01.2008 21:44 > Рыбы
Можно ли превратить их в десятизначные знаки:
04.01.2008 17:13 > Стрелец
07.01.2008 4:43 > Козерог
09.01.2008 14:13 > Водолей
11.01.2008 21:44 > Рыбы | |
|
|
|
|
|
|
|
для: Владимир55
(05.11.2007 в 21:21)
| | >В тексте встречаются даты в виде:
В готовом тексте или тексте, который Вы же (пользователь) создаете? | |
|
|
|
|
|
|
|
для: ddhvvn
(05.11.2007 в 22:13)
| | В готовом тексте, получаемом извне. | |
|
|
|
|
|
|
|
для: Владимир55
(05.11.2007 в 22:34)
| | =) если в виде массива получить, то можно так сделать.
<?
foreach($TEXT as $res)
{
@list($A) = @explode ('.',$res,2);
if(strlen($A) == 1)
{$res = '0'.$res;}
echo $res.'<br/>';
}
?>
|
| |
|
|
|
|
|
|
|
для: ProtoTeeP
(06.11.2007 в 00:56)
| | Спасибо! | |
|
|
|
|
|
|
|
для: Владимир55
(06.11.2007 в 01:02)
| | по идее рабортает если искать по началам слов "\b"
<?
$string = preg_replace( "#\b(\d\.)#", '0$1', $string );
?>
но не так быстро как если в начале текста добавить перенос строки и искать по \n
<?
$string = preg_replace( "#\n(\d\.)#", '0$1', $string );
|
| |
|
|
|
|
|
|
|
для: exp
(06.11.2007 в 03:04)
| | > по идее рабортает если искать по началам слов "\b"
Но, наверное, затрагивает еще и время..
> но не так быстро как если в начале текста добавить перенос строки и искать по \n
А если текст с МакОС пришел ? :)
Да и перед первой строкой переноса нет.. | |
|
|
|
|
|
|
|
для: kasmanaft
(06.11.2007 в 05:52)
| | С пробелами там нестабильность. Обычным функциями разложил на кусочки и заново собрал - так получилось надежнее всего... | |
|
|
|
|
|
|
|
для: kasmanaft
(06.11.2007 в 05:52)
| | > А если текст с МакОС пришел
тогда наверное в самый раз воспользоваться "m" :) ,
прочитав Ваш ответ в соседней теме
<?
preg_replace( "#^\s*(\d\.)#m", '0$1', $string );
| более-менее шустрое выражение , и пробелы зачистит | |
|
|
|
|
|
|
|
для: Владимир55
(05.11.2007 в 21:21)
| |
<?php
$data = "4.01.2008 17:13 > Стрелец
7.01.2008 4:43 > Козерог
9.01.2008 14:13 > Водолей
11.01.2008 21:44 > Рыбы
1.1.2008 5:4 > просто дата";
function add_zero($m) {
return sprintf("%02d.%02d.%d", $m[1], $m[2], $m[3]);
}
print preg_replace_callback("!(\d{1,2})\.(\d{1,2})\.(\d{4})!", "add_zero", $data);
|
При желании можно добавить ведущий ноль и к времени:
<?
function add_zero($m) { return sprintf("%02d.%02d.%d %02d:%02d", $m[1], $m[2], $m[3], $m[4], m[5]); }
print preg_replace_callback("!(\d{1,2})\.(\d{1,2})\.(\d{4})\s(\d{1,2}):(\d{1,2})!", "add_zero", $data);
|
| |
|
|
|