Hallo Gemeinde,
ich verzweifel gleich.
Ich habe Text in einem Editor, dieser wird exportiert und in eine DB geschrieben. Dabei sollen alle <p>-Tags durch <br> ersetzt werden.
$content = eregi_replace("<P>", "<br>", $content);
Kein Problem!
Nun sollen aber alle <br>-Tags und Leerzeichen die am Anfang stehen, vor dem eigentlichen Content entfernt werden.
$content = preg_replace("#^(<br>| +#isxU", "", $content);
Auch kein Problem!
So lange nicht beides gleichzeitig vorkommt.
Habe ich am Anfagn einer Strings ein <P> wird dieser beim export vor dem schreiben in die DB auch richtig in ein <br> gewandelt. Alerdings wird dieser dann nicht entfernt. Öffne ich nun wieder den Eintrag im Editor und sicher gleich wieder, dann werden die <br>-Tags auch ordentlich entfernt.
Wie kann so was sein?
Das Entfernen steht natürlich auch nach dem umwandeln. Ich habe auch um sicher zu gehen die Variablen umgenannt:
$content = eregi_replace("<P>", "<br>", $content);
$content2 = preg_replace("#^(<br>| +#isxU", "", $content);
Und dann $content2 in die DB geschrieben. Auch das blieb ohne Erfolg.
Hier mal das ganze Umwandlungs-Listing. Vieeleicht baue ich ja an anderer Stelle einen Fehler und peils nicht.
#-------------------------------------------------------------------------------------------------------------
### Font-Face entfernen ###
$content = preg_replace("# face=\".*\"#isU", "", $content);
$content = preg_replace("# face=.*>#isU", ">", $content);
### Font-Color entfernen, wenn nicht Linkfarben ###
function replaceWord($word){
if(!eregi(" color=#FF0001",$word ) && !eregi(" color=#DD0001",$word)){
return "";
} else {
return $word;
}
}
$content = preg_replace("# color=\#[a-fA-F0-9]{6}#esiS", "replaceWord(\"\\0\")", $content);
### Font-Style entfernen ###
$content = preg_replace("#<font(.*)style=\".*\">#isU", "<font\\1>", $content);
### Font-Size entfernen ###
$content = preg_replace("#<font(.*)size=.*>#isU", "<font\\1>", $content);
### Relevante Tags in kleinschrift umwandeln ###
$content = eregi_replace("<strong>", "<b>", $content);
$content = eregi_replace("</strong>", "</b>", $content);
$content = eregi_replace("<A", "<a", $content);
$content = eregi_replace("</A>", "</a>", $content);
$content = eregi_replace("<BR>", "<br>", $content);
$content = str_replace("<B>", "<b>", $content);
$content = str_replace("</B>", "</b>", $content);
$content = str_replace("<LI>", "<li>", $content);
$content = str_replace("</LI>", "</li>", $content);
$content = str_replace("<UL>", "<ul>", $content);
$content = str_replace("</UL>", "</ul>", $content);
$content = ereg_replace("<FONT", "<font", $content);
$content = ereg_replace("</FONT>", "</font>", $content);
### Tags fuer Listen behandeln ###
$content = eregi_replace("<P>", "<br>", $content);
$content = eregi_replace("</P>", "", $content);
$content = eregi_replace("\n<UL>", "<ul>", $content);
$content = eregi_replace("\r<UL>", "<ul>", $content);
$content = eregi_replace("</UL>\n", "</ul>", $content);
$content = eregi_replace("</UL>\r", "</ul>", $content);
$content = eregi_replace("\n<LI>", "<li>", $content);
$content = eregi_replace("\r<LI>", "<li>", $content);
$content = eregi_replace("</LI>\n", "</li>", $content);
$content = eregi_replace("</LI>\r", "</li>", $content);
### Sonstige Tags behandeln ###
$content = eregi_replace("hspace=0", "hspace=\"0\"", $content);
$content = ereg_replace("<IMG ", "<img ", $content);
$content = ereg_replace("SRC=", "src=", $content);
$content = eregi_replace("target=_self", "target=\"_self\"", $content);
$content = eregi_replace("target=_blank", "target=\"_blank\"", $content);
$content = eregi_replace("</?u>", "", $content);
### Markierte Links erstellen ###
preg_match_all("#<font color=\#FF0001>(.*)</font>#isU", $content, $matches2);
$total2 = count($matches2[0]);
for ($i=0; $i < $total2; $i++){
$orig2 = $matches2[0][$i];
$replace2 = $matches2[1][$i];
$content = str_replace($orig2, '<a href="" target="_self">'.$replace2.'</a>' , $content);
}
### Vorhandene Links - Fontmarkierung entfernen ###
preg_match_all("#<font color=\#DD0001>(.*)</font>#isU", $content, $matches3);
$total3 = count($matches3[0]);
for ($i=0; $i < $total3; $i++){
$orig3 = $matches3[0][$i];
$replace3 = $matches3[1][$i];
$content = str_replace($orig3, $replace3 , $content);
}
### <a href wieder in richtige Reihenfolge setzen ###
$content = ereg_replace("<a target=\"(.*)\" href=\"(.*)\">", "<a href=\"\\2\" target=\"\\1\">", $content);
### Bildpfad auf relativ setzen ###
$content = str_replace($http_root2."admin/data/", "", $content);
### Leere <font>-Tags entfernen ###
$content = eregi_replace("(<font *>|</font>)", "", $content);
$content = preg_replace("#^(<br>| +#isxU", "", $content);
#-------------------------------------------------------------------------------------------------------------
Danke,
Andi
ich verzweifel gleich.
Ich habe Text in einem Editor, dieser wird exportiert und in eine DB geschrieben. Dabei sollen alle <p>-Tags durch <br> ersetzt werden.
$content = eregi_replace("<P>", "<br>", $content);
Kein Problem!
Nun sollen aber alle <br>-Tags und Leerzeichen die am Anfang stehen, vor dem eigentlichen Content entfernt werden.
$content = preg_replace("#^(<br>| +#isxU", "", $content);
Auch kein Problem!
So lange nicht beides gleichzeitig vorkommt.
Habe ich am Anfagn einer Strings ein <P> wird dieser beim export vor dem schreiben in die DB auch richtig in ein <br> gewandelt. Alerdings wird dieser dann nicht entfernt. Öffne ich nun wieder den Eintrag im Editor und sicher gleich wieder, dann werden die <br>-Tags auch ordentlich entfernt.
Wie kann so was sein?
Das Entfernen steht natürlich auch nach dem umwandeln. Ich habe auch um sicher zu gehen die Variablen umgenannt:
$content = eregi_replace("<P>", "<br>", $content);
$content2 = preg_replace("#^(<br>| +#isxU", "", $content);
Und dann $content2 in die DB geschrieben. Auch das blieb ohne Erfolg.
Hier mal das ganze Umwandlungs-Listing. Vieeleicht baue ich ja an anderer Stelle einen Fehler und peils nicht.
#-------------------------------------------------------------------------------------------------------------
### Font-Face entfernen ###
$content = preg_replace("# face=\".*\"#isU", "", $content);
$content = preg_replace("# face=.*>#isU", ">", $content);
### Font-Color entfernen, wenn nicht Linkfarben ###
function replaceWord($word){
if(!eregi(" color=#FF0001",$word ) && !eregi(" color=#DD0001",$word)){
return "";
} else {
return $word;
}
}
$content = preg_replace("# color=\#[a-fA-F0-9]{6}#esiS", "replaceWord(\"\\0\")", $content);
### Font-Style entfernen ###
$content = preg_replace("#<font(.*)style=\".*\">#isU", "<font\\1>", $content);
### Font-Size entfernen ###
$content = preg_replace("#<font(.*)size=.*>#isU", "<font\\1>", $content);
### Relevante Tags in kleinschrift umwandeln ###
$content = eregi_replace("<strong>", "<b>", $content);
$content = eregi_replace("</strong>", "</b>", $content);
$content = eregi_replace("<A", "<a", $content);
$content = eregi_replace("</A>", "</a>", $content);
$content = eregi_replace("<BR>", "<br>", $content);
$content = str_replace("<B>", "<b>", $content);
$content = str_replace("</B>", "</b>", $content);
$content = str_replace("<LI>", "<li>", $content);
$content = str_replace("</LI>", "</li>", $content);
$content = str_replace("<UL>", "<ul>", $content);
$content = str_replace("</UL>", "</ul>", $content);
$content = ereg_replace("<FONT", "<font", $content);
$content = ereg_replace("</FONT>", "</font>", $content);
### Tags fuer Listen behandeln ###
$content = eregi_replace("<P>", "<br>", $content);
$content = eregi_replace("</P>", "", $content);
$content = eregi_replace("\n<UL>", "<ul>", $content);
$content = eregi_replace("\r<UL>", "<ul>", $content);
$content = eregi_replace("</UL>\n", "</ul>", $content);
$content = eregi_replace("</UL>\r", "</ul>", $content);
$content = eregi_replace("\n<LI>", "<li>", $content);
$content = eregi_replace("\r<LI>", "<li>", $content);
$content = eregi_replace("</LI>\n", "</li>", $content);
$content = eregi_replace("</LI>\r", "</li>", $content);
### Sonstige Tags behandeln ###
$content = eregi_replace("hspace=0", "hspace=\"0\"", $content);
$content = ereg_replace("<IMG ", "<img ", $content);
$content = ereg_replace("SRC=", "src=", $content);
$content = eregi_replace("target=_self", "target=\"_self\"", $content);
$content = eregi_replace("target=_blank", "target=\"_blank\"", $content);
$content = eregi_replace("</?u>", "", $content);
### Markierte Links erstellen ###
preg_match_all("#<font color=\#FF0001>(.*)</font>#isU", $content, $matches2);
$total2 = count($matches2[0]);
for ($i=0; $i < $total2; $i++){
$orig2 = $matches2[0][$i];
$replace2 = $matches2[1][$i];
$content = str_replace($orig2, '<a href="" target="_self">'.$replace2.'</a>' , $content);
}
### Vorhandene Links - Fontmarkierung entfernen ###
preg_match_all("#<font color=\#DD0001>(.*)</font>#isU", $content, $matches3);
$total3 = count($matches3[0]);
for ($i=0; $i < $total3; $i++){
$orig3 = $matches3[0][$i];
$replace3 = $matches3[1][$i];
$content = str_replace($orig3, $replace3 , $content);
}
### <a href wieder in richtige Reihenfolge setzen ###
$content = ereg_replace("<a target=\"(.*)\" href=\"(.*)\">", "<a href=\"\\2\" target=\"\\1\">", $content);
### Bildpfad auf relativ setzen ###
$content = str_replace($http_root2."admin/data/", "", $content);
### Leere <font>-Tags entfernen ###
$content = eregi_replace("(<font *>|</font>)", "", $content);
$content = preg_replace("#^(<br>| +#isxU", "", $content);
#-------------------------------------------------------------------------------------------------------------
Danke,
Andi
Kommentar