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

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

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

 

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

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

тема: Узнаем значения и суммируем их

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

 
 автор: cheops   (10.03.2006 в 01:46)   письмо автору
 
   для: prigmast   (09.03.2006 в 17:51)
 

Конечно, строка
<?php
  $str 
file_get_contents("14054-20060306172728.htm"); 
?>

Читает содержимое HTML-файла в переменную $str, в которой при помощи регулярного выражения
<?php
  $pattern 
"#<b>([\d]+)([\s]|<)#isU"
?>

ищутся цифры, каждую цифру предваряет тэг <b>, который и является маркером для начала вхождения, после тэга <b> должна следовать одна или более цифр ([\d]+) после цифры может идти как пробел [\s], так и символ <, поэтому мы разделяем их ИЛИ | (\s]|<). Фунция
<?php
preg_match_all
($pattern$str$out); 
?>

ищит все соответстия регулярному выражению $pattern и помещает их в двумерный массив $out. $out[0] содержит подстроки, удовлетворяющие всему регулярному выражению, $out[1] - подстроки соответствующие первым круглым скобкам, $out[2] - вторым круглым скобкам. Так как нужные нам цифры определяются первыми круглыми скобками ([\d]+) - далее мы работаем только с $out[1], который передаём функции
<?php
  
echo array_sum($out[1]); 
?>

функция суммирует значения массива $out[1].

   
 
 автор: prigmast   (09.03.2006 в 17:51)
 
   для: cheops   (09.03.2006 в 13:27)
 

Спасибо почитаю....
А мой код объяснить можете ?

   
 
 автор: cheops   (09.03.2006 в 13:27)   письмо автору
 
   для: prigmast   (08.03.2006 в 22:43)
 

Вообще говоря они не плохо (конечно, можно лучше) описаны в справочнике функций
http://www.softtime.ru/dic/id_dic=134&id_group=3
http://www.softtime.ru/dic/id_dic=133&id_group=3
И в наших off-line-вых книгах http://www.softtime.ru/php5/index.php

   
 
 автор: prigmast   (08.03.2006 в 22:43)
 
   для: Евгений Петров   (08.03.2006 в 22:16)
 

Я понимаю, что нагло просить, но хотелось бы, чтобы Вы сделали нормальный мануал по регулярным выражениям у себя на сайте!

   
 
 автор: Евгений Петров   (08.03.2006 в 22:16)   письмо автору
 
   для: cheops   (08.03.2006 в 21:57)
 

-
Не в тему: Не, надо все таки дать пользователям возможность удалять (скрывать) свои сообщения. Я тут сначала лажанулся а потом пришлось тире ставить :)

   
 
 автор: cheops   (08.03.2006 в 21:57)   письмо автору
 
   для: prigmast   (08.03.2006 в 19:06)
 

А что не понятно регулярное выражение?

   
 
 автор: prigmast   (08.03.2006 в 19:06)
 
   для: cheops   (08.03.2006 в 13:13)
 

Спасибо cheops!
Только вот не пойму этот код!
Вы не могли бы растолковать?
Спасибо

   
 
 автор: cheops   (08.03.2006 в 13:13)   письмо автору
 
   для: prigmast   (07.03.2006 в 14:18)
 

Тогда можно поступить следующим образом
<?php
  $str 
file_get_contents("14054-20060306172728.htm");
  
$pattern "#<b>([\d]+)([\s]|<)#isU";
  
preg_match_all($pattern$str$out);
  echo 
array_sum($out[1]);
?>

   
 
 автор: prigmast   (07.03.2006 в 14:18)
 
   для: cheops   (07.03.2006 в 13:28)
 

Заблы сразу написать...
Но тут не трудно догадатся (19 - число онлайн игроков (его и нужно вытащить) / 30 - макс кол-во (нас не интерисует));
))))

   
 
 автор: cheops   (07.03.2006 в 13:28)   письмо автору
 
   для: prigmast   (06.03.2006 в 17:31)
 

Вот чего не понятно, как поступать с числами вида 19 / 30 - какое из двух чисел брать?

   

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

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

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