php schrijven naar php bestand via script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bart van Asselt

Bart van Asselt

26/02/2011 14:43:51
Quote Anchor link
Hallo,

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$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?

Alvast bedankt!
 
PHP hulp

PHP hulp

22/12/2024 03:29:32
 
Mar cel

Mar cel

26/02/2011 15:10:21
Quote Anchor link
De enigste manier lijkt mij om je complete code tussen " " te zetten, alle " die dan in je script staan moeten geescaped worden.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$string
= "
<?php
echo 'Hallo!';
echo \"Hallo!\";

function test(params) {
echo params;
}

echo 'Werkt allemaal prima:)';
?>
"
;
?>
Gewijzigd op 26/02/2011 15:12:04 door Mar cel
 
Bas IJzelendoorn

Bas IJzelendoorn

26/02/2011 16:01:49
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?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.
 
Bart van Asselt

Bart van Asselt

26/02/2011 23:14:01
Quote Anchor link
Als ik dit script maak en uitvoer krijg ik de volgende fout:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

$file
= "
<?php
    require_once('admin/include_back_end.php');
    
    $pagina = @$_GET['p'];
    $parent = @$_GET['a'];
    
    if ($pagina == '')
        $Web->parse_template_file('home');
    else
        $Web->parse_template_file($pagina);
?>"
;

?>



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
Gewijzigd op 26/02/2011 23:14:33 door Bart van Asselt
 
- Ariën  -
Beheerder

- Ariën -

26/02/2011 23:17:32
Quote Anchor link
$ even escapen met een \
 
Jaron T

Jaron T

27/02/2011 11:39:18
Quote Anchor link
- Aar - op 26/02/2011 23:17:32:
$ even escapen met een \


of enkele quotes gebruiken ipv dubbelen.
 
Bart van Asselt

Bart van Asselt

27/02/2011 13:17:02
Quote Anchor link
- Aar - op 26/02/2011 23:17:32:
$ even escapen met een \


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!
Gewijzigd op 27/02/2011 13:20:31 door Bart van Asselt
 
Jasper DS

Jasper DS

27/02/2011 13:19:43
Quote Anchor link
gebruik dan gewoon enkele quotes
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.