php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.06.2004, 14:32  
Gast
 
Beiträge: n/a
Standard BBCode ausgabe...

Code:
$text = eregi_replace("\[url=\"([^\"]*)\"\]([^\[]*)\[\/url\]","<a class=\"content\" href=\"\1\" target=_blank>\2</a>",$text); 

$text = eregi_replace("\[url=([^\"]*)\]([^\[]*)\[\/url\]","<a class=\"content\" href=\"\1\" target=_blank>\2</a>",$text);
Bei nur 1 Link im Text funktioniert alles prima.

Allerdings, sobald ein 2. Link hinzugefügt wird, steht an der Stelle des 1. Links der Namen des 2. und der Text zwischen dem 1. und 2. Link fehlt einfach.

Kann mir wer weiterhelfen?
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 13.06.2004, 15:05  
Erfahrener Benutzer
 
Registriert seit: 10.07.2003
Beiträge: 280
freq.9
freq.9 eine Nachricht über ICQ schicken freq.9 eine Nachricht über MSN schicken
Standard

kP aber versuch mal preg_replace()
freq.9 ist offline  
Alt 13.06.2004, 15:26  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von freq.9
kP aber versuch mal preg_replace()
Dann kommt folgender Fehler:

Warning: Delimiter must not be alphanumeric or backslash
 
Alt 13.06.2004, 16:08  
Gast
 
Beiträge: n/a
Standard

hierzu gibt es ein tutorial in diesem forum
ich mache das immer so:
Code:
$text=ereg_replace('(http://[[:graph:]]*\.[a-zA-Z]{2,4})', '\1', $text);
so wird die url die man eingibt automatisch in einen hyperlink konvertiert und bei 2 linbks klappt das auchg da zwischen 2 links ja mind. 1 leerzeichen ist und [[:graph:]] ist die zeichenklasse für alle druckbaren zeichen (kein leerzeichen und keine control-zeichen)
 
Alt 13.06.2004, 16:34  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von burner.nst
hierzu gibt es ein tutorial in diesem forum
ich mache das immer so:
Code:
$text=ereg_replace('(http://[[:graph:]]*\.[a-zA-Z]{2,4})', '\1', $text);
so wird die url die man eingibt automatisch in einen hyperlink konvertiert und bei 2 linbks klappt das auchg da zwischen 2 links ja mind. 1 leerzeichen ist und [[:graph:]] ist die zeichenklasse für alle druckbaren zeichen (kein leerzeichen und keine control-zeichen)
So ginge es natürlich, aber ich würde halt gerne lange Links, z.b. auf Forumsbeiträge oder so mit einer Bezeichnung versehen.

Also z.b.

Beitrag X ist der Link der dann auf http://www.xxx.de/forum/?post=2 verlinkt ist.
 
Alt 13.06.2004, 16:44  
Gast
 
Beiträge: n/a
Standard

wie gesagt unter tutorials ist ein tutorial
soll zu werden?
dann mach es doch so:
Code:
ereg_replace('\[url=([[:graph:]])\]([[:graph:]])\[/url\]', '\2', $text)
 
Alt 14.06.2004, 23:24  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von burner.nst
wie gesagt unter tutorials ist ein tutorial
soll zu werden?
dann mach es doch so:
Code:
ereg_replace('\[url=([[:graph:]])\]([[:graph:]])\[/url\]', '\2', $text)
Wenn ich das mache, dann wird der Link einfach als BB ausgegeben:

also als
 
Alt 15.06.2004, 06:46  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard Re: BBCode ausgabe...

Zitat:
Zitat von soucy
[code]$text = eregi_replace("\[url=\"([^\"]*)\"\]([^\[]*)\[\/url\]","<a class=\"content\" href=\"\1\" target=_blank>\2</a>",$text);

Allerdings, sobald ein 2. Link hinzugefügt wird, steht an der Stelle des 1. Links der Namen des 2. und der Text zwischen dem 1. und 2. Link fehlt einfach.
Ich nehme einfach mal an, dass ereg_replace "gierig" ist, d.h. soviel wie möglich ersetzen will.

Bei preg_replace könntest du mit dem modifier U dafür sorgen, dass es klappt, ungetestet::
Code:
$text = preg_replace("#\[url=\"([^\"]*)\"\]([^\[]*)\[\/url\]#U","<a class=\"content\" href=\"\1\" target=_blank>\2</a>",$text);
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 15.06.2004, 06:54  
Gast
 
Beiträge: n/a
Standard

dannn mach mal hinter jedem [[:graph:]] noch ein *
das hatte ich vergessen
 
 


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
Problem mit Ausgabe bzw. Abfrage mit ORDER BY mayer Datenbanken 7 02.07.2006 21:45
BBCode mit eregi_replace(); ändert nur letztes Vorkommen Blank PHP Tipps 2006 6 12.04.2006 14:58
BBCode Parser Mutatos PHP Tipps 2006 1 05.01.2006 12:19
BBCode Realisierung - Code Andun PHP-Fortgeschrittene 10 18.12.2005 21:09
Array Ausgabe Nummerieren! PHP Tipps 2007 3 14.12.2005 16:43
Ausgabe einer Datei in Variable speichern Madden PHP Tipps 2007 11 16.11.2005 01:33
Ausgabe der Auswahlliste PHP Tipps 2005-2 6 21.09.2005 13:43
3 Tabellen verbunden -- Ausgabe in einer Spalte Datenbanken 4 06.09.2005 10:43
bbcode verachtet anderen bbcode phpfortgeschrittener PHP Tipps 2005-2 7 04.08.2005 00:42
[Erledigt] Geteilte Ausgabe an den Browser... PHP-Fortgeschrittene 4 01.07.2005 13:07
BBCode und htmlspecialchars PHP Tipps 2005 5 21.02.2005 20:10
Echo ausgabe Zeitlich verzögern? medico HTML, Usability und Barrierefreiheit 14 03.01.2005 08:23
Ausgabe nur dann, wenn htmlspecialchars() verwendet PHP Tipps 2004 1 27.10.2004 21:17
Sortierung der Ausgabe PHP-Fortgeschrittene 3 08.10.2004 09:22
Bei ausgabe jede 2. Zeile einfärben PHP Tipps 2004 20 05.08.2004 17:11

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php url graph zeichenklasse, bbcode ausgabe

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:10 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.