php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.02.2005, 06:55  
Gast
 
Beiträge: n/a
Standard BB-Codes Problem

Moin,

ich benutze folgende BB-Codes für die Ausgabe meiner Inhalte:

PHP-Code:
<?php
// Fett- und Kursivschrift
$newstext eregi_replace("\[b]","[b]",$newstext);
$newstext eregi_replace("\[eb]","[/b]",$newstext);
$newstext eregi_replace("\[i]","[i]",$newstext);
$newstext eregi_replace("\[ei]","[/i]",$newstext);

// Absaetze und Zeilenumbrueche
$newstext ereg_replace("\r","",$newstext);
$newstext ereg_replace("\n\n","</p>

"
,$newstext);
$newstext ereg_replace("\n","
"
,$newstext);

// Hyperlinks
$newstext ereg_replace(
  
"\[L]([-_./a-zA-Z0-9!&%#?,'=:~]+)\[EL]",
  
"<a href=\"\\1\">\\1</a>"$newstext);
$newstext ereg_replace(
  
"\[L=([-_./a-zA-Z0-9!&%#?,'=:~]+)]".
  
"([-_./a-zA-Z0-9 !&%#?,'=:~]+)\[EL]",
  
"<a href=\"\\1\">\\2</a>"$newstext);

// Bilder
$newstext ereg_replace(
  
"\[IMG]([-_./a-zA-Z0-9!&%#?,'=:~]+)\[eIMG]",
  
"<img src=\"\\1\">"$newstext);
?>
2 Probleme habe ich damit, zum einen ist mir das ganze etwas undynamisch durch die Variable $newstext, da sollte so etwas allgemeineres rein, damit ich die bb-codes auch für andere Sektionen verweden kann, aber auf die Schnelle fällt mir da keine Lösung ein, dass ganze dynamischer zu machen.

Das zweite Problem ist, dass die BB-Codes so aussehen:
Code:
[b]fett[EB]
[L]url[EL]
Wenn ich versuche das ganze auf die gewohnte Form zu bringen, also mit Slashes anstatt des E's, funktioniert die ganze Sache nicht mehr.

Wäre über jeden Rat dankbar.
Danke,
FEAnoR
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.02.2005, 11:34  
Gast
 
Beiträge: n/a
Standard

Ich habe mir mal die Zeit genommen, und deine Code getestet.
Zum 1. Problem:
Du kannst doch das ganze in eine Funktion setzen und dann den veränderten Text zurückgeben, in etwa so:
PHP-Code:
<?php
function bbcode($newstext
{
    
//dein Code...
    
   
return $newstext;
}
// du kannst dann die Funktion auf diese Art aufrufen

$htmtext bbcode($bbctext);
?>
Dein zweites Problem kann ich aber nicht nachvollziehen. Denn wenn ich statt [be], [/b] nutze und das im Code entsprechend abändere funktioniert es trotzdem.

Ich hoffe ich konte dir etwas helfen.
 
Alt 23.02.2005, 18:11  
Gast
 
Beiträge: n/a
Standard

Stimmt, das zweite Problem hat sich erledigt, ich weiss auch nicht, was bei meinem Test schief gelaufen ist. Es funktioniert jedenfalls jetzt wie gewünscht. Danke trotzdem für's testen!

Aber ich verstehe nicht, wie mir die Funktion von dir bei meinem Problem helfen kann. Eventuell habe ich mich falsch missverständlich ausgedrückt, ich hol' etwas weiter aus, ich habe eine datei "bbcodes.php" die ich immer dann include, wenn ich den Inhalt ausgebe. So wie das File in der Form aussieht, müsste ich für andere Ausgaben ($newstitel, $beschreibung... usw) ein extra bbcodes.php file anlegen und das auch jeweils includen. Daher suche ich einen Weg, die Datei bbcodes.php etwas besser einzusetzen.

Bei deiner Funktion irritiert mich jetzt, dass dort immer noch $newstext steht. Würdest du mir auf die Sprünge helfen? Wäre dir sehr dankbar!

FEAnoR
 
Alt 23.02.2005, 20:29  
Erfahrener Benutzer
 
Registriert seit: 09.09.2004
Beiträge: 716
PHP-Kenntnisse:
Anfänger
Kort zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Der Vorteil einer Funktion ist, dass du sie immer aufrufen kannst (solange sie definiert ist).

Und das mit der Variable, die dich irritiert:
PHP-Code:
<?php
    
function bbcode($eng) {
        
//dein Code...
        
return $eng;
    }
?>
würde genauso gehen.
__________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." - Linus Torvalds, 1996
Kort ist offline  
Alt 23.02.2005, 22:36  
Gast
 
Beiträge: n/a
Standard

Sorry, aber ich steh' völlig auf dem Schlauch... Ich kann mit der Funktion im Moment nichts anfangen. Wie genau könnte ich das in meinem Fall verwenden?

Würdet ihr mir vielleicht das anhand der BB-Codes erklären? Also die Funktion jetzt konkret mit den BB-Codes versehen.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Sessions Problem StephenKing PHP Tipps 2008 3 16.10.2007 08:30
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
Cookie / localhost / Problem gelöst PHP-Fortgeschrittene 11 02.11.2004 22:41
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51
Login Problem PHP Tipps 2004 4 04.06.2004 18:46
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
bb cod eimg

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:08 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.