a czy może ktoś mi powie jakzrobić aby mozna było zapisywać i odczytywać pod php4 iphp5, próbowałem takiego kodu lecz na parserze sie nieznam wiec niewiem czy to jest dobre
<?php
class logi {
function tag_start($parser, $attr, $params){
global $act_tag, $int, $logi, $czy_dane; if($attr == 'dane' && $czy_dane == 1){
die('Błąd: Niedozwolone zagnieżdżenie danych!<br>'); } elseif($attr == 'dane' && $czy_dane == 0){
$logi[$int] = new logi($params['ID']);
$czy_dane = 1;
}
}
function tag_text($parser, $text){
global $act_tag, $int, $logi, $czy_dane;
if($czy_dane == 1){
switch($act_tag){
case 'ip': $logi[$int] -> ip .= $text; break;
case 'forwarded': $logi[$int] -> forwarded .= $text; break;
case 'id': $logi[$int] -> id .= $text; break;
case 'host': $logi[$int] -> host .= $text; break;
case 'time': $logi[$int] -> czas .= $text; break;
case 'url': $logi[$int] -> url .= $text; break;
}
}
}
function tag_end($parser, $attr){
global $act_tag, $int, $czy_redaktor; if($attr == 'dane' && $czy_dane == 1){
$int++;
$czy_dane = 0;
}
}
}
$parser = xml_parser_create();
xml_set_element_handler($parser, 'tag_start', 'tag_end');
xml_set_character_data_handler($parser, 'tag_text');
if(!($fp = fopen('./log/20050217.xml', 'r'))) { die('Nie można otworzyć podanego pliku XML!!!'); }
while($data = fread($fp, 4096
)) { if(!xml_parse
($parser, $data, feof($fp))){ xml_error_string(xml_get_error_code($_parser)),
xml_get_current_line_number($parser)));
}
}
xml_parser_free($parser);
echo '<center>LOGI SYSTEMU Z DNIA:</center><br>' . $dzien;
foreach($logi as $dane){
<b>IP</b>: '.$logi -> ip
. '(' . (strlen($logi -> forwarded
) !=0 ?
($logi -> forwarded
) : 'Brak danych' .')<br> <b>Id Usera</b>:'.$logi -> id.'<br>
<b>Host</b>: '. $logi -> host .'<br>
<b>Czas</b>: '.$logi -> czas.'<br>
<b>url</b>: '.$logi -> url.'<br>';
}
?>
Pozatym niewiem jak go używac przerobiłem go z arta z www.webcity.pl
pozatym do zapisywania używam
<?
// system logów użytkownika
$log_dir = 'log';
$data_pliku = date('Ymd');
// zbieranie danych o użytowniku
$string = '<dane>
<ip>%remote_ip%</ip>
<forwarded>%forwarded_for%</forwarded>
<id>%user%</id>
<host>%host%</host>
<czas>%time%</czas>
<url>%url%</url></dane>
</Logi>';
// z konfiguracji odczytanie formatu zapisu logu
$string = str_replace('%user%', (isset($_SESSION['uid']) ?
$_SESSION['uid'] : 0
), $string); // te linie możesz usunąć - obowiązuje jedynie w projekcie Coyote
// proba otwarcie pliku lub - w przypadku gdy zrodlowy nie istnieje - utworzenia go
if (!@file_exists($log_dir . '/' . $data_pliku . '.xml')) { $file = @fopen($log_dir . '/' . $data_pliku . '.xml', 'w+'); $begin = '<?xml version=\"1.0\" standalone=\"yes\" ?>' . \"n<Logi>\";
$string = $begin . $string;
} else {
$file = @fopen($log_dir . '/' . $data_pliku . '.xml', 'a+');
}
@flock($file, 2); // blokowanie pliku - wylacznosc na zapis i odczyt
@fwrite($file, $string); // zapisanie linii
@flock($file, 3); // odblokowanie pliku
@fclose($file);
?>
lecz niewiem jak przesunac wskaźnik 7 znaków przed końcem pliku aby można było zapisać wewnątrz taga <logi>