PHP exec()

PHP exec()

offline
  • Pridružio: 25 Jul 2014
  • Poruke: 13

Molio bih za pomoc oko exec() funkcije, nisam uspeo da nadjem odgovor. Hocu u moj php kod da ubacim dodatak napisan na C programskom jeziku sa tim da pri pozivu funkcije ja nekako posaljem i parametre iz PHP koda u C kod a da ne koristim pomocne foldere. Svaki savet bi dobro dosao! Hvala u napred i srecni praznici svima!



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • C# and PHP Developer
  • Pridružio: 16 Feb 2011
  • Poruke: 1630
  • Gde živiš: Pancevo

Druze nema tu neke matematike sto se tice ove funkcije

Recimo imas C program koji sabira 2 cela broja :

// testCprogram int main(int a, int b) {        int sum= a+b;         return sum; }

Onda jednostavno u PHP pozoves taj program

<?php exec('testCprogram 5 5', $odgovor);   // 10 ?>

Sto se tice integracije php i c jezika je najlaksa jer sam php itnerpreter je napisan u C jeziku.
Ako zelis da radis neke kompleksnije stvari sa interacijom izmedju C i C++ onda koristi Wrapper-e, imas ih dosta na netu.

Ja bih ti preporucio da koristis SWIG (http://www.swig.org)



offline
  • Pridružio: 25 Jul 2014
  • Poruke: 13

E tu mi se javlja problem. U exec funkciji ti fali jos jedna varijabla pored $odgovor koja smesta povratnu vrednost jer je vracas sa return. A sto se tice prosledjivanja a i b, to nece da radi. Sinoc sam pokusavao sve moguce kombinacije i nisam uspeo. Sad ili ja gresim negde ili ovo stvarno ne moze ovako, jel si ti pokusao ovaj primer koji si mi poslao?

offline
  • C# and PHP Developer
  • Pridružio: 16 Feb 2011
  • Poruke: 1630
  • Gde živiš: Pancevo

Napisano: 05 Jan 2015 13:46

Ono sto sam ja uradio izgleda ovako a tebi sam napisao jednostavno.

C program mora biti kompajliran da bi mogao da se izvrsi exec funkcijom. Drugi parametar nema potrebe da te opterecuje.



C Program
#include "stdio.h" #include <iostream> int main(int argc,char * argv) { printf("Prvi arg %d ", argv[1]); printf("\nDrugi arg %d", argv[2]); return 0; } //-------------------- PHP Code <?php exec("testone.exe 125 70 ", $out); print_r( $out); ?> Argument : <!-- Array ( [0] => Prvi arg 27 [1] => Drugi arg 27 ) -->

Dopuna: 05 Jan 2015 13:50

Ako nisi kompajlirao C kod onda to uradi pa ga pozovi exec funkcijom i prosledjuj parametre kako god zelis. Druga stvar kad pozivas C kod ili C++ uvek ce se izvrsava main() funkcija a da ti pritom zelis da pozoves neku trecu funkciju, onda napravi switcher ili bolje receno prekidac sa switch da na odredjeni argument pozove datu funkciju c programa.

offline
  • Pridružio: 25 Jul 2014
  • Poruke: 13

E uspeo sam! Bio sam blizu sve vreme a i ti si mi dosta olaksao. Kod argv[] u printf ide %s tako da stampa tacno onako kao sto je prosledjeno. Sve u svemu hvala ti na iscrpnim odgovorima! Pozdrav!

Ko je trenutno na forumu
 

Ukupno su 1069 korisnika na forumu :: 39 registrovanih, 5 sakrivenih i 1025 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: babaroga, bigfoot, cenejac111, darkangel, Darko8, Dimitrise93, DPera, draganca, esx66, HrcAk47, ikan, janbo, Joja, Kibice, Koridor, Kubovac, KUZMAR, ladro, loon123, mercedesamg, Mi lao shu, milanovic, Millennium, mnn2, mushroom, Nemanja.M, Panter, rajkoplje, raketaš, raptorsi, Rogan33, Srle993, Tas011, Trpe Grozni, Vlada1389, vladulns, šumar bk2, žeks62, 79693