Java Farbcodes mit PHP ersetzen?

...komplette Frage anzeigen

4 Antworten

Würde da mit Regex und der Funktion preg_replace rangehen, beispielsweise so:

preg_replace("/§1([^\s]+)/", "\1", $input_lines);

In dem Fall wird nur der Bereich bis zum nächsten Leerzeichen eingefärbt - wenn du mehr willst, beispielsweise bis zum nächsten Farbcode, dann geht das auch recht problemlos. 

Mit etwas mehr Trickserei, aber nicht unmöglich wäre das Ersetzen aller Farbcodes mit einer Abfrage. 

--

Für's Spielen mit Regex bietet sich nebenbei oft ein Online-Tool an.  http://www.phpliveregex.com/ sieht recht vernünftig aus. 

Viel Erfolg. 

Beim Kopieren was falsch gelaufen, hat mir die span-Tags beim 2. Parameter gefressen. Aber steht eh schon bei ner anderen Antwort:

preg_replace("/§1([^\s]+)/", "<span>\1</span>", $input_lines);
0

mit preg_replace und regex

dann kannst du den string manipulieren.

So in etwa:

<?php

$color = array(
"§0"=>"000000", //Black
"§1"=>"0000AA", //Dark blue
"§2"=>"00AA00", //Dark green
"§3"=>"00AAAA", //Dark aqua
"§4"=>"AA0000", //Dark red
"§5"=>"AA00AA", //Dark purple
"§6"=>"FFAA00", //Gold
"§7"=>"AAAAAA", //Gray
"§8"=>"555555", //Dark gray
"§9"=>"5555FF", //Blue
"§a"=>"55FF55", //Green
"§b"=>"55FFFF", //Aqua
"§c"=>"FF5555", //Red
"§d"=>"FF55FF", //Light purple
"§e"=>"FFFF55", //Yellow
"§f"=>"FFFFFF", //White
);
$str = "§6Hallo §adies §2ist §6ein §3String";

foreach ($color as $key => $value) {
$str = preg_replace('/' . $key . '([^\s]*)/', '$1 ', $str);
}

echo $str;

?>

Du kannst es ersetzen mit str_replace

Beispiel:

$SatzMitCode = '§6Hallo §adies §2ist §6ein §3String'$SatzMitCode  str_replace($6'<span style="color: #FFAA00">'$SatzMitCode);
echo 
$SatzMitCode;

Ausgabe:

<span style="color: #FFAA00">Hallo ...

Dann wäre der erste Teil schon mal ersetzt, den Rest schaffst du bestimmt selber

Link:

http://php.net/manual/de/function.str-replace.php

der schließende tag fehlt dann, einfacher ist es mit regex und gruppen.

0

Was möchtest Du wissen?