Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

exec et mise en forme

1 réponse
Avatar
denist
Bonjour,

J'ai ce petit script et je souhaite mettre en forme le résultat :

<?php
$data = array();
exec('df -ah', $data, $ret);
echo "<pre>";
if ($ret == 0) {
foreach ($data as $line) {
echo "$line\n";
}
} else {
echo "erreur";
}
echo "</pre>";
?>

Qui donne actuellement :

Filesystem Size Used Avail Use% Mounted on
/dev/md1 5.0G 3.5G 1.3G 73% /
proc 0 0 0 - /proc
sysfs 0 0 0 - /sys
devpts 0 0 0 - /dev/pts
/dev/md2 69G 30G 36G 46% /home
tmpfs 4.0G 0 4.0G 0% /dev/shm
none 0 0 0 - /proc/sys/fs/binfmt_misc

Est-il possible de traiter les colonnes et les lignes séparément ? Par
exemple mettre la première ligne en gras ?

Merci d'avance

1 réponse

Avatar
Olivier Miakinen
Bonjour,

Le 04/01/2011 00:05, denist a écrit :
Bonjour,

J'ai ce petit script et je souhaite mettre en forme le résultat :

<?php
$data = array();
exec('df -ah', $data, $ret);
echo "<pre>";
if ($ret == 0) {
foreach ($data as $line) {
echo "$linen";
}
} else {
echo "erreur";
}
echo "</pre>";
?>



Je me permets de mettre d'abord en forme le code source pour le rendre
plus lisible. ;-)

<?php
$data = array();
exec('df -ah', $data, $ret);
echo "<pre>";
if ($ret == 0) {
foreach ($data as $line) {
echo "$linen";
}
} else {
echo "erreur";
}
echo "</pre>";
?>

Qui donne actuellement :

Filesystem Size Used Avail Use% Mounted on
/dev/md1 5.0G 3.5G 1.3G 73% /
proc 0 0 0 - /proc
sysfs 0 0 0 - /sys
devpts 0 0 0 - /dev/pts
/dev/md2 69G 30G 36G 46% /home
tmpfs 4.0G 0 4.0G 0% /dev/shm
none 0 0 0 - /proc/sys/fs/binfmt_misc



Fais attention que certains caractères spéciaux pourraient être présents
dans le résultat. Je te conseille donc de remplacer :
echo "$linen";
par :
echo htmlspecialchars($line) . "n";

Est-il possible de traiter les colonnes et les lignes séparément ?



Je ne comprends pas la question.

Par exemple mettre la première ligne en gras ?



Là je comprends. Tu peux essayer par exemple ceci :

<?php
$data = array();
exec('df -ah', $data, $ret);
echo "<pre>";
if ($ret == 0) {
$firstline = true;
foreach ($data as $line) {
if ($firstline) echo "<strong>";
echo htmlspecialchars($line);
if ($firstline) echo "</strong>";
echo "n";
$firstline = false;
}
} else {
echo "erreur";
}
echo "</pre>";
?>

Bien entendu, libre à toi ensuite de styler en CSS les éléments
« pre strong » pour qu'ils soient dans une autre couleur au lieu
d'être en gras.

--
Olivier Miakinen