BBCodes laufen nich??

Hallo Leute,
ich habe die BBCode Funktion so:
bbcode.php
[PHP]<?php $eintrag = str_replace("{admin_welcome}","Willkommen im Adminbereich!", $eintrag); ?>[/PHP]
Und ich habe eine admin.php:
[PHP]<?php include("bbcode.php"); ?>

Adminbereich

{admin_welcome}

[/PHP]

Normalerweise müsste er doch {admin_welcome} durch willkommen im Adminbereich ersetzen oder?
Kann mir bitte einer helfen?

normalerweise schreibt man ddas in eine function und parst mit der function den text.

Du machst das meines wissens nach falsch ! Du musst die html in der php includen und dann parsen !

Nein, er ersetzt in der Variable „$eintrag“ alle eintraege, die auf den Regex oder das Wort passen, das du angibst durch das andere Wort, dass du angibst. Wenn schon, dann muesstest du das ganze so machen:

[php]<?php $eintrag = "{admin_welcome}"; $eintrag = str_replace("{admin_welcome}","Willkommen im Admin-Bereich",$eintrag); ?>

Adminbereich

<?php echo($eintrag); ?>

[/php]Wobei so ein Code wenig sinn macht.

so etwas solltest du mit einem tplsystem machen

das wollte ich ja auch mit .tpl dateien machen das war nur nen test. Aber wie kann man es machen das alles klappt außer mit dem echo($eintrag);??
Ach egal das klappt so gut :slight_smile:
[PHP]<?php $eintrag = "{admin_welcome}"; $eintrag = str_replace("{admin_welcome}","Willkommen im Admin-Bereich",$eintrag); ?>

Adminbereich

<?php echo($eintrag); ?>

[/PHP]

ne is schlecht. wenn ich noch einen code einbaue dann kommt er durcheinander. Kann mir jemand bitte helfen einen besseren zu machen?

  1. Gibts nen Edit-Button: http://html.de/images/buttons/edit.gif
  2. Verstehe ich dein Problem ueberhaupt nicht…

also wenn ich folgenden Code habe:
[PHP]<?php $eintrag = "{admin_welcome}"; $eintrag = str_replace("{admin_welcome}","Willkommen im Admin-Bereich",$eintrag); ?>

Adminbereich

<?php echo($eintrag); ?>

[/PHP] Und mache dann noch einen Eintrag dann siehts so aus: [PHP]<?php $eintrag = "{admin_welcome}"; $eintrag = str_replace("{admin_welcome}","Willkommen im Admin-Bereich",$eintrag); $eintrag = "{user_welcome}"; $eintrag = str_replace("{user_welcome}","Hallo user",$eintrag); ?>[/PHP] So wenn ich jetzt die Datei admin.php startse mit dem Code: [PHP]<?php echo($eintrag); ?>[/PHP] Dann macht er nich mehr {admin_welcome} sondern {user_welcome} ??? Er sollte aber {admin_welcome} machen. Das hat irgendwie mit dem echo($eintrag); zu tun oder?

Das hat was damit zu tun, dass du die Variable $eintrag an dieser Stelle:

[php]$eintrag = „{user_welcome}“; [/php]komplett ueberschreibst.

ja aber dann zeigt er es nicht mehr {admin_welcome} an sondern {user_welcome}

Weil du den Kompletten Inhalt der Variable Uuberschreibst!!

Ich mach mal Kommentare dazu, um den Inhalt der Variablen zu jedem Zeitpunk klar zu machen:

[php]$eintrag = „{admin_welcome}“; //{admin_welcome}
$eintrag = str_replace(„{admin_welcome}“,„Willkommen im Admin-Bereich“,$eintrag);//Willkommen im Admin-Bereich
$eintrag = „{user_welcome}“;//{user_welcome}
$eintrag = str_replace(„{user_welcome}“,„Hallo user“,$eintrag);//Hallo User
?>[/php]

guck hier da siehst wie man es richtig macht: http://tut.php-q.net/template.html

Versteh ich nich was hier steht:

http://tut.php-q.net/template.html

Wo stehen denn die die codes wie {test} oder so?

muss du genau lesen. Sonst gibt es das noch: http://smarty.php.net/manual/de/index.php

So hab ich durchgelesen aber bin nich weitergekommen. Kann man das nich anders machen?

du kannst es auch mit variablen machen, die du in einer zentralen datei speicherst und auf den entsprechenden seiten abrufst.

[php]

<?php //contents.php $_texte = array(); $_texte['welcome'] = 'Willkommen'; $_texte['user'] = 'Admin'; ?>

[/php]

und noch

[php]

<?php //index.php include_once('contents.php'); echo $_texte['welcome']; echo $_texte['user']; //usw. ?>

[/php]

Nils aka XraYSoLo