| 
<?php
require_once('Extended_resource.class.php');
 
 echo '<pre>';
 $x=new resource('fopen("'.str_replace("\\","/",__FILE__).'","rb+")');
 $x->dump();
 
 echo'<br>';
 echo'<br>';
 
 $x->export();
 echo'<br>';
 echo'<br>';
 
 print_r($x);
 echo'<br>';
 echo'<br>';
 
 var_dump(
 $x->type(),
 ftell($x->use_resource())
 );
 
 
 fseek($x->use_resource(),98);
 
 $u=$x->use_resource();
 echo'<br>';
 echo'<br>';
 var_dump(ftell($u));
 echo'<br>';
 echo'<br>';
 
 var_dump($y=serialize($x));
 echo'<br>';
 echo'<br>';
 
 var_dump(unserialize($y));
 echo'<br>';
 echo'<br>';
 
 try{
 resource();
 }catch (Exception $e) {
 echo 'Exception  : ',  $e->getMessage(), "\n";
 }
 echo'<br>';
 echo'<br>';
 
 $u=var_export(unserialize($y),true);
 echo'<br>';
 echo'<br>';
 
 eval('$t = '.$u.';');
 
 var_dump($t);
 
 
 var_dump(clone($t));
 
 class test{
 public $property,$position=null;
 
 public function __construct(){
 $this->property=resource('fopen("'.str_replace("\\","/",__FILE__).'","rb+")');
 
 }
 
 public function seek($position,$whence=false){
 fseek($this->property->use_resource(),$position,$whence);
 $this->position=$position;
 }
 
 
 public function gets($length=null){
 if(is_int($length)) $line=fgets($this->property->use_resource(),$length);
 else $line=fgets($this->property->use_resource());
 $this->position=ftell($this->property->use_resource());
 return $line;
 
 }
 
 public function tell(){
 return $this->position;
 }
 
 public function __wakeup(){
 $this->seek($this->position);
 }
 
 
 }
 
 $test= new test();
 
 var_dump($test);
 $content='';
 while($line=$test->gets()){
 $content.=$line;
 var_dump($test->tell());
 }
 
 highlight_string($content);
 
 $test2=serialize($test);
 echo'<br>';
 echo'<br>';
 
 print_r($test2=unserialize($test2));
 echo'<br>';
 echo'<br>';
 var_dump($test2->tell());
 
 
 ?>
 |