mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Mo 05.12.2016 22:00 Benutzername: Passwort: Auto-Login

Thema: PHP Whitespaces aus Variable entfernen vom 11.10.2004


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP Whitespaces aus Variable entfernen
Seite: 1, 2  Weiter
Autor Nachricht
last_breath
Threadersteller

Dabei seit: 08.07.2004
Ort: Bonn
Alter: 37
Geschlecht: Männlich
Verfasst Mo 11.10.2004 15:54
Titel

PHP Whitespaces aus Variable entfernen

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
dastef

Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 11.10.2004 15:57
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden
Anzeige
Anzeige
schwampf

Dabei seit: 31.03.2002
Ort: Bremen
Alter: 36
Geschlecht: Männlich
Verfasst Mo 11.10.2004 16:14
Titel

Re: PHP Whitespaces aus Variable entfernen

Antworten mit Zitat Zum Seitenanfang

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 schwampf am Mo 11.10.2004 16:14, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
dastef

Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 11.10.2004 16:17
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden
gtz

Dabei seit: 15.04.2002
Ort: -
Alter: 41
Geschlecht: Männlich
Verfasst Mo 11.10.2004 16:28
Titel

Antworten mit Zitat Zum Seitenanfang

ohne nachzudenken und mit VIEL optimierungspotential: einfahc solange 3 nl durch zwei ersetzen, bis nirgendwo mehr 3 da sind.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Achim M.

Dabei seit: 17.03.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 11.10.2004 16:45
Titel

Antworten mit Zitat Zum Seitenanfang

Wenn ich es richtig verstehe, suchst Du so etwas:

Code:
$text=nl2br(preg_replace ('/(\\n|\\r|\\r\\n){2,}/','<br /><br />',$test));   


Gruß

Achim
  View user's profile Private Nachricht senden
gtz

Dabei seit: 15.04.2002
Ort: -
Alter: 41
Geschlecht: Männlich
Verfasst Mo 11.10.2004 16:51
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
last_breath
Threadersteller

Dabei seit: 08.07.2004
Ort: Bonn
Alter: 37
Geschlecht: Männlich
Verfasst Mo 11.10.2004 17:01
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
 
Ähnliche Themen [PHP] Gibts die Variable akt. Zeile des PHP-Codes?
PHP Variable in Textfeld
[PHP][AS 2] Variable wird nicht erkannt
Variable von JS an PHP übergeben?
PHP Variable nicht gefunden
[PHP] Layer ID in Variable übernehmen?
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.