Antworten
Code: In Zwischenablage kopieren (nur IE)
Was hier so mühelos aussieht hat mich doch aber auch tatsächlich ein bisschen Gehirnschmalz gekostet :)
2.
Hi
Erstmal Thx für deine Bemühungen.
Aber das sucht jetzt irgendwie nur Text zwischen 2 html Tags raus und beseitigt dann das html ^^ .
Und einzelZiffern sucht er auch net :\
Angenommen ich habe einen Text:
$string = "".strtoupper("Another Test")." <font color=red>Ein Text mit Leerzeichen und ( und ) [ ] ! : - -</font> der mich noch mal umbringt";
Und will dann "Leerzeichen: " ( ) [ ] usw ersetzen durch Unicode :
$normzeichen = array('|(\()|',
'|(\))|',
'|( )|', // Leerzeichen
'|(:)|',
'|( )|',
'|(\[)|',
'|(!)|',
'|(\])|');
$unicode = array('(',
')',
' ', // Leerzeichen
'!',
':',
' ',
'[',
']');
und ich will, das er dann diese Zeichen entsprechend ausserhalb html ersetzt ....
preg_replace($normzeichen,$unicode,$string);
In Meinem Fall funktioniert das bisher so :
<?php
$string = "".strtoupper("Another Test")." <font color=red>Ein Text mit Leerzeichen und ( und ) [ ] ! : - -</font>";
function randnorm2html($string) {
// Zeichen die ersetzt werden sollen
function normzeichen(){
$retwert = array('|(\()|',
'|(\))|',
'|( )|',
'|(:)|',
'|( )|',
'|(!)|',
'|(\[)|',
'|(\])|');
// '|()|',
return $retwert;
}
// die Zeichen mit denen die normalen ersetzt werden sollen
function htmlzeichen(){
$retwert = array('(',
')',
' ',
':',
' ',
'!',
'[',
']');
// '&#x;',
return $retwert;
}
function norm2html($matches) {
//ersetzen
if(rand(1,50)>= 25) {
return preg_replace(normzeichen(),htmlzeichen(),$matches[1]);
}
else {
return $matches[1];
}
}
// und zurückgeben
return preg_replace_callback(normzeichen(),norm2html,$string);
}
echo "".randnorm2html($string)."<br>";
?>
( Ja ich weiss .. function in function ist grausam . Und das die 2 arrays in funktionen stehen ist auch komisch, liegt aber daran, das ich kein global verwenden soll . )
dieses beachtet jetzt zwar HTML nicht, erfüllt aber die Suchen und ersetzen Funktion so wie es soll.
Im Endeffekt soll der Text also der exact selbe bleiben. Für den Betrrachter zumindest. Im Source sollen aber die verschiedenen Zeichen durcheinandergewürfelt werden.
Thx für eure Hilfe :)
Mfg Sea
3.
ich hab' das zwar nicht so ganz verstanden, aber gebe trotzdem mal meinen Senf dazu ab :]
Du könntest den gesamten Text über die html-tags trennen lassen und dann den jeweiligen substring darauf abtesten, ob er mit < anfängt oder nicht.
Code: In Zwischenablage kopieren (nur IE)
Das, was jetzt hier rot angezeigt wird, darfst Du dann nicht anfassen. Innerhalb des grünen kannst Du ersetzen lassen
...wenn ich das Problem richtig verstanden habe.