|
|
автор: посетитель (10.05.2005 в 13:59) |
|
|
для: cheops
(10.05.2005 в 13:07)
| | спасибо я уж немного исправил.
<?php
$lines = file($fil);
$data = "";
foreach($lines as $index => $line)
{
$patern = "|^([^ ]+) = ([^ ]+) = ([^ ]+) = ([^ ]+) = ([^ ]+) = ([^\n]+)|i";
preg_match ($patern, $line, $out);
$out[4]--;
if($out[4] == 0){
$data .= "$out[1] = $out[2] = $out[3] = $out[4] = $out[5]-off = $out[6]\n";
}
else
$data .= "$out[1] = $out[2] = $out[3] = $out[4] = $out[5] = $out[6]\n";
if($out[4] == 1){
echo '$PID'."\r\n$out[1] $time-$master> Ваш статус OFF.<ems:br>____<ems:br><encode>master xchat.chat online</encode>-Вернуться.\r\n"; }
}
$data = trim($data);
$fd = fopen($fil, "w");
fwrite($fd, $data);
fclose($fd);
?>
|
| |
|
|
|
|
|
|
|
для: посетитель
(09.05.2005 в 23:03)
| | Да действительно, просто выводил в окно браузера и просмотрел, что вывод не идёт в файл. Причина появления пустых строк с =, заключается в том, что со временем в конце накапливаются переводы строк (так как последняя строка тоже содержит \n, хотя не следовало бы), которые затем интерпретируются. Чтобы избавиться от этого, прогоняйте перед записью в файл, переменную $data через функцию trim().
<?php
$data = trim($data);
?>
|
| |
|
|
|
|
автор: посетитель (09.05.2005 в 23:06) |
|
|
для: посетитель
(09.05.2005 в 23:03)
| | можно это както исправить? | |
|
|
|
|
автор: посетитель (09.05.2005 в 23:03) |
|
|
для: cheops
(09.05.2005 в 21:22)
| | ну не даётся мне мускул что я поделаю.
это не записывается в файл просто неможет
а посылается по смс.
а вот откуда берутся пустые строки с разделителями? | |
|
|
|
|
|
|
|
для: посетитель
(09.05.2005 в 19:18)
| | У вас по достижению 0 пишется вот эта абра-кадабра в файл
$PID
R5D3F4 -> Ваш статус OFF.<ems:br>____<ems:br><encode>master xchat.chat online</encode>-Вернуться.
R5D3F4 = DENVER = Москва = off = +-OFF = информация пока отсутствует
E4F5R4 = SEDEK = Москва = 88 = + = информация пока отсутствует
DFT5H4 = nimbus = Москва = 46 = + = информация пока отсутствуе
|
и скрипт не может её корректно обработать, так как он заточен под определённый формат.
PS Вы с ума свихнётесь на файлах :))) переходите на MySQL, не пожалеете :))) | |
|
|
|
|
автор: посетитель (09.05.2005 в 19:18) |
|
|
для: cheops
(09.05.2005 в 18:09)
| |
<?php
$lines = file($fil);
$data = "";
foreach($lines as $index => $line)
{
$patern = "|^([^ ]+) = ([^ ]+) = ([^ ]+) = ([^ ]+) = ([^ ]+) = ([^\n]+)|i";
preg_match ($patern, $line, $out);
if($out[4] != 'off')
$out[4]--;
if($out[4] == 0){
$data .= "$out[1] = $out[2] = $out[3] = off = $out[5]-OFF = $out[6]\n";
echo '$PID'."\r\n$out[1] $time-$master> Ваш статус OFF.<ems:br>____<ems:br><encode>master xchat.chat online</encode>-Вернуться.\r\n"; }
else
$data .= "$out[1] = $out[2] = $out[3] = $out[4] = $out[5] = $out[6]\n";
}
$fd = fopen($fil, "w");
fwrite($fd, $data);
fclose($fd);
?>
| вот. | |
|
|
|
|
|
|
|
для: посетитель
(09.05.2005 в 14:33)
| | Хм... а не могли бы вы привести код который у вас сейчас, тот что обрабатывает вашу последовательность из 5 =? | |
|
|
|
|
автор: посетитель (09.05.2005 в 14:33) |
|
|
для: посетитель
(09.05.2005 в 09:41)
| | непойму где ошибка.
добавляются строки вида
= = = = =
= = = = = | |
|
|
|
|
|
|
|
для: посетитель
(09.05.2005 в 13:05)
| | Он приведёт его к цифре (к 0) и вычтет. | |
|
|
|
|
автор: посетитель (09.05.2005 в 13:05) |
|
|
для: cheops
(09.05.2005 в 12:56)
| | а разве если там будет off то он его всёравно будет продолжать вычитать? тамже не цифры будут. | |
|
|
|
|