WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Hilfe bei ereg_replace (http://www.wcm.at/forum/showthread.php?t=141436)

FordPrefect 09.08.2004 19:15

Hilfe bei ereg_replace
 
Ich möchte folgende Zeile z.B.:
Zitat:

[url=http://www.wcm.at]WCM[\URL]
durch
Zitat:

WCM
ersetzen.
Meine jetzige Lösung:
PHP-Code:

 $newstext=ereg_replace("\[url=http://","<a href=http://",$newstext);        $newstext=ereg_replace("\]"," target=_blank>",$newstext);        $newstext=ereg_replace("\[/URL","</a",$newstext);    $newstext=ereg_replace("\[","<",$newstext); 

Aber das kann es wohl nicht sein. :(
mfg Peter

Potassium 09.08.2004 19:56

ich würde die suchfunktion bemühen.
ich hatte genau dieses prob ;)

_m3 09.08.2004 20:02

So gehts in Perl:
Code:

use strict;

my $in = '[url=http://www.wcm.at]WCM[/ URL]'; # Den Blank nach dem / vor dem Start des Scripts entfernen

(my $out = $in) =~ s/^\[url=(.*?)\](.*?)\[\/URL\]/<a href=\"$1\" target=\"_blank\">$2<\/a>/gi;

print $in . " => " . $out . "\n";

Sollte relativ einfach in PHP umsetzbar sein.

Zum <a href ....>: Die Attribute sollten immer in Hochkomma (") gesetzt werden.

Potassium 09.08.2004 20:13

PHP-Code:

if(substr_count(strtolower($text),"[url]") >= 1) {        
        if(!
substr_count(strtolower($text),"[url]http://www.") >= 1){
            
$text str_replace("[url]www.","[url]http://www.",$text);
        }
        
$text preg_replace("/\[url\](.*?)\[\/url\]/i","<a href=\"$1\">$1</a>"$text);        
    }
    if(
substr_count(strtolower($text),"[url=") >=1){        
        
$text str_replace("[url=www.","[url=http://www.",$text);        
        
$text preg_replace("/\[url=(.*?)\](.*?)\[\/url\]/i","<a href=\"$1\">$2</a>"$text);


das wäre es in php ;)
also [url][/ url]
und [url=blaba][/ url]

FordPrefect 09.08.2004 21:15

@m3
Danke für Deine Hilfe, aber mit ereg_replace und preg_replace usw. sehe ich mich noch nicht so ganz raus :heul: , darum werde ich das von Potassium übernehem.

@Potassium
Vielen Dank ich werde es mal mit Deinem Script versuchen. :D

mfg
Peter

Noerf 10.08.2004 00:22

Hier nochmal eine Anleitung für Reguläre Ausdrücke welche meiner Meinung nach ziemlich einfach zu verstehen ist:

http://www.devmag.net/webprog/regulaere_ausdruecke.htm

n8

FordPrefect 10.08.2004 13:07

@Potassium
Habe nun Dein Script übernommen und jetzt kommt diese Fehlermeldung
Zitat:

Warning: Unknown modifier 'u'
Was ist das :(
mfg
Peter

Seppo 10.08.2004 13:44

hmm versuch mal so:
statt:
$text = preg_replace("/(.*?)/i","<a href=\"$1\">$1</a>",

so
$text = preg_replace("/[url](.*?)[\/url]/i","<a href=\"$1\">$1</a>",

Potassium 10.08.2004 13:54

Zitat:

Original geschrieben von FellnerPeter
@Potassium
Habe nun Dein Script übernommen und jetzt kommt diese Fehlermeldung

Was ist das :(
mfg
Peter

das ist die scheiß "php-funktion vom forum"
ich posten den code nochmal:

if(substr_count(strtolower($text),"[url]") >= 1) {
if(!substr_count(strtolower($text),"[url]http://www.") >= 1){
$text = str_replace("[url]www.","[url]http://www.",$text);
}
$text = preg_replace("/\[url\](.*?)\[\/url\]/i","<a href=\"$1\">$1</a>", $text);
}
if(substr_count(strtolower($text),"[url=") >=1){
$text = str_replace("[url=www.","[url=http://www.",$text);
$text = preg_replace("/\[url=(.*?)\](.*?)\[\/url\]/i","<a href=\"$1\">$2</a>", $text);
}

FordPrefect 10.08.2004 14:11

Danke jetzt funzt. :lol:
mfg
Peter


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag