2013-09-08 11 views
11

Chcę napisać obiekt php w pliku tekstowym. Obiekt php jest taki, że chcę napisać $ obj w pliku tekstowym. Plik tekstowy znajduje się w tej ścieżceNapisz i przeczytaj obiekt php w pliku tekstowym?

$filePath = getcwd().DIRECTORY_SEPARATOR."note".DIRECTORY_SEPARATOR."notice.txt" 

Chcę w prosty sposób napisać ten przedmiot do pliku tekstowego, a chcesz przeczytać plik, aby uzyskać właściwości jak zdefiniowane. Proszę pomóż mi.

Z góry dziękuję.

Odpowiedz

15

Można użyj następującego kodu do napisania obiektu php w pliku tekstowym ...

$obj = new stdClass(); 
$obj->name = "My Name"; 
$obj->birthdate = "YYYY-MM-DD"; 
$obj->position = "My position"; 

$objData = serialize($obj); 
$filePath = getcwd().DIRECTORY_SEPARATOR."note".DIRECTORY_SEPARATOR."notice.txt"; 
if (is_writable($filePath)) { 
    $fp = fopen($filePath, "w"); 
    fwrite($fp, $objData); 
    fclose($fp); 
} 

Aby odczytać plik tekstowy, aby uzyskać właściwości zgodnie z definicją ...

$filePath = getcwd().DIRECTORY_SEPARATOR."note".DIRECTORY_SEPARATOR."notice.txt"; 
if (file_exists($filePath)){ 
    $objData = file_get_contents($filePath); 
    $obj = unserialize($objData);   
    if (!empty($obj)){ 
     $name = $obj->name; 
     $birthdate = $obj->birthdate; 
     $position = $obj->position; 
    } 
} 
+0

Idealny! Lubię to. Wielkie dzięki. – Nantu

3

Można użyć serialize() przed zapisaniem go do pliku, a następnie unserialize() aby cały $obj dostępne dla Ciebie:

$obj = new stdClass(); 
$obj->name = "My Name"; 
$obj->birthdate = "YYYY-MM-DD"; 
$obj->position = "My position"; 
$objtext = serialize($obj); 
//write to file 

Później można unserialize():

$obj = unserialize(file_get_contents($file)); 
echo $obj->birthdate;//YYYY-MM-DD 
+0

Działa. Wielkie dzięki. – Nantu