class EppConnector{ var $eppsocket = null; public function writeEppString ($message) { $written = fwrite ($this->eppsocket,pack('N', strlen($message)+4) .$message); } public function readEppString() { if ($this->isconnected()){ $hdr = unpack('Nlen', fread($this->eppsocket, 4) ); $len = $hdr['len']; $recvd_data = ''; $left=$len-4; while ( !feof($this->eppsocket) ) { $chunk = fread($this->eppsocket, $left); $recvd_data .= $chunk; $left = $left - strlen($chunk); if ($left == 0) break; } return $recvd_data; } return ""; } class EPP_Message { private $message = nothing; private $messagetype = nothing; function EPP_Message($xml) { $messagetypes = array("hello", "command"); if (in_array($xml, $messagetypes)) { $this->message = new xml_doc(); $this->messagetype = $xml; } else { $this->message = new xml_doc($xml); $this->message->parse(); }