variables uit een file lezen, en de output later gebruiken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jochem

Jochem

11/10/2009 16:04:00
Quote Anchor link
zoals de titel al zegt,

hoe kan ik in een php script een andere php file laden maar alleen de variables die erin staan gebruiken?

ik wil dus:

index.php: (simpele versie)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
$title
="Laloeka.nl";
$paginatitel="";

echo "<html><body>Titel: $title<br>Pagina: $paginatitel<br><center>";
// hier moet de pagina output van home.php komen
echo "</center></body></html>";
?>


home.php: (simpele versie)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
$paginatitel
="Home";
?>

<h1>Home</h1>
welkom!


Hoe zorg ik dus dat het variable $paginatitel ingelezen wordt, maar de pagina pas later geecho't/geinclude't wordt?
Gewijzigd op 01/01/1970 01:00:00 door Jochem
 
PHP hulp

PHP hulp

19/04/2024 23:19:57
 
- SanThe -

- SanThe -

11/10/2009 16:21:00
Quote Anchor link
Betere indeling maken en niet direct in een echo zetten.
 
Jochem

Jochem

11/10/2009 16:33:00
Quote Anchor link
Wat bedoelt u met 'betere indeling maken' en 'niet direct in een echo zetten.'

Hier kan ik niets mee..

---

Er is trouwens niet echt een mogelijkheid de home.php pagina te veranderen en in een string te zetten, want er komt ook een gastenboek.php pagina, en die geeft alles als echo's
Gewijzigd op 01/01/1970 01:00:00 door Jochem
 
- SanThe -

- SanThe -

11/10/2009 16:40:00
Quote Anchor link
Je kan niet een pagina includen en hopen dat ie de echo's niet uitvoert. Dus wil jij alleen $vars includen dan zal je daar een apart bestand voor moeten maken.
 
Eddy E

Eddy E

11/10/2009 17:19:00
Quote Anchor link
Nou, het kan wel....

datbestand.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$var_uit_datbestand
= 3;
?>

<b>Dit is vervelende tekst</b>


Jouw php-bestand
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
ob_start();
include("datbestand.php");
ob_end_clean();

echo "Ik wil er ... " . $var_uit_datbestand;
?>


Resultaat zal zijn: Ik wil er ... 3.



Maarr..... zo werkt het niet.
Zet alle html die je hebt (de inhoud) ook in een variabele, bijvoorbeeld $html.
En echo die waar jij wilt.
Gewijzigd op 01/01/1970 01:00:00 door Eddy E
 
- SanThe -

- SanThe -

11/10/2009 17:21:00
Quote Anchor link
Wat een verschrikkelijke oplossing.
 
Jochem

Jochem

12/10/2009 18:15:00
Quote Anchor link
SanThe schreef op 11.10.2009 17:21:
Wat een verschrikkelijke oplossing.

Reden?

Ik ga heb uittesten, maar niet nu, ik heb nu geen tijd..

Iig bedankt :)
 

12/10/2009 19:04:00
Quote Anchor link
Output buffering wordt meestal afgeraden omdat het niet de juiste oplossing levert. Het zorgt er ook voor dat je site trager wordt, omdat die helemaal in het geheugen wordt gestopt en vraagt meer van je server.
Het voorbeeld van Eddy is dus fout omdat het data in het geheugen stop waarmee je niks meer mee doet, dat is een verspilling.

De oplossing voor jou probleem is gewoon alles in variabelen stoppen.
Of gebruik maken van een template parser / engine.
 
Jochem

Jochem

12/10/2009 19:09:00
Quote Anchor link
Karl schreef op 12.10.2009 19:04:
[...]
Of gebruik maken van een template parser / engine.

Vertel? :P

Alles in variablen stoppen is geen optie aangezien een deel van de output door scripts gegenereerd wordt.

EDIT:

Kan ik misschien iets doen als dit:
index.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
global $varinclude;
$varinclude=true;
include "test.php";
echo $test;
$varinclude=false;
include "test.php";
?>


test.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?
global $varinclude;
if ($varinclude == true)
{

    $test="1234abcdABCD.,?!";
}

else
{
    echo "Test!!!";
}

?>


Werkt zoiets?
Gewijzigd op 01/01/1970 01:00:00 door Jochem
 
Eddy E

Eddy E

12/10/2009 20:53:00
Quote Anchor link
SanThe schreef op 11.10.2009 17:21:
Wat een verschrikkelijke oplossing.


Geheel met je eens.
Als je zo je site met touwtjes aan elkaar gaat knopen wordt het al snel tijd voor versie 2.0.... want dit houdt nooit lang stand.
 
Eddy E

Eddy E

12/10/2009 20:55:00
Quote Anchor link
Ja, en dan heb je die global niet voor nodig.

Maar alsnog, zoals al vele keren is aangeraden: zet het in een variabele.
Dus gewoon GEEN echo in test.php!
mod-edit::
Bumpen
Twee of meer keer na elkaar in een topic posten, voordat andere forumleden gereageerd hebben, heet "bumpen". Omdat het opdringerig overkomt is bumpen pas na 24 uur toegestaan. Bumpen kan een reden zijn voor de admins en mods om een topic te sluiten. Gebruik het Afbeelding knopje om je tekst aan te passen indien nodig.
Gewijzigd op 01/01/1970 01:00:00 door Eddy E
 

12/10/2009 21:35:00
Quote Anchor link
Jochem schreef op 12.10.2009 19:09:
Karl schreef op 12.10.2009 19:04:
[...]
Of gebruik maken van een template parser / engine.

Vertel? :P

Alles in variablen stoppen is geen optie aangezien een deel van de output door scripts gegenereerd wordt.

Hoe denk je dat een template engine werkt?
De uitkomst van zooi wordt dan ook gewoon in variabelen gestopt, die weer in het template wordt gestopt.
 



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.