Avatar billede _k Nybegynder
26. april 2007 - 16:58 Der er 2 kommentarer og
1 løsning

System, exec, shell_exec - ikke hul igennem til exe

Bikser med at compile (Flash) swf'er igennem en php-side. Til det formål har jeg kastet øjnene på PHPs metoder til eksekvering af exe-filer.

Kører jeg f.eks. denne kommando fra command line eller i en batch-fil virker alt som det skal:

"C:\Programmer\Adobe\Flex Builder 2\Flex SDK 2\bin\"mxmlc -output "C:\Programmer\PHP\WebServ\wwwroot\htdocs\comp\test.swf" -- "ImageOver.mxml"

(mit output bliver så:

C:\Programmer\PHP\WebServ\wwwroot\htdocs\aga\comp>"C:\Programmer\Adobe\Fle
der 2\Flex SDK 2\bin\"mxmlc -output "C:\Programmer\PHP\WebServ\wwwroot\htd
a\comp\test.swf" -- "ImageOver.mxml"
Loading configuration file C:\Programmer\Adobe\Flex Builder 2\Flex SDK 2\frameworks\flex-config.xml
C:\Programmer\PHP\WebServ\wwwroot\htdocs\comp\test.swf (135876 bytes)
)

Men forsøger jeg at gøre det samme igennem "shell_exec", "system" eller andet igennem en php-side sker der ingenting.

$output = system('"C:\Programmer\Adobe\Flex Builder 2\Flex SDK 2\bin\"mxmlc -output "C:\Programmer\PHP\WebServ\wwwroot\htdocs\comp\test.swf" -- "ImageOver.mxml"');

Forsøger jeg med et "normalt" cmd-kald, virker det fint:

$output = system('dir');
echo "<pre>$output</pre>";

I php.ini er "safe_mode" sat til "off" og jeg har uden held forsøgt andre forklaringer her fra Eksperten.

Mangler jeg rettigheder fra Apache, er det min syntaks der er helt til hest, eller hvor kan den være gal?
Avatar billede coderdk Praktikant
26. april 2007 - 20:35 #1
\ skal være \\
Prøv også i toppen af scriptet at skrive:

error_reporint( E_ALL );

for at få diverse fejl at vide...
Avatar billede _k Nybegynder
26. april 2007 - 23:13 #2
Nu har jeg sat: error_reporting( E_ALL ); ind i toppen af min php - men jeg modtager ingen fejl? (min error_reporting er også slået til i php.ini og jeg modtager andre syntaks-fejl)

Jeg har også udskiftet alle \ til \\ - det gav heller ikke den store succes.

Derudover har jeg forsøgt at kalde en batch-fil med kaldet i stedet for selve kaldet. Det gav heller ikke det ønskede resultat. PHP'en ser sådan her ud:

$output = system('compiling.bat');
echo "<pre>$output</pre>";

..og batch-filen (som virker hvis jeg selv eksekverer den):

"C:\Programmer\Adobe\Flex Builder 2\Flex SDK 2\bin\"mxmlc -output "test.swf" -- "ImageOver.mxml"
pause
Avatar billede _k Nybegynder
23. maj 2007 - 17:32 #3
lukker og slukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester