Archiv verlassen und diese Seite im Standarddesign anzeigen : http:// und www.
Wie muss ich folgenden Script-Code umschreiben damit er mir auch www.meine.de ersetz und als link ausgibt, ändern.
$msg = ereg_replace("(http://[^[:space:]$]+)","<A HREF=\"\\1\" target=\"_blank\"><u><b>\\1</b></u></A>",$msg);
zweites ereg dahinter ist die einfachste Lösung:
$msg = ereg_replace("(www\.[^[:space:]$]+)","<A HREF=\"http://\\1\" target=\"_blank\"><u><b>\\1</b></u></A>",$msg);
Hab ich gemacht. Jetzt zerkackt er mir aber die HTTP.
Das ist jetzt die Ausgabe
www.meine.de" target="_blank">
http://www.meine.de
info@meine.de www.deine.de" target="_blank">
http://www.deine.de info@deine.de www.seine.de
und die Var sieht so aus:
$text = "http://www.meine.de
info@meine.de
http://www.deine.de
info@deine.de
www.seine.de";
ahups ...
dann mit preg_replace, da kann man mehrere Ersetzungen parallel machen (hoffe ich):
$msg = preg_replace(array(
"&(www\.[^[:space:]$]+)&i",
"&(http://[^[:space:]$]+)&i"
), array(
'<A HREF="http://\1" target="_blank"><u><b>\1</b></u></A>',
'<A HREF="\1" target="_blank"><u><b>\1</b></u></A>'
), $msg);
Und das kommt dann im Quelltext dabei raus:
<A HREF="http://<A" target="_blank">http://<A</A>
HREF="<A HREF="http://www.meine.de""
target="_blank">http://www.meine.de"</A>
target="_blank">www.meine.de</A> <br>
<A HREF="<A HREF="http://www.seine.de""
target="_blank">http://www.seine.de"</A>
target="_blank">www.seine.de</A>
Und hier die Funktion:
$msg = preg_replace(array(
"&(www\.[^[:space:]$]+)&i",
"&(http://[^[:space:]$]+)&i"),array(
'<A HREF="http://\\1" target="_blank">\\1</A>',
'<A HREF="\\1" target="_blank">\\1</A>'), $msg);
Meine Var:
$text = "http://www.meine.de <br> www.seine.de";
Habe jetzt folgendes Probiert:
die ' gegen " ausgetauscht
vor die " ein \ gesetzt
Aber er bringt mir immer noch das querbeet.:dontknow: :confused:
$msg = ereg_replace('(www\.[^[:space:]$]+)','http://\1', $msg);
vor deine ursprüngliche ereg setzen
Das ist jetzt die Funktion:
$msg = ereg_replace("(www\.[^[:space:]$]+)",
"http://\\1",$msg);
$msg = ereg_replace("(http://[^[:space:]$]+)",
"<A HREF=\"\\1\" target=\"_blank\">\\1</A>",
$msg);
$msg = ereg_replace("(www\.[^[:space:]$]+)",
"<A HREF=\"http://\\1\" target=\"_blank\">\\1</A>",
$msg);
Kommt aber immer noch Chaos raus ob woll schmalle in Buxtehude ist.:D
Kannst du nicht mal schauen wie es hier im Forum gemacht wird?
sorry ich vergaß: lass die letzte ereg weg
nur die neue und deine alte
jetzt macht er http://http://www.meine.de
und http://www.meine.de
("(www\.[^[:space:]$]+)","http://\\1", $msg);
("(http://[^[:space:]$]+)","<A HREF=\"\\1\" target=\"_blank\">\\1</A>",$msg);
okay, ersetz die erste durch
$msg = ereg_replace('(http://)?(www\.[^[:space:]$]+)','http://\2', $msg);
KNUTSCH suppiiiiiiii es klappt.
Danke Titus.
Das mit den http: und www. Ersetzungen werde ich mir nie merken.:D
Zu früh gefreud!!!
Wenn ich das jetzt in Kombination mit [ URL= und [ URL machen kommt wieder nur Müll raus.
[code]
// [URL]
$msg = preg_replace("/\[url](.*)\[\/url\]/siU","<a href=\"\\1\" target='_blank'>\\1</a>",$msg);
// [URL=
$msg = preg_replace("/\[url=(.*)](.*)\[\/url\]/siU","<a href=\"\\1\" target='_blank'>\\2</a>",$msg);
// URL
$msg = ereg_replace('(http://)?(www\.[^[:space:]$]+)','http://\\2',$msg);
$msg = ereg_replace("(http://[^[:space:]$]+)","<A HREF=\"\\1\" target=\"_blank\">\\1</A>",$msg);
[Code]
loggisch ... pack die [url]-Teile nach hinten oder lass den href= in der Ersetzung weg ... sonst wird
aus [ url="http://www.url.de/" ]blah[ /url ]
im ersten Schritt <a href="http://www.url.de/">blah</a>
und im zweiten <a href="http://<a href="www.url.de/">www.url.de</a>">blah</a>
@wotan
Sorry aber mit den reg.Expressions bin ich auf Kriegsfuß
/**
* replace URIs with appropriate HTML code to be clickable.
* Quelle: http://www.dclp-faq.de/q-regexp-uri-klickbar.html
*/
function replace_uri($str) {
$pattern = '#(^|[^\"=]{1})(http://|ftp://|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sm';
return preg_replace($pattern,"\\1<a href=\"\\2\\3\"><u>\\2\\3</u></a>\\4",$str);
}
Hab gerade mit dem da gekämpft, aber die www. bekomme ich leider nicht hinein, dabei wär es so schön, http://|ftp://|mailto:|news: wären schon da
Wenn Du aber auf die blöden www. verzichten könntest, dann ....
Original geschrieben von Titus
loggisch ... pack die -Teile nach hinten oder lass den href= in der Ersetzung weg ... sonst wird
aus [ url="http://www.url.de/" ]blah[ /url ]
im ersten Schritt <a href="http://www.url.de/">blah</a>
und im zweiten <a href="http://<a href="www.url.de/">[url]www.url.de</a>">blah</a>
Klappt leider nicht. Ich kann entweder oder benutzen, aber nicht beide zusammen.
danthecan 26-08-2002, 19:04 Und was ist mit den Domains die kein www drin haben wie z.B.
http://unisingles.de???
OK! so gehts:
$str = ereg_replace('(http://)?([^[:space:]$]+)','http://\2', $str);
|
-
- |