Avatar billede aslan Nybegynder
07. januar 2003 - 22:01 Der er 17 kommentarer og
2 løsninger

Generere php sider?

Er det muligt at generere foruddefineret php sider med php?
Avatar billede rzj Nybegynder
07. januar 2003 - 22:02 #1
svaret er ja, men hvad mener du med 'foruddefinerede'?
Avatar billede aslan Nybegynder
07. januar 2003 - 22:06 #2
Jeg vil lave en php side med dertil tilhørende sql og kodning, og på kommando skal jeg kunne generere flere af disse sider bare med forskellige navne som jeg selv bestemmer...
Avatar billede rzj Nybegynder
07. januar 2003 - 22:37 #3
Avatar billede rzj Nybegynder
07. januar 2003 - 22:45 #4
eksempelvis:
<?php
$fileName = "youFile.php";
$fileContent = "<?print 'hello world';?>";
if (!$fp = fopen($fileName, 'w')) {
        print "Kan ikke åbne ($fileName)";
        exit;
}
if (!fwrite($fp, $fileContent)) {
        print "Kan ikke skrive til ($filename)";
        exit;
}
   
print "Succes, skrev ($fileContent) til filen ($fileName)";
   
fclose($fp);
?>
Avatar billede Slettet bruger
07. januar 2003 - 23:01 #5
Nedenstående funktion opretter en fil med navnet $filename og indholdet $content.

NB:
Skal køres i mappen dirname - men det kan du bare ændre!
Eksisterer $filename i forvejen bliver den slettet og en ny oprettet med samme navn!

function savefile($filename, $content)
{
    $tmpfilename = tempnam ("../dirname", "BM");
    $fp = fopen($tmpfilename, "w");
    fwrite($fp, $content);
    fclose($fp);
    if(is_file("../dirname/".$filename))
    {
        unlink("../danzka/".$filename);
    }
    if(rename($tmpfilename, "../danzka/".$filename))
    {
        return $filename." er nu oprettet";
    }
    else
    {
        return $filename." er ikke oprettet";
    }
}
Avatar billede Slettet bruger
07. januar 2003 - 23:03 #6
Hmmm.... så virker det bedre!

function savefile($filename, $content)
{
    $tmpfilename = tempnam ("../dirname", "BM");
    $fp = fopen($tmpfilename, "w");
    fwrite($fp, $content);
    fclose($fp);
    if(is_file("../dirname/".$filename))
    {
        unlink("../dirname/".$filename);
    }
    if(rename($tmpfilename, "../dirname/".$filename))
    {
        return $filename." er nu oprettet";
    }
    else
    {
        return $filename." er ikke oprettet";
    }
}
Avatar billede aslan Nybegynder
08. januar 2003 - 11:23 #7
regin ... når jeg forsøger således:

<?
function savefile($filename, $content)
{
    $tmpfilename = tempnam ("../dirname", "BM");
    $fp = fopen($tmpfilename, "w");
    fwrite($fp, $content);
    fclose($fp);
    if(is_file("../dirname/".$filename))
    {
        unlink("../dirname/".$filename);
    }
    if(rename($tmpfilename, "../dirname/".$filename))
    {
        return $filename." er nu oprettet";
    }
    else
    {
        return $filename." er ikke oprettet";
    }
}

    $filename="test";
    $content="hej";

    savefile($filename, $content);
 
?>


får jeg denne fejl selvom jeg gør som du siger :

Warning: Rename failed (No such file or directory) in c:\program files\nusphere\apache\htdocs\agabooking\indhold\musikGrupper\dirname\test.php on line 19
Avatar billede aslan Nybegynder
08. januar 2003 - 11:28 #8
rzj... når jeg forsøger din metode skriver den :

Succes, skrev () til filen (youFile.php)

men når jeg så kigger efter filen youFile.php er den slet ikke blevet oprettet?
Avatar billede Slettet bruger
08. januar 2003 - 11:58 #9
prøv med:
$tmpfilename = tempnam ("../dirname", "BM");
echo "FILNAVN: ".$tmpfilename;
Fortæl mig lige, hvad du får!?
Avatar billede aslan Nybegynder
08. januar 2003 - 12:02 #10
Jeg får dette:

FILNAVN: C:\WINNT\BM84.tmp
Warning: Rename failed (No such file or directory) in c:\program files\nusphere\apache\htdocs\agabooking\indhold\musikGrupper\dirname\test.php on line 21
Avatar billede aslan Nybegynder
08. januar 2003 - 12:03 #11
hhmmm hvorfor ligger den filen i winnt mappen?
Avatar billede Slettet bruger
08. januar 2003 - 12:07 #12
fordi din installation af PHP og Apache er sat til at lægge disse filer i den mappe!
Nedenstående skal nok ændres til den absolutte adresse!
if(rename($tmpfilename, "../dirname/".$filename))
Avatar billede aslan Nybegynder
08. januar 2003 - 12:22 #13
Det seer ud til at virke, men hvordan får jeg så smidt indholdet af en hel side med som jeg gerne vil generere en php side af?
Avatar billede Slettet bruger
08. januar 2003 - 12:24 #14
savefile("filnavn.php","<?php echo \"test\"; ?>");
Avatar billede aslan Nybegynder
08. januar 2003 - 12:47 #15
Ok giv et svar så du kan få point.. jeg kan oxo se at rzj forslag virker nu...

Dog savner jeg at man kunne generere ud fra en php fil istedet for indhold, men det er vel ikke muligt?
Avatar billede Slettet bruger
08. januar 2003 - 12:50 #16
Det kommer an på, hvad du mener med "generere ud fra en php fil"!?
Avatar billede aslan Nybegynder
08. januar 2003 - 12:54 #17
Jamen at jeg f.eks kunne sige:

    $filename="filnavn.php";
    $content="indhold.php";

    savefile($filename, $content);

istedet for at jeg skal includere linje for linje i $content
Avatar billede Slettet bruger
08. januar 2003 - 13:00 #18
Arrhhh....
prøv med.... er dog ikke helt sikker!?
$content = file_get_contents("indhold.php");
Avatar billede rzj Nybegynder
08. januar 2003 - 13:02 #19
er det så ikke sådan her:
$content = "indhold.php";
$fp = fopen($content, 'r') or die("Error: Failed to open file: $filename");
    $fileContent = fread($fp, filesize($content)); 
    fclose($fp);
savefile($filename, $fileContent);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester