• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Seite in andere Seite reinlesen

felixaustria

Neues Mitglied
Sooo hallo leute!

Ich hab hier ein Problem... ich versuchs möglichst gut zu erklären.
also ersteinmal weiss ich nicht ob das nur mit html geht oder ob auch php benötigt wird - ist aber beides ok für mich!

Also. ich habe eine homepage mit menü. alles schön gestaltet in <div> boxen. dann habe ich unterm menü eine weitere <div> box, in der die eigentliche website sein soll.
nun würde ich gerne alle unterseiten meiner homepage in diese <div> box reinladen. allerdingst nicht wie beim " include " befehl in php oder per (I)Frames. nein ich würde gerne einfach nur den body von den unterseiten in diese div box hineinladen, damit auch schön die formatierung erhalten bleibt (css).

ich hoffe mir kann jemand helfen!!

mfg
felix
 
Dann nimm nicht include() sondern file_get_contents und filtere dir den Inhalt des <body> aus diesen Quelldateien heraus.

Allerdings macht es wenig Sinn diese Dateien, die die eigentlichen Inhalte beinhalten aber selbst nie direkt im Browser aufgerufen werden, mit kompletten HTML-Codes zu versehen. Es reicht, wenn Du in diesem Fall diese Dateien wirklich nur mit dem nötigen versorgst - also das was Du dort anzeigen willst. Ein HTML-Grundgerüst würde dann über den Aufruf deiner php-Dateien entstehen.
 
@threadi: Danke, ganz genau so mein ichs! :D
dass das Grundgerüst eben erst durchs einfügen entsteht.

werde mich mal mit dem file_get_contents beschäftigen.
 
sooo- das einbinden geht shconmal.

allerdings habe ich ein weiteres problem.

ich will jetzt per button den inhalt der ausgelesen wird, ändern. das habe ich so gemacht:
Code:
<?php
echo"<form action=$ps method='GET'>";
echo"<input type='button' name='start' value='Start'>";
echo"</form>";

if(isset($_GET['start'])) {
   $content= file_get_contents('1.txt');
} 
?>

Beim laden der Seite wird an der gewünschten stelle folgender code eingeführt:

Code:
<?php
$content= file_get_contents('start.html');
echo"$content";
?>

Da beim Klick des Buttons die auszulesende Datei geändert wird, muss ich natürlich neu auslesen. Dazu hab ich an der gewünschten stelle folgenden Code eingefügt:

Code:
<?php
if(isset($_GET['start'])) {
   echo"$content";
}
?>

So.

Alles auf den Schulserver (Ja, es ist für die persönliche Schulhomepage, und der Server unterstützt php^^) und die seite neu geladen.

Beim Start wird brav ausgelesen, beim klick auf den button ändert sich aber nix :(

Was hab ich falsch gemacht?
Hoffe ihr könnt mir helfen!!

mfg
felix
 
Es wird nicht deutlich, was du vorhast und wo das Problem dabei liegt. Hier ein hoffentlich hilfreiches Beispiel:

PHP:
<?php
// Das Encoding dieser Datei sollte UTF-8 betragen (im Editor einstellbar).
// Die Datei "1.txt" im selben Verzeichnis wie dieses Script muss existieren und
// von PHP aus beschreibbar sein (Dateirechte, wahrscheinlich per Rechtsklick
// auf die Datei in einem FTP-Client/Dateibrowser einstellbar)

// Alle Fehler anzeigen
error_reporting(-1);

// Seite mit UTF-8 Zeichenkodierung ausgeben
header('Content-Type: text/html; charset=UTF-8');

// Falls Parameter "change" gesetzt ist
if (isset($_POST['change'])) {
    // Sicherstellen, dass Parameter "content" ebenfalls gesetzt und vom Typ
    // string ist
    if (!isset($_POST['content'])) {
        $_POST['content'] = '';
    } else {
        $_POST['content'] = trim((string) $_POST['content']);
    }

    // Magic quotes entfernen, falls notwendig
    if (get_magic_quotes_gpc()) {
        $_POST['content'] = stripslashes($_POST['content']);
    }

    // Daten aus "content" in Datei schreiben
    file_put_contents('./1.txt', $_POST['content']);
}

?><!DOCTYPE html>

<html>

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>demo</title>
    </head>

    <body>

        <form action="" method="post">
            <fieldset>
                <legend>Inhalt ändern</legend>
                <textarea name="content" cols="60" rows="10"><?php
                    // Daten aus Datei auslesen und in Textfeld schreiben.
                    // HTML-Code dabei escapen, um kein HTML-Rendering zu
                    // erhalten. (">" wird zu "&gt;", "<" wird zu "&lt;" usw.)
                    echo htmlspecialchars(file_get_contents('./1.txt'),
                            ENT_QUOTES, 'UTF-8');
                ?></textarea>

                <p><input type="submit" name="change" value="Ändern" /></p>
            </fieldset>
        </form>

        <h2>HTML-Darstellung</h2>

        <?php
            // Daten als regulären HTML-Code (ohne Escaping) ausgeben
            echo file_get_contents('./1.txt');
        ?>

    </body>

</html>
 
Im Prinzip will ich nur ein menü haben.

ich habe mein menü, darunter eine div box, in welche die unterseiten reingeladen werden. das funktioniert ja soweit.

jetzt möchte ich aber durch klikcne auf einen link bzw button, die datei, die ausgelesen wird, ändern, und anzeigen. das geht jedoch nicht.

wie geht das?
 
Ich verstehe noch immer nicht, was du mit "ändern" meinst. Möchtest du den Dateiinhalt der einzubindenden Datei ändern oder möchtest du lediglich ändern, welche Datei eingebunden wird?

Hier ein Beispiel für letzteres:

index.php

PHP:
<?php

$availablePages = array('home', 'about');
$defaultPage    = 'home';

$_GET['page'] = (isset($_GET['page']))
              ? trim((string) $_GET['page'])
              : '';

if (!in_array($_GET['page'], $availablePages)) {
    $_GET['page'] = $defaultPage;
}

?><!DOCTYPE html>

<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Demo</title>
</head>

<body>

    <ul>
        <li><a href="./">Home</a></li>
        <li><a href="?page=about">About</a></li>
    </ul>

    <div id="content">
        <?php include './pages/' . $_GET['page'] . '.phtml'; ?>
    </div>

</body>

</html>

pages/home.phtml

HTML:
<h1>Willkommen</h1>

<p>xyz</p>

pages/about.phtml

HTML:
<h1>Über mich</h1>

<p>Inhalt</p>

Die Endung ".phtml" deutet an, dass es sich bei den Dateien grundsätzlich um HTML-Code handelt, der aber auch PHP-Anweisungen enthalten kann. Man sagt auch "HTML-Template" in Abgrenzung zu Dateien mit "echtem" Anwendungscode.
 
Zurück
Oben