Autor |
Nachricht |
last_breath
Threadersteller
Dabei seit: 08.07.2004
Ort: Bonn
Alter: 45
Geschlecht:
|
Verfasst Mo 11.10.2004 15:54
Titel PHP Whitespaces aus Variable entfernen |
 |
|
Tag!
Folgendes Problem: Ein User gibt in eine Textarea mit "wrap" einen Text ein macht absichtlich 7 Ümbrüche und gibt wieder Text ein. Nun muss dieser String aber weiter verarbeitet werden und zwar möchte ich alles abfangen und anpassen wo im Text mehr als 2 Umbrüche sind, findet er mehr als 2 Umbrüche werden diese dann auf 2 reduziert.
Folgende Ansätze habe ich bereits hinter mir:
- mit nl2br() alle whitespace umwandeln lassen, funktionierte nicht da er statt "\n" in "<br />", "\n" in "<br />\n" umwandelt.
- die Funktionen trim() chop() kann man auch ausschließen da sie nicht nach einem Vorkommen von whitespace in einem String suchen
Hat da jemand eine Idee für mich? Hatte bereits überlegt den String in ein Array zu zerlegen und dann die einzelnen String abzuschneiden und später wieder zu einem String zusammen zu setzen...
Dank Euch
|
|
|
|
 |
dastef
Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mo 11.10.2004 15:57
Titel
|
 |
|
string in array wäre eins .. explode() anhand von \n und dann mit
ner foreach() durch und checken ob mehr als 2 aufeinander folgende
elemente empty sind.
ansonsten denke ich, wäre evtl preg_replace() eine lösung? ich hab
den genauen syntax für sowas nicht griffbereit, aber ich denke,
möglich ist es damit.
|
|
|
|
 |
Anzeige
|
|
 |
Benutzer 1103
Account gelöscht
Ort: -
|
Verfasst Mo 11.10.2004 16:14
Titel Re: PHP Whitespaces aus Variable entfernen |
 |
|
last_breath hat geschrieben: |
- mit nl2br() alle whitespace umwandeln lassen, funktionierte nicht da er statt "\n" in "<br />", "\n" in "<br />\n" umwandelt. |
Meinst du mit whitespace Umbruch?
Ansich funktioniert das mit nl2br(). Verstehe jetzt nicht warum er "<br />\n" daraus macht. Das ist unnormal.
Zuletzt bearbeitet von am Mo 11.10.2004 16:14, insgesamt 1-mal bearbeitet
|
|
|
|
 |
dastef
Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mo 11.10.2004 16:17
Titel
|
 |
|
Nein, isses nicht, steht doch sogar im Manual:
Das Manual hat geschrieben: | Gibt den string mit einem vor allen Neue-Zeile-Zeichen eingefügten '<br />' zurück. |
|
|
|
|
 |
gtz
Dabei seit: 15.04.2002
Ort: -
Alter: 49
Geschlecht:
|
Verfasst Mo 11.10.2004 16:28
Titel
|
 |
|
ohne nachzudenken und mit VIEL optimierungspotential: einfahc solange 3 nl durch zwei ersetzen, bis nirgendwo mehr 3 da sind.
|
|
|
|
 |
Achim M.
Dabei seit: 17.03.2003
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mo 11.10.2004 16:45
Titel
|
 |
|
Wenn ich es richtig verstehe, suchst Du so etwas:
Code: | $text=nl2br(preg_replace ('/(\\n|\\r|\\r\\n){2,}/','<br /><br />',$test)); |
Gruß
Achim
|
|
|
|
 |
gtz
Dabei seit: 15.04.2002
Ort: -
Alter: 49
Geschlecht:
|
Verfasst Mo 11.10.2004 16:51
Titel
|
 |
|
Achim M. hat geschrieben: | Wenn ich es richtig verstehe, suchst Du so etwas:
Code: | $text=nl2br(preg_replace ('/(\\n|\\r|\\r\\n){2,}/','<br /><br />',$test)); |
Gruß
Achim |
wohl sowas. allerdings sollte man mal ausprobieren, ob die pregexps hier schneller sind als ne stumpfe while-str_replace blödheit.
|
|
|
|
 |
last_breath
Threadersteller
Dabei seit: 08.07.2004
Ort: Bonn
Alter: 45
Geschlecht:
|
Verfasst Mo 11.10.2004 17:01
Titel
|
 |
|
Vielen Dank für die Anregungen...
Hatte mir in der Zwischenzeit ne Funktion zusammen gebastelt
Code: |
function my_break($foo){
$foo=nl2br($foo);
$foo=explode('<br />',$foo); // String in Array zerlegen
$foo=array_map('trim', $foo); // Jedes Element wird vom beschnitten
$foo=implode('<br />', $foo); // Array-Elemente werden mit "<br />" wieder in einen String umgewandelt
// Anzahl der vorhandenen breaks wird getestet und gegebenenfalls gekuerzt
while(substr_count($foo, '<br /><br /><br />') != '0'){
$foo=ereg_replace('<br /><br /><br />', '<br /><br />', $foo);
}
return $foo;
}
|
Aber Achims Lösung ist natürlich um einiges eleganter...
Dank Euch
|
|
|
|
 |
|
|
 |
Ähnliche Themen |
[SQL] Variable durch Variable aus anderer Tabelle ersetzen
Definition Variable
{css} variable abstände mit css?
C variable char
[AS] String als Variable
PHP Variable in Textfeld
|
 |