$shellBefehl = "unzip $tarName";

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

$shellBefehl = "unzip $tarName";

Postby Stefan_Niederkofler » 23. January 2009 11:44

Hallo Leute,

meine Frage:

$shellBefehl = "unzip $tarName"; ist ja eig ein Linux befehl der nur auf Linux Systemen funktioniert. Ist es irg wie möglich diesen Befehl mit XAMP auf meinem Windows Rechner zum Laufen zu bringen?

Grüße
Stefan
Stefan_Niederkofler
 
Posts: 6
Joined: 23. January 2009 11:39

Re: $shellBefehl = "unzip $tarName";

Postby Nobbie » 23. January 2009 12:13

Kennst Du "Google"? Wenn nicht: www.google.de

Gib da mal "unzip windows" ein.
Nobbie
 
Posts: 13165
Joined: 09. March 2008 13:04

Re: $shellBefehl = "unzip $tarName";

Postby Stefan_Niederkofler » 23. January 2009 12:25

Ne kannte ich noch nicht...

Code: Select all
<?PHP

$tarName = '1.zip';

$shellBefehl = "unzip $tarName";

$shellBefehl = escapeshellcmd($shellBefehl);

exec($shellBefehl,$nu);

print_r($nu);

?>


Das ist jetztmal mein Beispiel Code. Und meine Frage ist einfach nur, ob ich den auch unter WIndows zum laufen bringen kann, da er normalerweiße nur unter Linux funktioniert...

Und vielen dank für die nette Antwort...
Stefan_Niederkofler
 
Posts: 6
Joined: 23. January 2009 11:39

Re: $shellBefehl = "unzip $tarName";

Postby Wiedmann » 23. January 2009 12:33

da er normalerweiße nur unter Linux funktioniert...

Unter Linux funktioniert das auch nur dann, wenn es im Suchpfad deiner Shell ein "unzip" Binary gibt. Das ist unter Windows nicht anders.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: $shellBefehl = "unzip $tarName";

Postby Stefan_Niederkofler » 23. January 2009 13:55

Und wie kann ich das unter Windows einfügen?
Stefan_Niederkofler
 
Posts: 6
Joined: 23. January 2009 11:39

Re: $shellBefehl = "unzip $tarName";

Postby Wiedmann » 23. January 2009 14:41

Und wie kann ich das unter Windows einfügen?

Was meinst du jetzt genau mit "einfügen"?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: $shellBefehl = "unzip $tarName";

Postby Nobbie » 23. January 2009 15:44

Grausam.

Frag das in einem Windows Forum, mit Xampp od. Apache hat da ja nichts zu tun.
Nobbie
 
Posts: 13165
Joined: 09. March 2008 13:04

Re: $shellBefehl = "unzip $tarName";

Postby glitzi85 » 23. January 2009 17:07

OK, damit das ganze hier nicht so herzlos wirkt ein paar Hilfestellungen:

Die Datei unzip gibt es unter Windows im Normalfall erstmal nicht. Liegt daran, dass unzip ein Linux-Befehl ist. Du könntest jetzt z.B. sowas machen:

Code: Select all
$shellBefehl = "C:\Programme\7-zip\7z.exe e $tarName";

falls du 7Zip installiert hast. Alternativ kannst du auch eine Verknüpfung auf das Programm machen und die unzip nennen. Allerdings müsste die Verknüpfung dann im Suchpfad liegen. In diesem Fall bitte selber in Google nach PATH googeln, die Variable kann man unter Windows auch anpassen. Also entweder die Verknüpfung dann in einen Pfad packen, der in PATH eingetragen ist oder eben den Pfad in PATH eintragen.

mfg glitzi

PS: Kann sein dass es mit einer normalen Verknüpfung nicht geht, dann google mal nach HardLink für Windows.
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Re: $shellBefehl = "unzip $tarName";

Postby Stefan_Niederkofler » 23. January 2009 17:46

Vielen Dank für wenigstens mal eine nette und hilfreiche Antwort! Du hast all meine Probleme gelöst :)

Leider wusste ich vorher noch nicht, das man das nicht in xampp irg wie lösen kann, sonst würde ich mich auch nicht in euer doch sehr "freundliches" Forum verirrt haben...

Aber vielen dank für deine Hilfe, glitzi!

beste Grüße
Stefan
Stefan_Niederkofler
 
Posts: 6
Joined: 23. January 2009 11:39

Re: $shellBefehl = "unzip $tarName";

Postby glitzi85 » 23. January 2009 17:54

Wenn du wirklich portabel sein willst, dann ziehst du dir hier: http://www.7-zip.org/download.html einmal die Commandline-Version von 7zip (Win) runter und auch die Binaries für Linux. Auf einem Linux-Server verwendest du dann einfach die 7z und auf Windows die 7z.exe. Ob du den Befehl in PHP anpassen musst hab ich jetzt nicht ausprobiert, evtl funktioniert der auch ohne .exe, dann müsstest du deinen Code gar nicht ändern sondern kannst einfach nur die 7z-Datei austauschen.

mfg glitzi
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Re: $shellBefehl = "unzip $tarName";

Postby Wiedmann » 23. January 2009 20:01

Die Datei unzip gibt es unter Windows im Normalfall erstmal nicht.

ZU einem Unix-Basissystem gehört die aber auch nicht... Tatsächlich kommt das Tool aus der DOS Welt. Die meisten Linux-Distris installieren das Pcket nur meist gleich, auf Grund der Verbreitung des ZIP-Formates.

Wenn du wirklich portabel sein willst, dann ziehst du dir hier: http://www.7-zip.org/download.html einmal die Commandline-Version von 7zip (Win) runter

Tatsächlich würde ich mir da eher das Unzip von Info-Zip holen (daher kommt auch der Unix-Port in deinem Linux).
--> Wenn ein PHP-Script dieses Shell-Binary benutzt, stimmen so wenigstens überall die Parameter.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: $shellBefehl = "unzip $tarName";

Postby Nobbie » 23. January 2009 20:04

glitzi85 wrote:Die Datei unzip gibt es unter Windows im Normalfall erstmal nicht.


Autsch!!!

Du solltest wohl auch besser erst "unzip Windows" in Google eingeben, bevor Du so etwas behauptest. Ich weiß, Du willst helfen und meinst es gut, aber wenigstens einmal googlen kann doch nicht schaden, oder? Ist übrigens auch gleich der allererste (Voll)Treffer.

Und das unzip.exe (und die DLLs) kopiert man einfach in das system32 Verzeichnis und schon kann Windows unzip....
Nobbie
 
Posts: 13165
Joined: 09. March 2008 13:04

Re: $shellBefehl = "unzip $tarName";

Postby glitzi85 » 23. January 2009 22:34

Nobbie wrote:
glitzi85 wrote:Die Datei unzip gibt es unter Windows im Normalfall erstmal nicht.

Du solltest wohl auch besser erst "unzip Windows" in Google eingeben, bevor Du so etwas behauptest. Ich weiß, Du willst helfen und meinst es gut, aber wenigstens einmal googlen kann doch nicht schaden, oder? Ist übrigens auch gleich der allererste (Voll)Treffer.

Ich weiß ja nicht welches Windows du hast, aber bei meinen Win-Installation war die unzip in der Tat nicht vorhanden. Ich hab ja nicht behauptet dass es unzip für Windows nicht gibt, aber bei einer Standardinstallation ist es nunmal definitiv nicht dabei. Dass ich 7-zip bevorzuge liegt daran, dass ich es häufig verwende. Warum soll ich das dann nicht weiterempfehlen?

mfg glitzi
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Re: $shellBefehl = "unzip $tarName";

Postby Nobbie » 24. January 2009 13:01

>Ich weiß ja nicht welches Windows du hast, aber bei meinen Win-Installation war die unzip in der Tat nicht vorhanden.

Das habe ich ja auch nicht behauptet. Aber wenn man einfach "unzip Windows" in Google eingibt, ist direkt der erste Treffer unzip for Windows.

Und wie Wiedmann richtig anmerkt: unzip ist keinesfalls ein Linux Programm (bzw. GNU Programm). Das "Orignal" ZIP Programm ist das uralte PKZIP aus DOS-Zeiten. Natürlich ist in Windows kein externes unzip.exe integriert (aber im Explorer ist es seit XP integriert, in Linux auch erst mit den neueren Distributionen - ich kenne noch die Zeiten, wo man sich das selbst kompilieren mußte), aber wieso niemand (und schon gar nicht der Fragesteller) einfach "unzip Windows" ausprobiert (das ist allerallererste, was ich täte), ist mir schleierhaft.

>Dass ich 7-zip bevorzuge liegt daran, dass ich es häufig verwende. Warum soll ich das dann nicht weiterempfehlen?

Ich benutze auch 7-Zip gerne, aber an dieser Stelle würde ich es eben nicht empfehlen, weil sonst das PHP Script angepasst werden muss, während es mit einer echten unzip.exe unabhängig vom verwendeten Betriebssystem gleich aussieht, was ich für sehr wichtig halte.
Nobbie
 
Posts: 13165
Joined: 09. March 2008 13:04

Re: $shellBefehl = "unzip $tarName";

Postby Stefan_Niederkofler » 03. February 2009 21:15

Eine letzte Frage zu diesem Thema

Ich habe jetzt folgende Beispiel Hierarchie:

1. Ebene:
- Ordner "Test"
- php datei mit dem Inhalt:
Code: Select all
<?PHP

$tarName = 'test/1.zip';

$shellBefehl = "unzip $tarName";

$shellBefehl = escapeshellcmd($shellBefehl);

exec($shellBefehl,$nu);

print_r($nu);

?>



2. Ebene (Ordner "test")
- zip Datei

Wenn ich die php Datei jetzt ausführe, wird der Inhalt von 1.zip in die erste Hierachie ebene, also zur php datei entpackt. Ich möchte aber das genau dort, wo sie liegt, auch entpackt wird. Wo kann ich den Pfad dafür angeben?

Vielen Dank!
Stefan_Niederkofler
 
Posts: 6
Joined: 23. January 2009 11:39

Next

Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 51 guests