Bonjour à tous !
Alors voilà je vous explique ma requête
Je suis en train de développer un petit script pour un cms et c'est l'installation qui me pose problème.
En effet je souhaiterais via un fichier d'install que les fonction d'upload par défaut de tous les modules du cms soient remplacées par un include tout bête qui inclura a la place ma nouvelle fonction d'upload.
Voilà le code mis au point:
Donc en gros ce que je voudrait c'est une explication sur comment faire pour que dans mon install php recherche dans $filename le bout de code php suivant afin de le remplacer par mon $ncontent, soit une include toute bête:
Et ce quelque soit la ligne ou il se trouve dans $filename.
Je sais faire un remplacement tout bete via str_replace mais dans ce cas il faudrait pouvoir remplacer carrément tout un bout de code contenant sauts de ligne et php, donc c'est ca qui me pose problème.
J'aurais aimé si possible une réponse accompagnée d'un exemple
Merci à ceux qui prendrons un moment pour m'aider
Modifié par T!GeR (27 Jun 2006 - 12:07)
Alors voilà je vous explique ma requête

Je suis en train de développer un petit script pour un cms et c'est l'installation qui me pose problème.
En effet je souhaiterais via un fichier d'install que les fonction d'upload par défaut de tous les modules du cms soient remplacées par un include tout bête qui inclura a la place ma nouvelle fonction d'upload.
Voilà le code mis au point:
<?php
$ncontent = '<?php balibalo("nk_secure/function_upload.php"); ?>';
$ncontent = str_replace("balibalo","include", $ncontent);
if (file_exists("nuked.php"))
{
$dir = opendir("modules");
while ($module = readdir($dir))
{
$filename = "modules/" . $module . "/index.php";
if (file_exists($filename))
{
chmod ($filename, 0777);
if (is_writable($filename))
{
[#red]Code recherché pour realiser ce que je veux[/#]
echo "Module " . $module . " patché avec succès !<br />";
}
else
{
echo "Erreur lors de l'écriture dans le fichier index.php du module " . $module . " !<br />";
}
chmod ($filename, 0644);
}
else
{
echo "Le fichier index.php du module " . $module . " est mal installé<br />";
}
}
closedir($dir);
unlink("install.php");
}
else
{
echo "Vous devez placer install.php à coté de nuked.php !";
}
?>
Donc en gros ce que je voudrait c'est une explication sur comment faire pour que dans mon install php recherche dans $filename le bout de code php suivant afin de le remplacer par mon $ncontent, soit une include toute bête:
$content = '
<?php
$filename = "' . $_FILES['fichiernom']['name'] . '";
$filesize = "' . $_FILES['fichiernom']['size'] . '";
if ($filename != "" && $filesize <= 100000)
{
$f = explode(".", $filename);
$end = count($f) - 1;
$ext = $f[$end];
if ($ext == "jpg" || $ext == "jpeg" || $ext == "JPG" || $ext == "JPEG" || $ext == "gif" || $ext == "GIF" || $ext == "png" || $ext == "PNG")
{
$url_avatar = "upload/User/" . time() . "." . $ext;
move_uploaded_file("' . $_FILES['fichiernom']['tmp_name'] . '", $url_avatar) or die ("<br /><br /><div style=\"text-align: center;\"><b>Upload file failed !!!</b></div><br /><br />");
@chmod ($url_avatar, 0644);
}
else
{
bliblibli "<br /><br /><div style=\"text-align: center;\">" . _BADFILEFORMAT . "</div><br /><br />";
redirect("index.php?file=User&op=edit_account", 5);
closetable();
footer();
exit();
}
}
else if ($filename != "")
{
bliblibli "<br /><br /><div style=\"text-align: center;\">" . _FILETOOBIG . "</div><br /><br />";
redirect("index.php?file=User&op=edit_account", 5);
closetable();
footer();
exit();
}
else if ($avatar != "")
{
$ext = strrchr($avatar, '.');
$ext = substr($ext, 1);
if (!eregi(".php", $avatar) && !eregi(".htm", $avatar) && (eregi("jpg", $ext) || eregi("jpeg", $ext) || eregi("gif", $ext) || eregi("png", $ext)))
{
$url_avatar=$avatar;
}
else
{
bliblibli "<br /><br /><div style=\"text-align: center;\">" . _BADFILEFORMAT . "</div><br /><br />";
redirect("index.php?file=User&op=edit_account", 5);
closetable();
footer();
exit();
}
}
else
{
$url_avatar = "";
}
?>';
$content = str_replace("bliblibli","echo", $content);
Et ce quelque soit la ligne ou il se trouve dans $filename.
Je sais faire un remplacement tout bete via str_replace mais dans ce cas il faudrait pouvoir remplacer carrément tout un bout de code contenant sauts de ligne et php, donc c'est ca qui me pose problème.
J'aurais aimé si possible une réponse accompagnée d'un exemple

Merci à ceux qui prendrons un moment pour m'aider

Modifié par T!GeR (27 Jun 2006 - 12:07)