2013-09-08 81 views
11

Tôi muốn viết một đối tượng php trong một tập tin văn bản. Đối tượng php giống như vậyViết và đọc đối tượng php trong một tệp văn bản?

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

Tôi muốn viết $ obj này trong một tệp văn bản. Các tập tin văn bản nằm ở con đường này

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

Tôi muốn có một cách đơn giản để viết đối tượng này vào tệp văn bản và muốn đọc các tập tin để có được những đặc tính như tôi xác định. Làm ơn giúp tôi.

Xin cảm ơn trước.

Trả lời

15

Bạn có thể sử dụng mã sau để viết đối tượng php trong tệp văn bản ...

$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); 
} 

Để đọc tệp văn bản để nhận các thuộc tính như bạn đã xác định ...

$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

Hoàn hảo! Tôi thích điều này. Cảm ơn rất nhiều. – Nantu

3

Bạn có thể sử dụng serialize() trước khi lưu nó vào tập tin và sau đó unserialize() để có được toàn bộ $obj sẵn cho bạn:

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

Sau đó, sau đó bạn có thể unserialize():

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

Nó hoạt động. Cảm ơn rất nhiều. – Nantu