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

Gästebuch :: BBCode :: Links

Status
Für weitere Antworten geschlossen.

Anonymous

Neues Mitglied
Hallo,

ich bin zur Zeit dabei in mein Gästebuch BBCode einzubauen.

Zum Beispiel [ b ] (ohne Leerzeichen) heißt Fett schreiben.

Der User gibt also [ b ] ein und bevor der Beitrag ausgegeben wird, ersetze ich [ b ] mit :
[php:1:b4010daac0]<?php $row["beitrag"] = str_replace("", "", $row["beitrag"]) ?>[/php:1:b4010daac0]

Nun habe ich bei den Links das Problem, dass ich nicht weiß, wie ich aus [ url = http://URL ] Name des Links [ /url ] (ohne Leerzeichen) Name des Links machen kann.

Hat jemand eine Lösung dafür?

Über hilfreiche Antworten würde ich mehr sehr freuen.


Liebe Grüße,
L.T.M
 
Werbung:
Werbung:
Hallo,

ich verstehe das mit den "Regulären Ausdrücken" leider nicht.

Im Tutorial sagt er, er würde unten erklären, wie man damit BBCode's macht, tut er aber nicht..

Dann habe ich es mal so versucht:
Code:
$row["beitrag"] = preg_replace("![url=(.*?)](.*?)[/url]!", "<a href=$1>$2</a>", $row["beitrag"]);

Und als Beispiel habe ich "Leander Muskalla's Webseite eingegeben. Da kam dann aber totales Wirrwarr raus..

Kann mir jemand helfen?


Liebe Grüße,
L.T.M
 
vieleicht guckst du mal im PHP Forum nach in
"Tipp: PHP Scripte und Tutorials"
:)
 
Werbung:
Hallo,

Prophet, wenn ich es ohne Fragezeichen mache, sieht das ganze noch viel komischer aus. Dann ist der Rest der Seite in Fett-Druck ().
Code:
$row["beitrag"] = preg_replace("![url=(.*)](.*)[/url]!", "<a href=$1>$2</a>", $row["beitrag"]);


Liebe Grüße,
L.T.M
 
dann ersetzte mal die ! durch / und escape das vor dem url durch \ dann musst du den string natürlich aber in einfahcen anführungszeichen schreiben...
 
Hallo,

Prophet,
Code:
$row["beitrag"] = preg_replace("\/[url=(.*)](.*)[/url]/", "<a href=$1>$2</a>", $row["beitrag"]);
Meinst du es so, oder was genau meinst du?


Liebe Grüße,
L.T.M
 
Werbung:
Code:
$row["beitrag"] = preg_replace('/[url=(.*)](.*)[\/url]/', '<a href=$1>$2</a>', $row["beitrag"]);

so
 
Warum schaust du nicht einfach mal einen schon existierenden beitrag an? Das hab ich vor nem monatg geschrieben in einem thread und das funktioniert so...

danke für eure Hilfe, aber ich hab des jetzt net gecheckt... aber macht nix
ICH BIN SELBER DRAUFGEKOMMEN WIE MANS GANZ EINFACH MACHEN KANN:

PHP:

<?php
#HEADER
include("header.inc");
?>


<?php
include("dbconnect.php");
$Kommentar = strip_tags ($Kommentar);
$Kommentar = htmlentities ($Kommentar);
$Kommentar = stripslashes ($Kommentar);

function bbcode($str)
{
$str = preg_replace("!\[b\](.*)\[/b\]!isU","$1",$str); #?berpr?ft den code auf und wenn beides vorhanden ist, ersetzt er es mit
$str = preg_replace("!\[i\](.*)\[/i\]!isU","$1",$str); #selbiges mit /
$str = preg_replace("!\[u\](.*)\[/u\]!isU","<u>$1</u>",$str); #und nochmal mit unterstreicheh
$str = preg_replace("!\[url\](.*)\[/url\]!isU","<a href=\"$1\">$1</a>",$str); #das ist die m?glichkeit eines links mit der nur die url angezeigt ist
$str = preg_replace("!\(.*)\[/url\]!isU","<a href=\"$1\">$2</a>",$str); #und hiermit kann man einen link machen, dem man einem namen geben kann
return $str;
}
$BBCKommentar = bbcode($Kommentar);

$Name = htmlentities ($Name);
$eintrag = "INSERT INTO gaestebuch (Name, Email, Kommentar, DatumUhrzeit, Zusatz) VALUES ('$Name', '$Email', '$BBCKommentar', '$DatumUhrzeit', '$Zusatz')";
$eintragen = mysql_query($eintrag);
?>


<?php
#FOOTER
include("footer.inc");

?>



Klappt wunderbar!
(ich glaub ich war einfach zu müde um draufzukommen als ich gefragt hab...)

Bye, georg

PS: KANN GECLOSED WERDEN


Liebe Grüße,
Georg
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben