[PHP]UTF-8 & include() probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Ik ben bezig met een site en heb gekozen dit te maken met de UTF-8 charset.
Nu loop ik tegen een probleem aan.

Op deze manier maak ik mijn pagina op in index.php :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Load page contents
$menu = utf8_encode(@file_get_contents("menu.php"));
$extra = utf8_encode(@file_get_contents("extra.php"));
$footer = utf8_encode(@file_get_contents("footer.php"));

// Page output
echo "
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
<html>
    <head>
        <title>EHTSV.nl - Enhanced Edition | Studentenvereniging Tex</title>
        <link href='style.css' type='text/css' rel='stylesheet' />
        <meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
    </head>
    <body>
        <div id='menu'>$menu</div>
        <div id='header'>&nbsp;</div>
        <div id='extra'>$extra</div>
        <div id='content'>"; 
        include("$id.php");  // include loaded page
        echo" $footer</div>
    </body>
</html>
";


Als ik de content op dezelfde manier inlaadt als het menu bijv. dan wordt de php code in de file niet geparsed, als dit op te lossen is op een of andere manier ben ik ook uit de brand geholpen.

Goed, ik dacht dat bovenstaande dus niet ging werken en heb dus gekozen voor een include zoals te zien is in de code voorbeeld. Maar dat stukje code wordt nu niet goed omgezet voor de utf8 charset en geeft soms die vraagtekens.

code:
1
2
3
utf8_encode(include("$id.php"));

include(utf8_encode("$id.php"));

Deze twee mogelijkheden die ik geprobeerd heb werken beiden niet.

Ik wil dus weten hoe ik een php pagina in kan voegen en dat de output hiervan omgezet wordt in utf8. Het meeste ideale lijkt mij de manier van file_get_contents() omdat ik dan de opmaak volledig kan scheiden van de code.

Overigens is de beveiliging van het includen in orde, dus daar hoef ik niks over te horen.

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
file_get_contents() lees ook alleen maar een file in - er zal niets van je code geparsed worden.
wat je zou kunnen doen is aan het begin van je script beginnen met de output te bufferen en aan het einde van je script die buffer encoden en dan outputten
http://nl2.php.net/manual/nl/ref.outcontrol.php

[ Voor 10% gewijzigd door marty op 25-02-2005 16:29 ]


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
code:
1
2
3
4
5
6
7
ob_start();

***code en opmaak incl. echo's***

$output = utf8_encode(ob_get_contents());
ob_end_clean();
echo "$output";


Dit werkt top! tnx :)

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
g00fy schreef op vrijdag 25 februari 2005 @ 16:42:
code:
1
2
3
4
5
6
7
ob_start();

***code en opmaak incl. echo's***

$output = utf8_encode(ob_get_contents());
ob_end_clean();
echo "$output";


Dit werkt top! tnx :)
oftewel
code:
1
2
3
4
5
ob_start();

***code en opmaak incl. echo's***

echo utf8_encode(ob_get_clean());

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Michali schreef op vrijdag 25 februari 2005 @ 16:47:
[...]

oftewel
code:
1
2
3
4
5
ob_start();

***code en opmaak incl. echo's***

echo utf8_encode(ob_get_clean());
uh, ja :) tnx :*