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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Из текстового файла в переменную
 
 автор: smit272   (15.01.2006 в 01:03)   письмо автору
 
 

Проблема в следующем:
есть текстовый файл log.txt в нем находятся записи в следующем порядке:


Time=1130280965
Date=86400
Passive=0
Down=0
Always=0
Note=1


надо получить в переменной $a число из Date, а в переменную $b число из Note
каким образом это реализовать?

   
 
 автор: Евгений Петров   (15.01.2006 в 01:25)   письмо автору
 
   для: smit272   (15.01.2006 в 01:03)
 

<?
  $f 
file("log.txt");
  echo 
$a $f[1];
  echo 
$b $f[5];
?>

   
 
 автор: smit272   (15.01.2006 в 01:38)   письмо автору
 
   для: Евгений Петров   (15.01.2006 в 01:25)
 

Нет нет...
надо чтобы при echo $a выводилось только число 86400

   
 
 автор: Евгений Петров   (15.01.2006 в 01:46)   письмо автору
 
   для: smit272   (15.01.2006 в 01:38)
 

А ну сделайте так:
<?
  $f 
file("log.txt");
  echo 
$a preg_replace("/[^0-9]+/","",$f[1]);
  echo 
$b preg_replace("/[^0-9]+/","",$f[5]);
?>

   
 
 автор: cheops   (15.01.2006 в 01:48)   письмо автору
 
   для: smit272   (15.01.2006 в 01:38)
 

Тогда можно поступить следующим образом
<? 
  $f 
file("log.txt"); 
  list(
$name$number) = explode("=",$f[1]); 
  echo 
$number
?>

   
 
 автор: smit272   (15.01.2006 в 01:58)   письмо автору
 
   для: cheops   (15.01.2006 в 01:48)
 

Большое спасибо!

   
 
 автор: smit272   (16.01.2006 в 00:35)   письмо автору
 
   для: smit272   (15.01.2006 в 01:58)
 

А как выкручиваться, если не тока цифры, но еще и буквы и нужно сделать проверку?
1-ый случай не подходит, а со 2-ым почему-то проверка не прокатывает!

   
 
 автор: Евгений Петров   (16.01.2006 в 01:06)   письмо автору
 
   для: smit272   (16.01.2006 в 00:35)
 

А что за проверка?

   
 
 автор: smit272   (16.01.2006 в 02:00)   письмо автору
 
   для: Евгений Петров   (16.01.2006 в 01:06)
 


<?
//$number - слово или число из $f[1]
$a="good";
if (
$a==$number) {echo "ok";} else {echo "no";};
?>

   
 
 автор: Евгений Петров   (16.01.2006 в 02:21)   письмо автору
 
   для: smit272   (16.01.2006 в 02:00)
 

Попробуйте вместо всех $f[1],$f[2],... писать trim($f[1]), trim($f[2]), ...

   
 
 автор: zavragnov   (16.01.2006 в 01:54)   письмо автору
 
   для: smit272   (16.01.2006 в 00:35)
 

Попробуй так



<? 
  $f 
file("log.txt"); 
  list(
$name$a) = explode("=",$f[1]); 
  echo 
$a;
  list(
$name2$b) = explode("=",$f[5]); 
  echo 
$b
 
?> 

   
 
 автор: Аня   (19.01.2006 в 01:48)   письмо автору
 
   для: zavragnov   (16.01.2006 в 01:54)
 

<?
  $f 
file("log.txt");
  list(
$name$number) = explode("=",trim($f[1]));
  echo 
$number;
?>


При изучении этого кода мне захотелось изменить $number и записать его измененный обратно в файл. Как это сделать, пользуясь массивом а, не переписывая весь файл целиком?

   
 
 автор: Саня   (19.01.2006 в 02:04)   письмо автору
 
   для: smit272   (15.01.2006 в 01:03)
 

Воспользуйтесь функцией parse_ini_file().
<pre><?php
print_r
(parse_ini_file("test.txt"));
?>

Содержимое "test.txt":
Time=1130280965 
Date=86400 
Passive=0 
Down=0 
Always=0 
Note=1

В результате получите ассоциативный массив:
Array
(
    [Time] => 1130280965
    [Date] => 86400
    [Passive] => 0
    [Down] => 0
    [Always] => 0
    [Note] => 1
)

А дальше работайте с массивом, как угодно:
<?php
$array 
parse_ini_file("test.txt");
if (
is_numeric($array['date'])) {
  echo(
"Значение 'date' состоит только из чисел");
} else {
  echo(
"Значение 'date' состоит не только из чисел");
}
?>


Аня, почитайте темы:
http://softtime.ru/forum/read.php?id_forum=1&id_theme=9159
http://softtime.ru/forum/read.php?id_forum=1&id_theme=11154

   
Rambler's Top100
вверх

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