php suchen/ersetzen problem

alflife2007

Active member
hi!

ich hab folgenes Problem:

ich versuche oder würde gerne einen Ganzen satz einfärben wenn dieser gepostet wird!

ein bestimmtes wort zu färben oder ein befehl damit auszuführen ist kein problem...

nur geht es darum ich will einen bestimmten satz der sich aber nicht 100% immer gleicht Färben..

zB. so:

Deine %% Recycler haben eine Gesamtladekapazität von %%. Auf dem Ziel treiben %% Metall und %% Kristall im Raum. Du hast %% Metall und %% Kristall abgebaut.

%% = zahen die varieren und nie gleich sind....

hatte erst an eregi_replace() als befehl gedacht!
nur hab ich das problem das ich nicht wie ich das machen soll das er hargenau den satz färbt auch wenn die zahlen sich ändern...

gibs dafür nen befehl wie zB in der mysQl datenbank wo man ja auch ungefair suchen kann mit %name% währe auf jedenfall sehr hilfreich wenn man da was machen könnte ansonsten müsste ich was anders wie zB. neh art bb-code bauen währe aber net so toll :D

mfg alflife
 

pixelflat

Super-Moderator
eregi_replace() verwendet reguläre Ausdrücke.

Code:
$string = "Deine 2 Recycler haben eine Gesamtladekapazität von 13. Auf dem Ziel treiben 3 Metall und 4 Kristall im Raum. Du hast 2 Metall und 3 Kristall abgebaut."
$ausgabe = eregi_replace("Deine \d+ Recycler haben eine Gesamtladekapazität von \d+. Auf dem Ziel treiben \d+ Metall und \d+ Kristall im Raum. Du hast \d+ Metall und \d+ Kristall abgebaut.","<span style=\"background:#000;\">$string</span>",$string);

Oder so ähnlich. "\d" stellen jedenfalls Zahlen dar. Das "+" bedeutet, dass mindestens 1 Ziffer und dann beliebig viele an der Stelle stehen müssen.
 

alflife2007

Active member
ja cool wieder was geleernt danke genau das wollt ich wissen nur hatte ich leider aus meinen qwellen nix passendes gefunden :D

aber das gut zu wissen den befehl werde ich häufiger anwenden wenn das so funktioniert ...

----

ahh da ist nen fehler in der logic xD

so geht das net weil der soll mit dem eregi_replace() ja den satz suchen und ersetzen!

jedoch so wie du dass geschrieben hast wird der obere text zuletzt wieder eingefügt also so zB.

-----

$text= "hier schreibt ihrgendwer was bla bla

und dann schreibt er darauf seinen bericht hier hin

Deine 50 Recycler haben eine Gesamtladekapazität von 1.000.000. Auf dem Ziel treiben 378.000 Metall und 284.700 Kristall im Raum. Du hast 378.000 Metall und 284.700 Kristall abgebaut.";
---

also soll für neh art guestbook eine art bb-code sein der das raussucht und dann ersetzt und farbig wiedergibt.

aber zumindest funktioniert das mit dem /d+ herrvoragend das wenigstens etwas aber leider hab ich noch keine idee wie ich das speziell so anwenden kann das sich nur dieses wort in der nachricht fäbt und nicht die gesammte nachricht.

mfg alflife
 
Zuletzt bearbeitet:

xXxJulianxXx

New member
PHP:
<?
##für links
$text = '[url=http://www.google.de]Google[/url]';
$url = preg_replace('/\[url=(.*?)\](.*?)\[\/url\]/i', '<a href="\\1">\\2</a>', $text);  
echo $url;
?>


<?
##für bilder
$text = '[img]Google.png[/img]';
$bild = preg_replace('/\[img\](.*?)\[\/img\]/i', '<img src="\\1">\\2</a>', $text);  
echo $bild;
?>



<?
##für youtube
$text = '[youtube]NVlIVYVVguI[/youtube]';
$youtube = preg_replace('/\[youtube\](.*?)\[\/youtube\]/i', '<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/\\1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/\\1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></a>', $text);  
echo $youtube;
?>
 
Zuletzt bearbeitet:
X
Keine passende Antwort gefunden?