fwrite function binnen html tags

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Greg gil

greg gil

14/10/2015 10:52:25
Quote Anchor link
Hallo,

Ik heb een fwrite function en dit lukt perfect alleen ik krijgt de output niet binnen html tags maar steeds erbuiten.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
if ($total> "0") {
echo "<p>Total price is \$$total</p>\n"; }

if ($total> "0") {
$myFile = "pdf.php";
$fh = fopen($myFile, 'a') or die("can't open file");
$stringData = "Total price is\$$total\n";
fwrite($fh, $stringData);
fclose($fh); }
?>

Ward:
Graag voortaan bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 14/10/2015 11:13:04 door Ward van der Put
 
PHP hulp

PHP hulp

23/11/2024 21:10:51
 
Marthijn Buijs

Marthijn Buijs

14/10/2015 11:23:45
Quote Anchor link
Op regel 8?
$stringData = "<p>Total price is\$$total</p>\n";
 
Greg gil

greg gil

14/10/2015 11:35:44
Quote Anchor link
Deze string moet geschreven worden in het pdf.php file.
De pdf.php file is een file bestaande uit html met een table.
Het enige probleem is dat het de string onderaan buiten de html tags schrijft terwijl ik het graag zou hebben binnen de html tags en liefst nog binnen de table van de file
 
Thomas van den Heuvel

Thomas van den Heuvel

14/10/2015 11:50:25
Quote Anchor link
Euh, heb je geen rechtstreekse toegang tot dit PHP bestand?

Daarnaast lijkt mij het dynamisch aanpassen van code op deze wijze een onveilige en foutgevoelige methode.

Ik weet niet precies wat je probeert te doen of te bereiken, maar ik heb een sterk vermoeden dat dit niet de juiste manier is.
 
Jan de Laet

Jan de Laet

14/10/2015 11:51:14
Quote Anchor link
Welke HTML tags?
Ik denk dat we maar een deel van de code zien.
 
Thomas van den Heuvel

Thomas van den Heuvel

14/10/2015 12:03:49
Quote Anchor link
Los van het probleem waarvoor de topicstarter een oplossing wil, kijk eens naar wat de topicstarter doet.

Dynamisch code in een PHP-bestand wegschrijven? Wtf?
 
Ward van der Put
Moderator

Ward van der Put

14/10/2015 12:42:00
Quote Anchor link
Je zou inderdaad verwachten dat die $total wordt opgeslagen in de sessie of een database. Daarna kan pdf.php daarmee vervolgens zelf in een if ($total > 0) de weergave regelen.
 
Marthijn Buijs

Marthijn Buijs

14/10/2015 12:42:13
Quote Anchor link
Misschien gegevens naar een database wegschrijven en in pdf.php gegevens ophalen en een html tabel genereren?
 
Greg gil

greg gil

16/10/2015 11:56:12
Quote Anchor link
Ik zal misschien een beetje meer uitleg geven.
Het is de bedoeling dat de "echo &total" op de pdf staat.

Deze pdf wordt gemaakt door de file pdf.html.

Ik heb het al verkregen dat de echo &total het resultaat al weergeeft onder de html tags van de pdf.html file en weergegeven in mijn browser, maar om het te laten genereren op een pdf die doorgestuurd wordt moet het binnen de html tag staan.
 
Thomas van den Heuvel

Thomas van den Heuvel

16/10/2015 13:56:57
Quote Anchor link
Ah, dus pdf.html is het sjabloon wat je gebruikt om een PDF-bestand te genereren.

Dat was nogal onduidelijk omdat je het in je code hebt over pdf.php.

Ik denk dat het zin heeft om je gedachten (en je code) even te ordenen.

Wat je wilt bereiken is volgens mij vrij duidelijk: je hebt een lap HTML waarin variabele delen zitten die je wilt vullen via PHP. Vervolgens moet deze lap HTML in een PDF-bestand verwerkt worden. Tot zover correct?

Je hebt niet per se een apart bestand nodig als sjabloon (maar dit is uiteraard wel handig voor het overzicht).

Ik denk dat er verschillende methoden zijn om je probleem op te lossen, je zou bijvoorbeeld kunnen denken aan output buffering. Een output buffer is als het ware een emmer waarin je output opvangt. Als je klaar bent met het vullen van de emmer besluit je wat je hiermee doet: alsnog afdrukken, of de inhoud opslaan of de inhoud toekennen aan een variabele.

Voorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$test
= 'lala';

// start output buffering
// tekst die normaal op het scherm zou verschijnen wordt dus nu opgevangen in de buffer

ob_start();
    ?>
<p>Dit is een test: <?php echo $test ?>.</p><?php
// retourneer de inhoud van de buffer en schakel output buffering uit
$html = ob_get_clean();
?>

De inhoud van $html is nu dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<p>Dit is een test: lala.</p>


Een andere manier is een include. Hiervoor kun je geen .html-bestand gebruiken omdat PHP hier niet in uitgevoerd wordt. Als je in je HTML-bestand een PHP-blok zet dan heeft dit voor HTML geen betekenis en wordt deze dus ook niet verwerkt, je zult dit via een PHP-bestand moeten regelen.

Stel je hebt het bestand html.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<p>Dit is een test: <?php echo $test ?>.</p>

Dit is in wezen je sjabloon.

Vervolgens kun je dezelfde truuk weer uithalen met output buffering (in een ander bestand, bijvoorbeeld pdf.php):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
// initialiseer de variabelen die in je sjabloon worden gebruikt
$test = 'hallo';
// start output buffering
ob_start();
    // include het bestand
    include './html.php';
$html = ob_get_clean();
?>

$html bevat nu de volgende HTML:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<p>Dit is een test: hallo.</p>
Gewijzigd op 16/10/2015 13:59:13 door Thomas van den Heuvel
 
Greg gil

greg gil

16/10/2015 20:42:57
Quote Anchor link
Beste Thomas ,

Hartelijk bedankt voor je reactie maar helaas lukt het mij niet.
Ik heb de volledige code naar jou gest. via pm en hopelijk vind je de tijd om er even naar te kijken .
Alvast Bedankt.
 
Koen Hollander

Koen Hollander

16/10/2015 22:59:04
Quote Anchor link
Als ik je even een tip mag geven, het is naar mijn mening zeer onzorgvuldig om met "or die" als foutafdeling te noemen (Je kan het niet eens een degelijke foutafhandeling noemen)
 



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.