kostenloser Webspace werbefrei: lima-city


Alle Zeilenumbrüche entfernen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    yorecords

    Kostenloser Webspace von yorecords

    yorecords hat kostenlosen Webspace.

    Hallo!

    Seit gestern versuche ich in einem tag/string">String alle Zeilenumbrüche zu entfernen. Es will aber einfach nicht funktionieren. Ich habe es zwar geschafft mit str_replace die Leerzeilen zu entfernen (\n und \r), aber nach einigen Zeichen lassen sich die Zeilenumbrüche einfach nicht entfernen. Diese wären z.B.: ? - / % ; ‴ = ! und eigentlich allem ähnlichen.
    Ich habe schon etliche Threads dazu gesehen aber keiner löst mein Problem. Kennt jemand eine Möglichkeit ausnahmslos jeden einzelnen Zeilenumbruch zu entfernen bzw. zu ersetzen?

    Vielen Dank im Voraus!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. tropa-graciosa

    tropa-graciosa hat kostenlosen Webspace.

    chr($Zahl);

    Damit kannst du bestimmte Zeichen ausgeben und so mit irgendeiner Ersetz-Funktion diese durch einen leeren String ersetzen:

    str_replace(chr($x),"",$string);

    Jetzt musst du für das $x nur noch die Nummer des entsprechende ASCII-Zeichens einsetzen. Dafür gibt es Tabellen, wo die 128 Zeichen drinstehen, sind auch Zeilenumbrüche dabei.
  4. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    tropa-graciosa schrieb:
    str_replace(chr($x),"",$string);
    Was mit
    13
    für
    \r
    und
    10
    für
    \n
    genauso viel bewirkt wie gleich mit
    \r
    und
    \n
    ...

    Versuch es mal so:
    $text = dein Text mit vielen Zeilenumbrüchen
    $text = str_replace("\r", '', $text);
    $text = str_replace("\n", '', $text);
    echo($text);
  5. Autor dieses Themas

    yorecords

    Kostenloser Webspace von yorecords

    yorecords hat kostenlosen Webspace.

    Danke für eure Antworten!

    tropa-graciosa schrieb:
    chr($Zahl);

    Damit kannst du bestimmte Zeichen ausgeben und so mit irgendeiner Ersetz-Funktion diese durch einen leeren String ersetzen:

    str_replace(chr($x),"",$string);

    Jetzt musst du für das $x nur noch die Nummer des entsprechende ASCII-Zeichens einsetzen. Dafür gibt es Tabellen, wo die 128 Zeichen drinstehen, sind auch Zeilenumbrüche dabei.


    Wie hackyourlife schon geschrieben hat: das hat leider keinen Sinn..

    hackyourlife schrieb:
    tropa-graciosa schrieb:
    str_replace(chr($x),"",$string);
    Was mit
    13
    für
    \r
    und
    10
    für
    \n
    genauso viel bewirkt wie gleich mit
    \r
    und
    \n
    ...

    Versuch es mal so:
    $text = dein Text mit vielen Zeilenumbrüchen
    $text = str_replace("\r", '', $text);
    $text = str_replace("\n", '', $text);
    echo($text);


    Das hab ich wie gesagt schon. Aber damit sind leider nicht alle Zeilenumbrüche weg. Komischerweise nur die Leerzeilen. Ich glaube es sind überhaupt keine Zeilenumbrüche in der Form mehr drin, nur geht der Text nach manchen Zeichen automatisch erst in der nächsten Zeile weiter. Übrigens geht es hier um einen ewig langen String ohne Leerzeichen...

    Beitrag zuletzt geändert: 30.6.2012 1:08:39 von yorecords
  6. Hallo yorecords,

    wie kommst Du denn zu dem Schluß, dass dort noch Zeilenumbrüche enthalten sind?
    Gibst Du das Ergebnis in eine Textdatei aus oder betrachtest Du es im Browser?
    Ich vermute, dass der Text nach dem Ersetzen aller \n und \r keine Zeilenumbrüche mehr enthält und es sich schlicht um ein Anzeigeproblem handelt.
    Innerhalb eines Wortes, d.h. einer zusammenhängenden Zeichenfolge die nur Buchstabe und Zahlen enthält, wird ein Browser und im Normlfall auch Texteditoren den Text nicht umbrechen, da er höchstwahrscheinlich nicht für alle Sprachen dieser Welt die Trennregeln kennt. Wenn er auf Leerzeichen, Satzzeichen, oder andere Zeichen die unmöglich Bestandteil eines Wortes sein können trifft, dann wird umgebrochen, damit die Darstellung des Textes nicht unnötig Breit wird.
    Um die Annahme zu prüfen kannst Du das Ergebnis ja mal in einem <pre>-Tag oder <div>-Tag mit style "white-space:pre" ausgeben.
    Wenn dann alles in einer Zeile ist, dann handelt es sich um ein Anzeigeproblem. Sollten es immer noch mehrere Zeilen sein, dann würde ich den Text in eine Datei speichern und mal mit einem Hexeditor schauen, welche Zeichen an den Umbruchstellen sind.

    Beitrag zuletzt geändert: 30.6.2012 2:16:54 von darkpandemic
  7. Autor dieses Themas

    yorecords

    Kostenloser Webspace von yorecords

    yorecords hat kostenlosen Webspace.

    darkpandemic schrieb:
    Hallo yorecords,

    wie kommst Du denn zu dem Schluß, dass dort noch Zeilenumbrüche enthalten sind?
    Gibst Du das Ergebnis in eine Textdatei aus oder betrachtest Du es im Browser?
    Ich vermute, dass der Text nach dem Ersetzen aller \n und \r keine Zeilenumbrüche mehr enthält und es sich schlicht um ein Anzeigeproblem handelt.
    Innerhalb eines Wortes, d.h. einer zusammenhängenden Zeichenfolge die nur Buchstabe und Zahlen enthält, wird ein Browser und im Normlfall auch Texteditoren den Text nicht umbrechen, da er höchstwahrscheinlich nicht für alle Sprachen dieser Welt die Trennregeln kennt. Wenn er auf Leerzeichen, Satzzeichen, oder andere Zeichen die unmöglich Bestandteil eines Wortes sein können trifft, dann wird umgebrochen, damit die Darstellung des Textes nicht unnötig Breit wird.
    Um die Annahme zu prüfen kannst Du das Ergebnis ja mal in einem <pre>-Tag oder <div>-Tag mit style "white-space:pre" ausgeben.
    Wenn dann alles in einer Zeile ist, dann handelt es sich um ein Anzeigeproblem. Sollten es immer noch mehrere Zeilen sein, dann würde ich den Text in eine Datei speichern und mal mit einem Hexeditor schauen, welche Zeichen an den Umbruchstellen sind.


    Das ist genau das was ich mit

    yorecords schrieb:
    Ich glaube es sind überhaupt keine Zeilenumbrüche in der Form mehr drin, nur geht der Text nach manchen Zeichen automatisch erst in der nächsten Zeile weiter..


    sagen wollte. Das wird das Problem sein. Die Frage ist: Gibt es irgendeine Möglichkeit dem Browser bzw. der Textarea in der der Text ausgegeben wird mitzuteilen, dass der Text komme was wolle nicht in die nächste Zeile wechseln soll?
    Natürlich aber nur im Rahmen der Größe der Textarea..
  8. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    yorecords schrieb:
    Gibt es irgendeine Möglichkeit dem Browser bzw. der Textarea in der der Text ausgegeben wird mitzuteilen, dass der Text komme was wolle nicht in die nächste Zeile wechseln soll?
    Meinst du mit "Textarea" sowas:
    <textarea wrap="off">
    Text der nicht umgebrochen wird, egal wie lang er ist.
    </textarea>
    Falls du keine "Textarea" meinst sondern nur was zum ausgeben wird
    <pre>
    das sein was du suchst.
  9. Hallo yorecords,

    hast Du mal versucht Dein Textarea mit folgenden Style-Attributen zu versehen:

    white-space: nowrap; overflow: scroll;

    Vielleicht funktioniert es ja dann.

    PS: "wrap" wird offiziel nur von IE 4 und einem alten Netscape unterstützt.
  10. Autor dieses Themas

    yorecords

    Kostenloser Webspace von yorecords

    yorecords hat kostenlosen Webspace.

    Danke für eure Antworten!

    Ich fürchte ich hab mich wieder mal nicht richtig ausgedrückt.. Der Text soll wenn kein Platz mehr ist schon in der nächsten Zeile weitergehen. Nur soll er halt wirklich erst in die nächste Zeile wechseln wenn in der aktuellen kein Platz mehr ist, anstatt nach gewissen Zeichen schon mehrere cm vor dem Ende der Zeile zu wechseln..

    Edit:

    Und noch einmal nebenbei: Es geht wie gesagt um einen ewig langen String ohne Leerzeichen.

    Beitrag zuletzt geändert: 2.7.2012 0:26:56 von yorecords
  11. yorecords schrieb:
    ... Und noch einmal nebenbei: Es geht wie gesagt um einen ewig langen String ohne Leerzeichen.
    Und noch einmal nebenbei

    yo mey! do host recht ;) und wenn du uns noch sagen kannst, was
    einen ewig langen String ohne Leerzeichen
    heißt? ... dann kann man das prob lösen ;)
  12. Autor dieses Themas

    yorecords

    Kostenloser Webspace von yorecords

    yorecords hat kostenlosen Webspace.

    czibere schrieb:
    yorecords schrieb:
    ... Und noch einmal nebenbei: Es geht wie gesagt um einen ewig langen String ohne Leerzeichen.
    Und noch einmal nebenbei

    yo mey! do host recht ;) und wenn du uns noch sagen kannst, was
    einen ewig langen String ohne Leerzeichen
    heißt? ... dann kann man das prob lösen ;)


    Aber da hab ich mich jetzt doch klar ausgedrückt... :smile: Ein ewig langer String ohne Leerzeichen halt..

    Z.B.:

    bnzid67e5&3zui3nhdt5§e3sr673u84ux39doik%lmod093jlrhduizw89e03jeio3hbd86gw_dz2980pmi3onfbuzv567d83.928jporömfne9v73rzbuin=omkwj89f73ggrzihojp?kjf897:g3rh3jk9f03u9?r7-r656rf435/dezhuj0>9fg467ughej9823487fg67748r9387e6ffr3g|23ijoi3jdfn3u9n83f6c3t6dfguid3h93hdf783g6fd7uh378g68h93j9k0r83hg7f67393jopr3m03f339hf3f98j0_f390j39h378fg673g3j03983fh-7g673#ghr9mk309fj9+83hg3gh9?=8jk30f9nh873hg7h3kf93&!8jhf78g336grfh3<980j39fn98347g837


    Aber ich hab das Problem jetzt einfach gelöst indem ich die verursachenden Zeichen weggelassen hab...
    Nochmal danke für eure Antworten!

    Edit:
    Man sieht oben eh genau was ich meine. Nach Zeichen wie z.B. - oder % geht der Text in der nächsten Zeile weiter. Das wollte ich irgendwie umgehen.
    Hat sich jetzt aber wie gesagt erledigt.

    Beitrag zuletzt geändert: 2.7.2012 2:07:45 von yorecords
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!