web-dev-qa-db-ja.com

テキストファイルでphpオブジェクトを読み書きしますか?

テキストファイルにphpオブジェクトを書きたいのですが。 phpオブジェクトはそのようなものです

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

この$ objをテキストファイルに書きたいのですが。テキストファイルはこのパスにあります

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

このオブジェクトをテキストファイルに書き込む簡単な方法と、ファイルを読み取って定義どおりのプロパティを取得したいのですが。私を助けてください。

前もって感謝します。

17
Nantu

次のコードを使用して、テキストファイルにphpオブジェクトを書き込むことができます...

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

テキストファイルを読み取って、定義したプロパティを取得するには...

$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;
    }
}
25
Developer

ファイルに保存する前にserialize()を使用し、次にunserialize()を使用して全体を取得できます$obj利用可能:

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

その後、後でunserialize()できます:

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