streamreader

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • streamreader

    Hallo.
    Wie die Überschrift schon sagt, ich habe (aus Langeweile, versteht sich), mal einen Streamreader für PHP gebastelt (Kann nützlich sein, wenn Fragen nach dem Sinn von allow_url_fopen aufkommen z.B.).

    Nun wollte ich mir mal dazu (zum Code) ein paar Meinungen einholen, vorallem was das Error-Handling angeht.

    Achja hier der Code

    PHP-Code:
    class streamreader
    {
        protected 
    $stream;
        
        public function 
    __construct(&$streamres)
        {
            if (
    is_resource($streamres))
            {
                
    $this->stream $streamres;
            }
            else
            {
                
    trigger_error('Parameter is not a Resource'E_USER_ERROR);
            }
        }
        
        public function 
    reset()
        {
            
    $check fseek($this->stream0);
            if (
    $check == -1trigger_error('Unable to reset the Filehandler'E_USER_WARNING);
        }
        
        public function 
    readAll()
        {
            
    $this->reset();
            
    $file '';
            while (!
    feof($this->stream))
            {
                
    $file .= fread($this->stream4096);
            }
            return 
    $file;
        }
        
        public function 
    readlines($crlf false)
        {
            
    $this->reset();
            
    $lines = array();
            while (!
    feof($this->stream))
            {
                
    $line $this->readline(4096$crlf);
                if (
    $line !== false && $line !== ""$lines[] = $line;
            }
            return 
    $lines;
        }
        
        public function 
    csv()
        {
            
    $text $this->readAll();
            
    $lines explode("\n"$text);
            
    $csv = array();
            
    $i 0;
            foreach (
    $lines as $index => $value)
            {
                
    $csv[$i][$index] = explode(','trim($value));
                
    $i++;
            }
        }
        
        protected function 
    readline($length 4096$crlf false)
        {
            
    $line fgets($this->stream$length);
            
    $line = ($crlf) ? rtrim($line) : $line;
            if (
    $line !== false) return $line;
            else return 
    '';
        }
        
        public function 
    close()
        {
            
    fclose($this->stream);
        }
        
        public function 
    __destruct()
        {
            
    $this->close();
        }


  • #2
    Warum keine Exceptions?

    Kommentar


    • #3
      Stimmt eigentlich...
      Werde auch welche Einbauen, wenn sich der Codefetzen bewährt hat.
      Momentan teste ich noch

      Kommentar

      Lädt...
      X