Autor Zpráva
Tirus
Profil
Chtěl bych se zeptat. dělám si metodu pro logování, ovšem sice vše chodí, jen název souboru mi zkrátí (nepřidá tam minuty a koncovku v případě když nezadám jméno souboru)
   public function to_log()
    {
        if ($this->debug) {
            if (!empty($this->data)) {
                $this->error .= 'Nejsou prázdná data<br/>';
                if (empty($this->filename))
                    $this->filename = 'log_' . date("d-m-Y_H:m") . '.txt';
                if ($this->checkDir()) {
                    $this->filename = $this->dir . $this->filename;
                    $this->file = fopen($this->filename, 'w');
                    if (is_array($this->data)) {
                        foreach ($this->data as $key => $value) {
                            $this->buffer .= $key . ': ' . $value . ' \r\n';
                        }
                        $this->data = $this->buffer;
                        $this->buffer = null;
                    }
                    if (fwrite($this->file, $this->data))
                        $this->succes = true;
                    fclose($this->file);
                    return $this->succes;
                }
            } else {
                $this->error .= 'Data jsou prázdná<br/>';
                return $this->succes;
            }
        } else {
            $this->error .= 'Není povolen debug mod<br/>';
            return false;
        }
    }

     private function checkDir()
    {
        if (!is_dir($this->dir)) {
            $this->error .= 'Není to složka <br/>';
            if (mkdir($this->dir)) {
                $this->error .= 'Složka je vytvořena <br/>';
                return true;
            } else {
                $this->error .= 'Nepodařilo se vytvořit složku <br/>';

                return false;
            }
        } else {
            $this->error .= 'Je to složka<br/>';
            return true;
        }

        return true;
    }

a nyní když je to pole, tak mi to do souboru uloží doslova např. 0: aaa \r\n 1: bbbb \r\n
Jozin
Profil *
Ahoj,

nejspíš bude chyba tady:
date("d-m-Y_H:m")
//oprava
date("d-m-Y_H:i:s")

m je totiž měsíc a né minuty. Aby tam byly i sekundy tak s.

Doufám, že jsem tvůj problém pochopil.

Jozin.
Tirus
Profil
Jozin:
ahoj, z části ano, ale spíše ne :) ... ale děkuji za upozornění s tím formátem..

v tom filename je v e skutečnosti celé jméno, ale výsledek je na HDD takovejhle: složka log a v ní je soubor s celým názvem (vč. přípony) - log_20-04-2011_19
Tori
Profil
Tirus:
A velmi by vadilo dát do jména souboru místo dvojtečky jiný znak, třeba pomlčku? Sice můžou být názvy souborů s mezerami, uvozovkami a interpunkcí, ale pokud to není nezbytně nutné, tak mi přijde bezpečnější se tomu vyhnout.
Jozin
Profil *
Máš tam podmínku empty($this->filename). To znamená, pokud je prázdný filename, tak to přetvoř na 'log_' . date("d-m-Y_H:i:s") . '.txt', takže pokud je vyplněn filename, tak to uloží jako filename a tento název neřeší.

Čeho tedy chceš dosáhnout? A kde zadáváš filename? Možná si sem měl dát celou tu třídu.

Jozin.
Davex
Profil
Tirus:
V některých operačních systémech není dovolena dvojtečka v názvu souboru, protože má speciální význam. Nahraď jí nějakým povoleným znakem.
Tirus
Profil
tak bylo to tou dvojtečkou.. děkuji

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0