windows - Php exec () returværdi 1073740791

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at køre .exe fil ved hjælp af exec () i php og få stdout output og brug det så i php. Problemet er, at jeg ikke får nogen output som $ linjer returneres og returnere værdi som $ return er -1073740791. Jeg kunne ikke finde nogen løsning.


Kode:


  <?php
            if (isset($\_GET["query"]) && isset($\_GET["number"])) {
                $file = 'src\infix\_to\_postfix\_and\_evaluate.exe';
                $input = $\_GET["number"] . ' "' . $\_GET["query"] . '"';

                if (file\_exists($file)) {
                    echo "<p>file " . $file . " exists</p>";
                } else {
                    echo "<p>file " . $file . " does NOT exists</p>";
                }

                $return = 5;
                $toexec = $file . " " . $input;

                exec($toexec, $lines, $return);
                //$lines = system($toexec, $return);
                var\_dump($toexec);
                echo "<br>";
                var\_dump($lines);
                echo "<br>";
                var\_dump($return);
                echo "<br>";

                foreach ($lines as $item) {
                    echo '<a href="./data/doc' . $item . '.txt">' . 'doc' . $item . '.txt' . "</a><br>";
                    echo "<br>";
                }
            } else {
                echo "<p>its working but sadly not now (=\_=)</p>";
            }
            ?>


Output på side i broswer er:


file srcinfix\_to\_postfix\_and\_evaluate.exe exists
string(54) "srcinfix\_to\_postfix\_and\_evaluate.exe 10 "cat AND dog"" 
array(0) { } 
int(-1073740791) 


Jeg lavede 'hej verden' test.exe, og hvis jeg ændrer denne linje:


$file = 'src\test.exe';


Output er:


file src	est.exe exists
string(29) "src	est.exe 10 "cat AND dog"" 
array(1) { [0]=> string(13) "Hello, World!" } 
int(0) 
docHello, World!.txt


Så tekst.exe virker.


Det er sjovt, når jeg kører mit program fra terminal fra andre steder. Fra src virker det og fra forælder mappe det ikke.
terminalbillede [5]


Hjælp mig pls! Jeg er på Windows ved hjælp af XAMPP med Apache.


PS: Dette er mit første spørgsmål, sry for engelsk.

Bedste reference