Newsgroup: it.comp.www.php
Titolo: Aiuto! PHP e il linguaggio C

Buongiorno a tutti,
ho letto diversi libri su Php ma non ho trovato nulla riguardo PHP e la
sua compatibilità con C.
Per la precisione volevo sapere se è possibile lanciare con un comando PHP
un eseguibile scritto in C che restituisca dei valori allo script.
Qualcuno mi potrebbe aiutare in merito?
grazie mille
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio
news:ajb9a3$2ig$1...@news.newsland.it...

Indipendentemente dal fatto che un certo eseguibile sia scritto in C, Perl o
altro puoi usare la funzione shell_exec().
Ovviamente l'eseguibile deve essere sul server, ma questo è palese :-)
Ciao,
Nico

 Nico
Ciao Nico, ti ringrazio per la risposta e approfitto della tua cortesia
per approfondire:
è possibile recuperare i valori delle variabili (ovviamente conosciute a
priori) dell'eseguibile in modo da renderle note a PHP e in che modo
eventualmente queste variabili posso passarle nuovamente all'eseguibile
con i nuovi valori?
Il mio problema è che vorrei interfacciare sotto web un applicativo
scritto in c.
Ti ringrazio anticipatamente e resto a disposizione...
Saluti, Davide.


 ha scritto nel messaggio
news:ajbh5k$ene$1...@news.newsland.it...

Scusa ma non riesco a capire cosa intendi. Intanto non capisco cosa cambia
se l'eseguibile è stato scritto in C o altro: se è compilato cosa cambia il
linguaggio con cui è stato scritto.
Poi non capisco cosa significa "recuperare i valori delle variabili
(ovviamente conosciute a priori)". In PHP puoi passare delle variabili da
riga di comando, ma non se se è questo che intendi.
Fammi un esempio per capire meglio.
Ciao,
Nico

 Nico
Ok, spero di essere chiaro:
Immagina che un programma in genere faccia una semplice somma tra "a" e
"b" visualizzando la variabile "c" come risultato.
Ora è possibile richiamare l'applicazione con PHP per ottenere il valore
della variabile "c"?
In questo modo sempre con Php è possibile modificare il valore della
variabile "c" ed inviarlo ad un programma ad esempio che mi calcola il 10%
della variabile?
Ovviamente l'esempio è da imbecille visto che tutto ciò si può fare
direttamente con PHP, ma appunto serve solo per rendere quanto più
semplice possibile il concetto...
Altro esempio
Immagina che io ho un programma che mi visualizza gli appuntamenti di un
giorno nelle variabili "lun" mar" "mer" e via dicendo che vengono
recuperate da un file.xxx.
Ora io con php vorrei modificare i valori di queste variabili e
trasmetterli nuovamente al programma che provvederà ad aggiornare il
file.xxx.
Non mi interessa farlo direttamente altrimenti dovrei ricompilare tutto il
programma in php (praticamente impossibile) quindi vorrei creare un
interfaccia tra php e il programma in modo tale che si scambino i valori
delle variabili.
Spero di essere stato chiaro attendo una tua risposta (sarebbe per me come
un bicchier d'acqua nel deserto).
Grazie infinite.


della variabile "c"?
dai un'occhiata a questa funzione, che utilizza gli apici inversi per eseguire i
programmi e recuperare il loro output:
------------8<------------8<------------8<------------8<------------8<----------
	function ping($host, $count=1)
	{
		$os = 'linux';
		if ($os =='win')
		{
			$output = `ping -n $count $host`;
		}
		else
		{
			$output = `ping -t $count $host`;
		};
		$status = substr_count($output, "Richiesta scaduta");
		if ($status > 0)
		{
			return 0;
		}
		else
		{
			return 1;
		}
 
	}
------------8<------------8<------------8<------------8<------------8<----------
in $output avrò appunto l'output del programma.
Se al tuo eseguibile fai stampare a video i valori che ti servono li puoi
recuperare con gli apici inversi e analizzarli con le varie funzioni di ricerca
nelle stringhe (
http://www.php.net/manual/en/ref.strings.php
)
HTH
-- 
See ya EndelWar
FIDDer #19, the FAQer
Gestore del Play By E-Mail di D&D terza edizione
Vieni a trovarci su 
www.gioco.net/fantasy/dnd/3ed

 file.xxx.
FORSE e sottolineo il FORSE puoi fare qualcosa con la memoria condivisa
(Shared Memory) o con cose simili.
Da PHP allochi un pezzo di memoria condivisa (dovrai usare un certo ID)
e ci piazzi dentro secondo una struttura che ti sarai progettato i dati
che vuoi trattare (quindi scordati le astrazioni del PHP per quanto
riguarda gli array, per esempio) e, con lo stesso ID, dal programma in
C allochi la stessa memoria e avrai accesso agli stessi dati.
Ti avviso che questo presuppone una discreta strategia di
sincronizzazione tra i software, e si va nel campo della
multiprogrammazione (multitasking e multithreading) quindi richiede
conoscenze che vanno oltre quelle che ha di solito chi fa siti web, ma
a parer mio molto interessanti e stimolanti. :)
Io non ho mai provato se la condivisione funzioni tra PHP e C, ma non
vedo motivi per cui non dovrebbe funzionare.
Io comunque parlo dell'ambiente Linux. Non so come sia il supporto di
Windows per la memoria condivisa, soprattutto da C (il PHP magari la
astrae in modo piu` semplice e compatibile, ma per il C servono le
librerie e il supporto IPC).
Buona fortuna.
Bye.

 ha scritto nel messaggio
news:bloiluoaaui5re6jc...@4ax.com...

Usare gli apici inversi è esattamente come usare shell_exec(). Io preferisco
la seconda, poichè non idea di quale sia il codice ascii dell'apice inverso
;-)
Nico

 ha scritto nel messaggio
news:ajblne$lsr$1...@news.newsland.it...

Se puoi accedere al codice C, e non ti basta l'output ottenuto con
shell_exec(), usa dei file di scambio. Non è elegantissimo ma funzionale.
Dipende molto anche da che applicazione si tratta.
Sicuramente il sistema di Alessandro Pellizzari è più elegante, ma anche più
complesso.
Altra possibilità è hackerare PHP, scrivendoti delle funzioni ad hoc per lo
scambio dei dati con l'applicazione. Ma anche questa strada è dura.
Ciao,
Nico

 ;-)
Con una tastiera italiana dovrebbe bastare [ALTGR]+['].
(poi se uno usa una tastiera internazionale con le dead keys ovviamente è
tutta un'altra vita :D)
See you,
	Silver Drake
--
Digital Rights: Every bit you compute 
can and will be used against you. [SD 2002]
http://www.iammol.com

Vorrei ringraziare tutti quanti per l'aiuto anche se non ho capito
esattamente in che modo gestire l'output del programma c.
Se io ho in output diverse variabili come faccio a distignuerle? mi
vengono memorizzate in shared memory o in una variabile php che io
specifico?
Grazie di nuovo a tutti per l'aiuto.


 ha scritto nel messaggio
news:ajd9tn$elv$1...@news.newsland.it...

Dipende da come è l'output del programma.
Se usi shell_exec() puoi inserire in una variabile php l'output, a quel
punto te lo processi come vuoi.
Nico