Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]exec pomoc
Forum PHP.pl > Forum > Przedszkole
hunter209
Nie wiem czy dobrze zrozumiałem opisy w Internecie exec. Chce odpalić skrypt Pythona na serwerze. Jednak nie wiem czy to działa czy nie, ponieważ otwierając plik test.php wyświetla się biała strona :|

test.php

Kod
<?php
exec("python stats.py");
?>


Co z tym zrobić?? blinksmiley.gif
Zyx
Programy uruchamiane z linii komend najczęściej wypisują wynik swojego działania na standardowe wyjście. Zatem samo wywołanie exec() nie oznacza, że wynik od razu pojawi się na ekranie - on dociera do PHP, ale ty go w ogóle nie odbierasz. Poczytaj dokładnie dokumentację - tam jak byk widoczny jest drugi parametr, do którego podrzucasz przez referencję pustą tablicę. Po wykonaniu znajdziesz tam całe wyjście tak odpalonego programu rozbite na pojedyncze linijki:

  1. <?php
  2. $answer = array();
  3. exec('python costam.py', $answer);
  4. foreach($answer as $line)
  5. {
  6.  echo $line;
  7. }
  8. ?>
hunter209
nie potrzebuję zwracania wyników. Chce tylko odpalić skrypt i wyłączyć komputer smile.gif Chciałbym, żeby .py chodził na serwerze. (w tle?)

Nie zrozumiałem dokumentacji pewnie dlatego, że nie jest ona w całości przetłumaczona. Nie znam fachowego angielskiego dry.gif W obecnej sytuacji całkowicie nie wiem co mam robić. Zawsze odpalałem ten skrypt z poziomu ssh, ale serwer wysiadł i muszę napisać skrypt, który odpali mi .py na innym serwerze (bez ssh) sciana.gif
Zyx
Heh... w takim razie akurat ta część, która mogłaby Cię naprowadzić na trop, jest przetłumaczona smile.gif. Da się odpalić skrypt działający w tle z poziomu PHP - po prostu przekieruj gdzieś jego standardowe wyjście - do /dev/null albo pliku jakiegoś...
hunter209
Cytat
Notatka: Jeśli ta funkcja zostanie użyta do uruchomienia programu który ma działać w tle, należy upewnić się, że wyjście tego programu jest przekierowane do pliku lub innego strumienia wyjściowego. W przeciwnym wypadku PHP zawiesi działanie aż do zakończenia działania wykonywanego programu.


No tak.... nie zrozumiałem, myślałem, że dostane gotowe rozwiązanie dry.gif Po googlowałem i znalazłem, ale nadal to samo. Czyli biała strona,a skrypt sie nie uruchamia (skrypt powinien wyciągać pewne dane. Skrypt na 100% działa poniewaz odpalałem go przez shell)

Kod
<?php
   $answer = array();
   exec('python stats.py 1>/dev/null/ 2>&1 &', $answer);
   foreach($answer as $line)
   {
    echo $line;
   }
   ?>
-hunter-
Czytałem, szukałem, nie mogę sobie z tym poradzić sad.gif Czy ktoś mógłby mi napisać ten krótki skrypt? Chciałbym, odpalić "stats.py". Kupiłem sobie miejsce na serwerze hoste.pl, serwer ten obsługuje aplikacje pythona. Ale co z tego, jak nie mogę odpalić pliku sad.gif Niestety nie mam dostępu ssh...
pricho
Podłączem się pod wątek, problem prawie ten sam, tylko że pod windą. Chcę uruchomić program który bez problemu działa pod CMD, jednak chcę aby program uruchamiał się z parametrami, które będą zaciągane z bazy - no mniejsza o to! za pioruna jasnego nie wiem, jak uruchomić exe'ka... pomoże mi ktoś? nie proszę o gotowe rozwiązanie, ale o wskazówki - i nie odsyłajcie mnie do manuala, bo tam już szukałem (najprawdopodobniej mało skutecznie) sad.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.