Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Komendy dzialajace jak cmd, problem z przekazywaniem zmiennych wejsciowych
poh
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 1
Dołączył: 12.12.2008

Ostrzeżenie: (0%)
-----


Witam, pisze maly serwis, ktory ma za zadanie wykonanie programu napisanego w cpp z obsluga wejsc i wyjsc (stdin stdout).

Pod windowsem, w cmd, odbywa sie to za pomoca

Kod
C:\sciezka\program.exe <in.txt >out.txt


Na localhoscie (xampp, apache z php 5.3) dzialaja wszystkie funkcje, ktore "imituja" cmd np: exec, system, proc_open.

Natomiast, jesli chce to umiescic na serwerze w szkole (w64, IIS, php 5.2, safe_mode off, w/w funkcje dzialaja), php tak jakby nie widzi, ze wejscia z stdin np:

Kod
2 4
1 3
4 5
6 3
...

"naleza" do programu i wyswiela bledy wiersza polecen, ze "2 4 jest nieprawidlowa komenda blabla..".

przykladowe uzycie exec() w tym przypadku wyswietla bledy w $output

  1. <?php
  2. exec("%windir%\\SysWoW64\\cmd.exe \k C:\\sciezka\\app.exe <in.txt 2>&1", $output);
  3. ?>


lub tez proc_open()

  1. <?php
  2. $descriptorspec = array(
  3. 0 => array("file", "in.txt", "r"), // stdin is a pipe that the child will read from
  4. 1 => array("file", "out.txt", "w"), // stdout is a pipe that the child will write to
  5. 2 => array("file", "error-output.txt", "a") // stderr is a file to write to
  6. );
  7.  
  8. $process = proc_open('%windir%\\SysWoW64\\cmd.exe \k C:\\sciezka\\app.exe', $descriptorspec, $pipes);?>


Jak rozwiazac problem? na localhoscie dziala wiekszosc (jak nie wszystkie) rozwiazan, na serwerze zadne..
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 09:55