Hallo Leute,
ich habe ein kleines (verständnis) Problem mit der Verarbeitung des charsets...
habe das folgende index.php script:
und dass template.php script:
was tue ich?
die main.html enthält den üblichen html-kramms und im menü die links für die bestimmten content bereiche... ach ja und den auszutauschenden bereich {content}... siehe function select_content...
nun das problem:
habe im main.html den meta-tag
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
und die umlaute werden richtig angezeigt, wenn ich die html ohne php in den browser hole...
ziehe ich jedoch die main.html und die content.html (enthält nur eine tabelle mit inhalt) über meine scripte, werden die umlaute mit � verkleidet...
verstehe ich nicht so ganz, weil ich dachte, dass mein script nur das html zusammenklatscht und der browser das encoding übernimmt...
würde mich freuen, wenn mir jemand etwas licht geben könnte
danke
Kald
ich habe ein kleines (verständnis) Problem mit der Verarbeitung des charsets...
habe das folgende index.php script:
PHP-Code:
<?php require_once("template.php");
$page = new Page("main.html");
$page->select_content($_GET['id']);
$page->output();
?>
PHP-Code:
<?php
class Page {
var $page;
function Page($template)
{
if (file_exists($template))
$this->page = join("", file($template));
else
die("Template file $template not found.");
}
function replace_tags($tags = array())
{
if (sizeof($tags) > 0)
foreach ($tags as $tag => $data)
{
$data = (file_exists($data)) ? join("", file($data)) : $data;
$this->page = eregi_replace("{" . $tag . "}", $data, $this->page);
}
else
die("XXX");
}
function select_content($site)
{
if ($site == 'content1')
{
$data = (file_exists("content1.html")) ? join("", file("content1.html")) : $data;;
$this->page = eregi_replace("{content}", $data, $this->page);
}
else if ($site == 'content2')
{
$data = (file_exists("content2.html")) ? join("", file("content2.html")) : $data;;
$this->page = eregi_replace("{content}", $data, $this->page);
}
else if ($site == 'content3')
{
$data = (file_exists("content3.html")) ? join("", file("content3.html")) : $data;;
$this->page = eregi_replace("{content}", $data, $this->page);
}
else if ($site == 'content4')
{
$data = (file_exists("content4.html")) ? join("", file("content4.html")) : $data;;
$this->page = eregi_replace("{content}", $data, $this->page);
}
else
{
$data = (file_exists("content.html")) ? join("", file("content.html")) : $data;;
$this->page = eregi_replace("{content}", $data, $this->page);
}
}
function output()
{
echo $this->page;
}
}
?>
die main.html enthält den üblichen html-kramms und im menü die links für die bestimmten content bereiche... ach ja und den auszutauschenden bereich {content}... siehe function select_content...
nun das problem:
habe im main.html den meta-tag
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
und die umlaute werden richtig angezeigt, wenn ich die html ohne php in den browser hole...
ziehe ich jedoch die main.html und die content.html (enthält nur eine tabelle mit inhalt) über meine scripte, werden die umlaute mit � verkleidet...
verstehe ich nicht so ganz, weil ich dachte, dass mein script nur das html zusammenklatscht und der browser das encoding übernimmt...
würde mich freuen, wenn mir jemand etwas licht geben könnte
danke
Kald
Kommentar