|
|
|

|
trucs 29/09/2022 autotéléchargement 07/02/2019 arborescence 29/05/2018 graphe 12/03/2019 version PHP 23/10/2018 | ||
# des trus super connus mais utiles
<?php die("on s'arrête là, var = " . $variable); ?> // debug
<?php phpinfo(); ?>
# dans des fichiers php integrés pour être sur de recuperer le resultat
# il ne faut pas fermer le php
<?php var_dump($_SESSION['download']);
| ||
<?php
## astuce pour rendre téléchargeable le code d'une page PHP
## ce paragraphe doit absolument se trouver dans le bloc PGP en tete de page avant tout code HTML
$file=getcwd().'/'.basename($_SERVER['PHP_SELF']);
if ($_SERVER['QUERY_STRING'] == "telecharger") {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
?>
## fin de paragraphe
#
#
# et mettre quelque part dans la page un objet clicable ( comme ici en haut à droite )
<?php echo '<a href="'.$_SERVER['PHP_SELF'].'?telecharger">'; ?>
telecharger la page
</a>
| ||
<?php
# affiche des liens vers les éléments de l'arborescence sous un repertoire jusqu'à un nombre N de nivaux
# pour eviter de boucler si l'arborescence est vérolée
MAX=10;
function explore($rep,$N) {
global MAX;
if ($N > 0) {
$liste=scandir (".");
natcasesort($liste);
foreach ($liste as $fichier) {
if ($fichier != "." && $fichier != "..") {
if ($N % 2 == 0) $fond="yellow"; else $fond="lime";
echo "<table cellspacing=10 cellpadding=10><tr><td valign=top bgcolor=$fond><a href=\"$rep/$fichier\">$fichier</a>";
if (is_dir($fichier)) {
$PROFONDEUR = 1 + $MAX - $N;
echo "<BR>§". $PROFONDEUR;
echo "<td bgcolor=$fond>";
if (chdir($fichier)) {
explore($rep."/".$fichier,$N - 1);
chdir("..");
}
}
echo "</table>\n";
}
}
}
}
# en second le nombre max de niveaux pour éviter de boucler si l'arborescence est vérolée
explore(".",$MAX);
?>
| ||
<?php
# affiche un graphe evec la commande système dot de GraphViz
### ATTENTION la commande 'base64' et la bibliothèque GraphViz doivent être installées sur le système
$type = "png";
$chaine = "digraph G {";
# DANGER si on met de la saisie ici, risque de piratage
$chaine = $chaine . "a->b->d a->c";
$chaine = $chaine . "}";
echo "<img src=\"data:image/$type;base64,\n";
echo exec("echo \"$chaine\" | dot -T$type | base64 -w 0");
# l'option -w 0 sert à tout mettre sur une ligne, sinon exec ne récupère que la dernière
echo "\" alt=\"graphe\" />";
?>
# problèmes de convertion
il arrive que certains systèmes ne gèrent pas tous les formats de fichier
il faut utiliser la fonction "convert" d'"ImageMagick"
pour forcer la sortie
dot -Teps | convert - png:- | base64 -w 0
| ||
# la version de PHP courante : $_SERVER['PHP_SELF'] | ||
