Gå til innhold

[Løst] Output til HTML


Gjest Slettet-t9DveYkZ

Anbefalte innlegg

Gjest Slettet-t9DveYkZ

Hepp!

 

Jeg sitter å jobber med mitt første lille PHP-script, som gjør en ganske banal sak:

 

Steg 1: Brukeren fyller inn en form, med felter som henviser til en mappe, en filmfil og skjermbilde, kalt txtMappe, txtFilm og txtScreenshot.

 

Steg 2: Brukeren tas til en side som viser hvordan feltene er fylt ut, og forhåndsviser filmen i en player.

 

Headeren ser da slik ut:

<?php
session_start();

$_SESSION['txtScreenshot'] = $_POST["txtScreenshot"];
$_SESSION['txtFilm'] = $_POST["txtFilm"];
$_SESSION['txtMappe'] = $_POST["txtMappe"];
?>

Og fyller ut felter i en HTML-side:

<?php echo $_SESSION["txtScreenshot"]; ?> og <?php echo $_SESSION["txtFilm"]; ?>

 

Alt vel så langt!

 

Steg 3:

Brukeren blir nå tatt til en side hvor hele sulamitten skal dumpes som index.html der brukeren har oppgitt mappe i steg 1.

 

Prøvde å løse dette ved å gjøre følgende:

$doc = new DOMDocument();
$doc->formatOutput = true;
$doc->loadHTML(<masse html her><?php echo $_SESSION["txtFilm"]<?php echo $_SESSION["txtScreenshot"]);
$doc->saveHTMLFile('test.html');

Dette går da temmelig dårlig. php echo blir da stående i ren tekst i den resulterende HTML-siden, noe som jeg selvsagt forstår at vil skje, men jeg er usikker på hvordan jeg kan komme unna dette.

 

Kan jeg bruke steg to til å dumpe alt til en temp.html, og så bruke steg 3 til å dumpe til endelig fil?

 

Prøvde en mer banal utgave hvor steg 3 viste all HTML i ren tekst, og hvor da feltene ble rett utfylt, men da må brukeren lagre dette selv.

 

Dette er mitt første forsøkt på å kode PHP selv, så jeg tar forbehold om at logikken min er fullstendig på trynet. Det er selvfølgelig masse kode som ikke er vist her, men jeg håper det holder til å få en idé om hva jeg prøver å gjøre.

 

Sier takk for all hjelp!

Endret av Slettet-t9DveYkZ
Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet-t9DveYkZ

Da er i alle fall ett av problemene løst, garantert på et mindre elegant vis.

<?php
ob_start();
?>

<html>
<body>
<?php echo $_SESSION["txtFilm"]; ?>
</body>
</html>

<?php
$variable = ob_get_clean();

$doc = new DOMDocument();
$doc->formatOutput = true;
$doc->loadHTML($variable);
$doc->saveHTMLFile('test.html');
?>

Dette gir meg da test.html i mappen som php-filen ligger i, og txtFilm-verdien er utfylt.

 

Da gjenstår det bare å klare å lagre filen i en spesifisert mappe. :)

Lenke til kommentar
Gjest Slettet-t9DveYkZ

Da var denne saken i boks, så vidt jeg kan se.

Hvis noen har noen tips til hvordan jeg ytterligere kan optimalisere ting, tar jeg det gjerne i mot.

 

Eksempel på koden brukt:

<?php
session_start();

$rootpath = "../"; 
$filename = "/test.html";
$destination = $rootpath.$_SESSION["txtMappe"].$filename;

ob_start();
?>
<html>
<head>
<title><?php echo $_SESSION["txtTittel"];</title>
<body>
<embed screenshot=<?php echo $_SESSION["txtScreenshot"]; movie=<?php echo $_SESSION["txtFilm"]; ?>/ autoplay=<?php echo $_SESSION["txtAutostart"]; ?></embed>
</body>
</html>

<?php
$variable = ob_get_clean();

$doc = new DOMDocument();
$doc->formatOutput = true;
$doc->loadHTML($variable);
$doc->saveHTMLFile($destination);
?>
Endret av Slettet-t9DveYkZ
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...