Discussion:
exec et mise en forme
(trop ancien pour répondre)
denist
2011-01-03 23:05:49 UTC
Permalink
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
Olivier Miakinen
2011-01-03 23:56:30 UTC
Permalink
Bonjour,
Post by denist
Bonjour,
<?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>";
?>
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 "$line\n";
}
} else {
echo "erreur";
}
echo "</pre>";
?>
Post by denist
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 "$line\n";
par :
echo htmlspecialchars($line) . "\n";
Post by denist
Est-il possible de traiter les colonnes et les lignes séparément ?
Je ne comprends pas la question.
Post by denist
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
Continuer la lecture sur narkive:
Loading...