uuid = "*"; $this->uuid_writeable = 1; } public function getString () { return "{$this->password};{$this->uuid};{$this->uuid_writeable}"; } public function setPassword ($username, $realm, $password) { $this->password = md5 ("$username:$realm:$password"); } } class HPermission { public $url; public $url_type; public $permission_type; public $expires; public $debitted_time; public function __construct ($url, $url_type) { $this->url = $url; $this->url_type = $url_type; $this->expires = "*"; // MM/DD/YYYY:HH:MM:SS $this->permission_type = 0; $this->debitted_time = 0; } public function getString () { return "{$this->url};{$this->url_type};{$this->permission_type};{$this->expires};{$this->debitted_time}"; } } class HFile { public $authorize; public $permission = array (); public function addAuthorize ($name, $realm, $password) { $this->authorize = new HAuthorize (); $this->authorize->setPassword ($name, $realm, $password); } public function addPermission ($url, $url_type) { $this->permission[] = new HPermission ($url, $url_type); } public function write ($name) { $file = fopen ($name, 'w'); fwrite ($file, $this->getString ()); fclose ($file); } public function writeFTP ($ftp, $path) { $file = tmpfile (); fwrite ($file, $this->getString ()); fseek ($file, 0); ftp_fput ($ftp, $path, $file, FTP_BINARY); fclose ($file); } public function getString () { $result = array (); $result[] = $this->authorize->getString (); $result[] = "\n"; foreach ($this->permission as $p) { $result[] = $p->getString (); $result[] = "\n"; } return implode ("", $result); } }