Mailinglisten-Archive |
Hallo, ich frage jetzt mal ganz allgemein: Ich hole News-Beiträge per PHP von einer mysql Datenbank und zeige diese dann auf einer Website an. Das funktioniert auch! Jetzt wirds komplizierter: Nun möchte ich diesen importierten Text nach einem Platzhalter durchsuchen und diesen mit einem include ersetzen. Leider wird dieser include nicht ausgeführt. Der Hintergrund ist der, dass ich an bestimmten Stellen irgendwelche Tabellen oder sonstiges HTML per include aus einer anderen Datei einfügen möchte. Beispiel - Man soll folgendes in ein Webformular im Browser eingeben können: Am 12.10.2004 ist ein Infotag. Die Uhrzeiten entnehmen Sie folgender Tabelle. ###inc###infozeit.htm### Wir freuen uns auf Ihren Besuch. --- Jetzt möchte ich diese include Zeile durch den richtigen include Befehl ersetzen. Aber ich habe das bisher nicht so geschafft, denn der richtig include Befehl wird zwar korrekt ersetzt, jedoch nicht ausgeführt. Ich habe bisher mit preg_replace probiert. -- Eigentlich möchte ich dem Kunden nur die Möglichkeit bieten, per Webformular einen neuen Newspunkt zu erstellen. Da gibt er ja nur Texte ein. Wenn dann irgendwelche komplizierteren HTML Geschichten (das müssen nicht nur Tabellen sein) eingebunden werden sollen, dann erstelle ich diese und er gibt nur den Dateinamen ein, an der Stelle, an der das platziert werden soll. --- Hat schomal jemand so etwas gemacht? Ich komme auf jeden Fall nicht weiter und wäre dankbar über Lösungsvorschläge. Gruss Peter --- Quellcode: Das ist die Datei, die im Browser aufgerufen wird: <html> <head> <title>Test</title> </head> <body> <?php $dateiname = basename($_SERVER["PHP_SELF"]); // basename() = Dateinamen aus Pfad extrahieren $teildn = substr_replace($dateiname, '', -5); // für variablen Dateinamen: ref1.php wird ref include("connect.php"); // Datenbankverbindung oeffnen $abfrage = mysql_query("SELECT * FROM aktuell ORDER BY sort"); while ($zeile = mysql_fetch_array($abfrage)) { foreach ($zeile as $schluessel => $wert) { $$schluessel = $wert; // $text wird erstellt aus db text $suchmuster = array( "/###link###(.*)###(.*)###/", "/###xlink###(.*)###(.*)###/", "/###bild###(.*)###/", "/###bildlink###(.*)###(.*)###/", "/###inc###(.*)###/" ); $ersetzung = array( "<a href='http://\$2'>\$1</a>", "<a href='http://\$2' target='_blanc'>\$1</a>", "<img src='../img/\$1' alt='' width='' height='' border='0'>", "<a href='http://\$2' target='_blanc'><img src='../img/\$1' alt='' width='' height='' border='0'></a>", "<?php include '../html/\$1'; ?>" ); $text = preg_replace($suchmuster, $ersetzung, $text); } // ende foreach print nl2br($text); } // ende while mysql_close($link); ?> </body> </html> ---------- Das ist der Quellcode des erzeugten Dokuments und da sieht man schon, dass die 3.letzte Zeile nicht ausgeführt wurde, also der include. <html> <head> <title>Test</title> </head> <body> Link der in einem neuen Fenster geladen wird:<br /> <a href='http://www.wein.de' target='_blanc'>Link extern</a><br /> <br /> Link der auf derselben Seite geladen wird:<br /> <a href='http://www.spass.de'>Link intern</a><br /> <br /> Bild anzeigen, ohne Link (nicht anklickbar): <br /> <img src='../img/logo.gif' alt='' width='' height='' border='0'><br /> <br /> Bild anzeigen, mit Link extern (anklickbar):<br /> <a href='http://www.neues.de' target='_blanc'><img src='../img/lea.jpg' alt='' width='' height='' border='0'></a><br /> <br /> Includes (funktioniert leider noch nicht):<br /> <?php include '../html/1.php'; ?><br /> </body> </html> ----------- und das sollte zB dort einefügt werden, also die Datei 1.php ist folgende: <table width="500" border="0" cellpadding="0" cellspacing="5"> <tr> <td width="85" rowspan="8" class="mittig oben blau rahmen"> Frist bis<br> 01.11.2004<br> nach<br> 1. BlmSchV </td> <td colspan="2" class="mittig rahmen">Werden die Grenzwerte nach 1. BlmSchV eingehalten?</td> </tr> </table> <p>- Wärmeerzeuger nach dem 01.11.1978 eingebaut?<br> - Werden andere als flüssige oder gasförmige Brennstoffe eingesetzt?<br> - Hat das Haus nur 1-2 Wohnungen, von denen eine der Eigentürmer bewohnt und der Eigentümer bleibt?<br> - Ist es ein Niedertemperatur- oder Brennwertkessel?<br> - Ist die Nennwärmeleistung < 4 kW bzw. > 400 kW? </p> ---------- Wenns hilft, hier auch noch die mysql Datenbank: CREATE TABLE `aktuell` ( `ID` int(11) NOT NULL auto_increment, `sort` char(3) default NULL, `menutext` varchar(255) default NULL, `ueber` varchar(255) default NULL, `text` text, PRIMARY KEY (`ID`) ) TYPE=MyISAM COMMENT='Aktuell' AUTO_INCREMENT=37 ; # # Daten für Tabelle `aktuell` # INSERT INTO `aktuell` VALUES (15, '1', 'Test Menütext', 'Test', 'Link der in einem neuen Fenster geladen wird:\r\n ###xlink###Link extern###www.wein.de###\r\n\r\nLink der auf derselben Seite geladen wird:\r\n###link###Link intern###www.spass.de###\r\n\r\nBild anzeigen, ohne Link (nicht anklickbar): \r\n###bild###logo.gif###\r\n\r\nBild anzeigen, mit Link extern (anklickbar):\r\n ###bildlink###lea.jpg###www.neues.de###\r\n\r\nIncludes (funktioniert leider noch nicht):\r\n###inc###1.php###\r\n'); ---------- Also ich hab alles mit eval probiert, weiss aber nicht genau, wo ich das ansetzen soll, bzw. wie ich die Datei 1.php an der Stelle einsetzen kann? Habe ich einen Denkfehler, oder wirklich ein unlösbares Problem?
php::bar PHP Wiki - Listenarchive