Ik ben bezig om een installatie script te maken zodat ik makkelijk php bestanden kan schrijven zonder via ftp te hoeven uploaden. Ik heb al uitgeprobeerd dat ik met:
$stringData = <<<EOT
<?php
hier tekst en code
?>
EOT;
Het een en ander kan bereiken, enkel als hier php functies en variabelen in komen te staan dan krijg ik foutmeldingen. PHP wil dan de code uitvoeren alvorens deze in een bestand te schrijven. Dit mag dus niet! Wie weet hoe ik dit het beste kan doen?
Ik ben ooit eens een script tegen gekomen waarbij dat kan/kon en heb die opgeslagen dus ik heb even voor je gezocht. Ik zou alleen niet weten waar ik het vandaan heb gehaald. Maar goed volgens mij werkt het nog wel:
<?php
$config = 'includes/wegschrijf_bestand.php' ; // bestand waar het in moet komen te staan
// als de config bestaat de $vars inlezen
if(file_exists($config))
{
include($config);
}
// anders initialiseren
else
{
// Database connectie
$string1 = '';
$string2 = '';
$string3 = '';
}
// is er gepost dan de $vars overnemen
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Database connectie
$string1 = addslashes($_POST['string1']);
$string2 = addslashes($_POST['string2']);
$string3 = addslashes($_POST['string3']);
$inhoud = '<?php
$string1 = "' . $string1 . '";
$string2 = "' . $string2 . '";
$string3 = "' . $string3 . '";
?>';
$openconfig = fopen("" .$config."", "w");
fwrite($openconfig, $inhoud);
// De data is er nu ingeschreven
// Dus nu gaan we het bestand weer netjes sluiten!
fclose($openconfig);
echo "aangepast.";
}
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<input type="text" name="string1" value="<?php echo stripslashes($string1); ?>" />
<input type="text" name="string2" value="<?php echo stripslashes($string2); ?>" />
<input type="text" name="string3" value="<?php echo stripslashes($string3); ?>" />
<input type="submit" name="proceed" id="proceed" value="Opslaan" />
</form>
Ik durf alleen niets te zeggen over de veiligheid. Ik denk dat andere mensen daar beter in zijn. Ben ik eigelijk ook wel benieuwd naar.
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/vhosts/a-development.nl/httpdocs/test/test.php on line 7
Ja dit werkt, nu wil ik het verder uitbereiden dat ik een een php file kan importeren en alle $ escaped. Op welke manier kan ik zoeken naar alle variabelen en deze escapen?
[edit] Zelf al oplossing gevonden, str_replace is de oplossing:) Bedankt mensen!