5139 sujets

Le Bar du forum

Bonjour,
Je reviens sur mon précédent post.
J'ai implanté les instructions suivantes en PHP:


<?php
$output = shell_exec('sensors -j');
echo $output;
?>

Et j'obtiens bien dans $output les infos remontées par sensors -j.

{ "cpu_thermal-virtual-0":{ "Adapter": "Virtual device", "temp1":{ "temp1_input": 44.008 } }, "rpi_volt-isa-0000":{ "Adapter": "ISA adapter", "in0":{ "in0_lcrit_alarm": 0.000 } } } 

C'est pas super ! Mais j'aimerai bien isoler juste la température, dans le cas cité 44.008.
Esr-ce possible ou dois-je faire quelques lignes en JS pour ce faire ?
Merci d'avance
H.
Bonsoir,
J'ai essayé un tas de combinaison pour décoder Json, mais je ne dois pas être à la bonne page !
Alors j'ai testé ceci :

	<?php
		$output = shell_exec('/opt/vc/bin/vcgencmd measure_temp');
		echo $output;
		echo 'hi';
	?>

Avec une petite ligne de test, echo 'hi' pour bien me situer sur l'écran.
Et je n'ai aucun retour dans $output.
Par précaution, j'ai regardé les droits sur opt et les fichiers y afférents, et ils ont tous les droits lire et exécuter (755).
Et si je lance la commande directement à travers de putty, utlisateut Pi ou root, j'obtiens bien ma température.
Quel mystère ?
Merci à tous
H.
Modérateur
Bonsoir,

un return plutôt qu'un echo ne fonctionnerais pas mieux. La variable est plutôt une fonction ici.

Je ne suis pas un expert non plus Smiley smile

cdt
A tous,
J'ai, à force de tester des solutions et des autres, je suis arrivé à ça :

	<?php
		$ligne = shell_exec('sensors -A');

		$pieces = explode (":", $ligne);
		$temp = $pieces[1];

		$pces = explode ("C", $temp);
		$temp1 = $pces[0];
		echo $temp1;
?>

Et ça marche !
J'ai utilisé l'option -A plutôt que -J. et ainsi, au lieu d'une chaîne Json, j'ai un chaîne ASCII.
Plus facile, pour moi, à exploiter.
Bon, des puristes me dirait qu'on peut faire mieux ...
Avec mes remerciements à ceux qui se sont penchés sur ce problème, et aux autres qui peut-être y ont réfléchi ...
Cordialement
H.
Meilleure solution