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

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

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

 

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

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

тема: Регулярные выражения - изменение текста по условию

Сообщения:  [1-9] 

 
 автор: mr Bin   (22.05.2007 в 15:01)   письмо автору
 
   для: Саня   (21.05.2007 в 09:16)
 

Саня, спасибо большое.

   
 
 автор: Саня   (21.05.2007 в 09:16)   письмо автору
 
   для: mr Bin   (21.05.2007 в 04:04)
 

<?
$text 
"5:40 Текст 1  
6:04 Бла бла бла   
7:45 Текст 2  
10:28 Текст 5"
;
$lines explode("\n"$text);
for ( 
$i 0$expld = array(); $i count($lines); $i++ ) {
  
$expld[] = explode(" "trim($lines[$i]), 2);
}
print_r($expld);

   
 
 автор: mr Bin   (21.05.2007 в 04:04)   письмо автору
 
   для: smit272   (18.05.2007 в 21:30)
 

Не стал создавтаь новую тему, надеюсь тут ответят:
А как разобрать эти символы?

5:40 Текст 1 
6:04 Бла бла бла  
7:45 Текст 2 
10:28 Текст 5


Чтобы можно было отделить время от текста.
Чтобы потом было удобно отформатированный текст, допустим вставить в таблицу.
Заранее спасибО!

   
 
 автор: smit272   (18.05.2007 в 21:30)   письмо автору
 
   для: EXP   (17.05.2007 в 01:28)
 

ребята спасибо, супер!

   
 
 автор: EXP   (17.05.2007 в 01:28)   письмо автору
 
   для: Trianon   (16.05.2007 в 13:36)
 

Или так
<?php
$str 
'5:40 Текст1 
6:04 Бла бла бла
7:45 Текст2
10:28 Текст5
'
;

preg_match_all("#\s*?(\d+)\:(\d+)[^\n]+#si"$str $outPREG_PATTERN_ORDER);
print_r($out);
$out2 = array();
$out3 = array();
for(
$i 0$i count($out[0]); $i++)
{
if(
$out[1][$i] < 6) continue;
if ((
$out[1][$i] == 6) && ($out[2][$i] < 30)) continue;
array_push($out2$out[0][$i] );
array_push($out3'<font color="red">' $out[0][$i] . '</font>');
}
echo 
'<hr>' str_replace($out2$out3$str);
//вообще.то так и правда красивее :) 
function  
next_time($matches
{  
if ((
$matches[1] > 6) ||
(
$matches[1] == && $matches[2] > 30))
return 
'<font color="red">' $matches[0] . '</font>';
else return 
$matches[0]; 
}
 echo  
preg_replace_callback("|(\d+)\:(\d+)[^\n]+|""next_time"$str);

   
 
 автор: Trianon   (16.05.2007 в 13:36)   письмо автору
 
   для: smit272   (16.05.2007 в 13:19)
 

применяйте preg_replace_callback

   
 
 автор: smit272   (16.05.2007 в 13:19)   письмо автору
 
   для: User   (16.05.2007 в 08:47)
 

неа, не работает.
Да и не разобрался в коде.
По идее можно проще реализовать

<?
$kod 
"
7:40 Текст 1<br>
6:08 Бла бла бла<br>
7:45 Текст 2<br>
10:28 Текст 5<br>
"
;

$a ereg_replace("([0-9]*)\:|ise""\\1:"$kod);
echo 
$a;
?>


Как теперь вместо "\\1:" устроить проверку и если удовлетворяет условию вставить любой символ?

   
 
 автор: User   (16.05.2007 в 08:47)   письмо автору
 
   для: smit272   (16.05.2007 в 00:23)
 


<?php
$file
=file('messages.log');
foreach(
$file as $string)
{
ereg("([0-9]*)\:([0-9])"$string$array);
$font=0;
if (
$array[1]<6$font=1;
elseif (
$array[2]<6$font=1;
if(
$font=1$string='<font>'.$string.'</font>';
$new[]=$string;
}
?>


В результате получаем массив строчек $new. В принципе, в коде могут быть ошибки, так как написал с мобилы за 10 минут.

   
 
 автор: smit272   (16.05.2007 в 00:23)   письмо автору
 
 

есть данные:

5:40 Текст 1
6:04 Бла бла бла 
7:45 Текст 2
10:28 Текст 5


нужно проверить время и если оно меньше условия (6:06) то вставить в начале каждой строчке <font> а в конце </font>

В принципе понятно что надо работать регулярными выражениями функцией preg_replace но как реализовать что-то не получается.

   

Сообщения:  [1-9] 

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

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