2010-04-12 4 views
2

Je veux simplement 'rar' un dossier avec l'aide de PHP. Il y a 2 façons de le faire. L'un est via shell_exec ou exec, ce qui ne fonctionne pas pour moi, bien que shell_exec et exec soient activés sur le serveur et fonctionnent pour d'autres commandes.Comment rar un dossier avec PHP?

L'autre méthode est via un fichier .sh, mais je ne sais pas comment l'utiliser correctement :(

J'ai besoin d'un code qui fonctionne correctement pour cela.

Je suis en train d'utiliser cette commande:

rar a -v100m -m0 /home/admin/somefolder.rar somefolder-to-rar

Il est Ubuntu 9.10

+1

vous pouvez essayer d'utiliser ZipObject, sans avoir besoin de commandes extrenal – albanx

Répondre

1

si d'autres commandes shell fonctionnent alors rar shou ld.

est rar.exe sur le chemin sur la machine? ou spécifiez-vous le chemin d'accès complet à rar.exe dans votre commande?

+0

non je ne spécifie pas le chemin complet de rar – Sjne

0

Avec PHP, vous pouvez utiliser des apostrophes inverses (``) pour exécuter une commande (from php.net)

Je ne suis pas sûr de ce qu'il serait de rar, mais zip serait:

<?php 
    `cd $dirToZip; zip -pr $nameOfZipFile *` 
?> 

En supposant votre commande est correcte et rar est accessible depuis cli les backticks devraient fonctionner.

1

Vérifiez le répertoire de travail, et essayez d'utiliser passthru pour afficher toute erreur de la sortie

0

Vous avez probablement un problème d'autorisations. Vérifiez pour vous assurer que quel que soit l'utilisateur PHP s'exécute comme il a accès pour exécuter RAR.

De même, suivez la suggestion de Sam d'utiliser le chemin complet. Votre chemin d'accès standard peut être spécifique à votre compte utilisateur, qui peut être différent pour l'utilisateur PHP.

Questions connexes