entpacken von .tar archiv


thebig

Grünschnabel
#1
hi

ich habe ein problem und zwar versuche ich seit paar tagen mir ein funktion aufzubauen, dir ein .tar archiv entpacken kann aber erfolglos.

ich habe mich auch mit einer function von diese seite zusammen gesezt aber bis jetzt habe kein weg gefunden ich würde mich freuen hilfe von euch zu bekomen.

Thebig
 

thebig

Grünschnabel
#5
hallo

Mein problem liegt daran dass es nur 1 oder manchmal 2 datei die richtig entpackt wurde.

Das ist die von mir benutze Funktion

PHP:
function untar($filename)
{
     if (isset($filename))
    {
        $tarfile=fopen($filename,"r");
        $value=0;
        $c=chr(0);
        $tarcontent=array();
        while (feof($tarfile)==false)
            {
                $tarcontentvalue="";
                while ((ord($c)==0) && (feof($tarfile)==false))
                    {
                        $c=fgetc($tarfile);
                    }
                while ((ord($c)!=0) && (feof($tarfile)==false))
                    {
                        $tarcontentvalue.=$c;
                        $c=fgetc($tarfile);
                    }
                $tarcontent[]=$tarcontentvalue;
            }
        $tarfile=fclose($tarfile);
        $count=0;
        while ($count<count($tarcontent))
            {
                if (substr($tarcontent[$count],-1)=="/")
                    {
                        echo "Creating ".$tarcontent[$count]."<br>";
                        mkdir($tarcontent[$count]);
                        $count+=13;
                    }
                elseif (!empty($tarcontent[$count]))
                    {
                        echo "Extracting ".$tarcontent[$count]."<br>";
						
                        $newfile=fopen($tarcontent[$count],"w");
                        fwrite($newfile,$tarcontent[$count+13]);
                        $newfile=fclose($newfile);
                        $count+=14;
                    }
                else
                    {
                        $count++;
                    }
            }

			}

}
ich lerne noch die sprache deswegen habe ich so viel Fehlern in meine Beiträge.
Ich entschuldige mich und verpresche in der zukunft besser zu schreiben.

Thebig
 
#6
Hi
In was für einer Glaskugel hast Du das denn gesehen? :eek:
ich habe mich auch mit einer function von diese seite zusammen gesezt
http://www.tutorials.de/forum/php-tutorials/215261-dekompression-mit-php.html
Ich stöbere gerne in den Tutorials daher kannte ich die Funktion. Das ist meines wissens die einzige derartige Funktion auf dieser Seite, deshalb bin ich davon ausgegangen dass er diese meint. ;)


TheBig:

Vergleich mal die Funktion von Dennis, mit der von dir. Die Findest du im von mir Geposteten Link.
Am besten Stück für Stück durchgehen. Im Prinzip müssten die ja das selbe machen.
 
#7
Wenn Du Dich nicht mit dem Aufbau von Tar-Dateien befassen willst ist es meiner Meinung nach nicht sehr sinnvoll die Funktion nachprogrammieren zu wollen.
Und wenn ich mir Deinen bisherigen Ansatz anschaue scheinst Du auch so einiges ausgelassen zu haben.

Tar ist kein sehr komplexes Format, dennoch braucht es etwas Zeit es zu verstehen.
Die Funktion die ich dort im Tutorial vorgestellt habe wurde uebrigens mittlerweile durch eine Klasse ersetzt. Diese kannst Du hier finden.

Wenn Du aber wirklich lernen willst wie Tar-Dateien aufgebaut sind dann sollte Dir der Code (sowohl der Funktion als auch der Klasse) dabei helfen koennen. Und natuerlich geht nichts ueber einen Blick in ein paar selbstgepackte Tar-Dateien.