php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.08.2005, 16:14  
Gast
 
Beiträge: n/a
Standard Zeilenumbrüche vollständig eliminieren

Ich habe ein Problem mit strings, die \n-Zeilenumbrüche enthalten. Ich muss diese in ein Format ohne Zeilenumbrüche bringen, weil die per JavaScript-Funktion als String benutzt werden und wenn dann Zeilenumbrüche im Code vorhanden sind, gibt es Fehler.
Ich habe schon versucht, die Zeilenumbrüche mit Funktionen wie
nl2br(), str_replace(), strtr() (mit doppelten und einfachen Anführungszeichen) usw. wegzubekommen, jedoch erhalte ich dann den Ursprungs-string MIT den Zeilenumbrüchen und zusätzlich, neben den Umbrüchen ein kleines
.

Wäre froh, wenn mir jemand helfen könnte.

Mfg Speedy
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.08.2005, 16:26  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Könntest du bitte mal den String posten und den Code mit dem du versucht hast, die Umbrüche zu löschen?
Corvin ist offline  
Alt 19.08.2005, 16:49  
Gast
 
Beiträge: n/a
Standard

eregi_replace("\n","",$string); sollte gehn oder?
 
Alt 21.08.2005, 12:41  
Gast
 
Beiträge: n/a
Standard

Zitat:
Ich habe schon versucht,
War vermutlich die falsche Schreibweise.
 
Alt 21.08.2005, 21:15  
Gast
 
Beiträge: n/a
Standard

Code:
$translate["ä"]  = "ä";
$translate["Ä"]  = "Ä";
$translate["ö"]  = "ö";
$translate["Ö"]  = "Ö";
$translate["ü"]  = "ü";
$translate["Ü"]  = "Ü";
$translate["ß"] = "ß";
$translate["&lt;"]    = "<";
$translate["&gt;"]    = ">";
$translate["&amp;"]   = "&";
$translate["&euro;"]  = "€";
$translate[""]  = " ";
$translate["&quot;"]  = '"';
$translate[""]   = "'";
$translate["C;"]   = "|";
$translate["
"]  = "\n";
$translate["
"]  = '\n'; 
/* Hierbei hab ich auch schon mti nur einem und einmal mit einfachen und einmal mit zweifachen anführungzeichen probiert.*/

return str_replace("\n", "
", strtr($text, array_flip($translate)));
das war doppelt
ich hatte es auch so:
Code:
return nl2br(str_replace("\n", "
", strtr($text, array_flip($translate))));
und so:
Code:
return strtr($text, array_flip($translate));
und so:
Code:
return str_replace("\n", "
", $text);
Immer wurde der Zeilenumbruch zwar verändert, aber er war immernoch da. eben nur mit einem
dahinter.

Und wenn ich verscuht diesen return-wertt mit einer Javascript-funktion (z.b.:
Code:
<a href="#" onclick="javascript:document.formular.notiz.value = '<?php echo text_to_html($notiz); ?>';">
)
in einem Textarea-feld auszugeben, gibts nen Fehler, weil im Quellcode die Umbrüche sind. Das sieht dann s aus:
Code:
<a href="#" onclick="javascript:document.formular.notiz.value = 'Blabla


bla


und noch mehr';">
Um den Javascrpt code gehts hier aber gar nicht, der funktioniert vollkommen. nur eben nicht mit zeilenumbrüchen im Quellcode.

Ein Beispiel für den entstandenen Text:
Code:
Notizspeichern

Notizl&ouml;schen



Fehlerberichterstatten

Fehlerberichtabschicken



Tipps/Hilfeanschalten

Tipps/Hilfeausschalten



Eintragsichern

Eintragl&ouml;schen
 
Alt 22.08.2005, 18:25  
Neuer Benutzer
 
Registriert seit: 14.07.2005
Beiträge: 27
mristau2k5
mristau2k5 eine Nachricht über ICQ schicken mristau2k5 eine Nachricht über MSN schicken
Standard

Ich weiss zwar nicht genau, worum es im Problem geht, aber ich glaube rausgelesen zu haben, dass ein Text mit \n in ne Textarea reinsoll.
Der Text liegt vor als PHP-Variable, daher würde ich das einfach so machen

Code:
<textarea 'settings'><?php echo $text; ?></textarea>
'settings' = deine Einstellungen für die textarea
$text = der Text mit \n

Also so bekommt man auf jedenfall Text von PHP in ne Textarea, aber was genau mit JS gemacht wird hab ich jetzt nicht genau mitbekommen

Vielleicht geht es, wenn du die Textarea invisible schaltest und auf OnClick visible

Edit: Ich hab noch was zu den \n rausbekommen, also mit

Code:
$text_nachher = trim($text_vorher);
kann man die \n auch weglöschen, das Problem ist, es geht nur zeilenweise, also müsstest du bei dem Text Zeile für Zeile die \n abschneiden.

Andere Möglichkeit (nicht getestet) mit

PHP-Code:
<?php
$array 
explode("\n"$text);
// auseinandernehmen und mit
$text_neu implode("
"
,$array);
// zusammensetzen, aber ich weiss nicht, ob explode die \n weglöscht
// wenn nicht, könnte man da mit trim nacharbeiten
?>
mristau2k5 ist offline  
Alt 22.08.2005, 19:56  
Gast
 
Beiträge: n/a
Standard

okay, das mit dem exploden muss ich mal probieren. Vielleicht geht das ja. Danke!
Aber ist das denn normal, dass bei den ganzen von mir oben aufgeführen funktionen das \n vorhanden bleibt? Normalerweise soll das doch ersetzt werden...
 
Alt 22.08.2005, 20:08  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

Liegt daran, dass ausser dem \n auch noch \r existieren.
DiBo33 ist offline  
Alt 22.08.2005, 20:12  
Gast
 
Beiträge: n/a
Standard

Achso! Ist das immer so bei Textarea-Feldern? Die Methode mit dem exploden und dann trimmen hat übrigens funktioniert, du bist spitze, mristau2k5! Wie lange ich daran gesessen hab! Juhuu! *freu*

D.h. dass wenn ich das mit str_replace oder so lösen wollte, müsste ich das ganze nochmal fürt die Wagenrückläufe durchführen? Naja. Geht ja auch so. Thx Leute!
 
Alt 23.08.2005, 05:33  
Gast
 
Beiträge: n/a
Standard

Zitat:
Achso! Ist das immer so bei Textarea-Feldern?
Die Forumsuche hätte dieses Thread überflüssig gemacht.
Das Thema kommt ja schon fast jede Woche hier.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Sämtlichen Code aus Eingabe eliminieren Stümper PHP Tipps 2006 5 24.07.2006 08:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
javascript zeilenumbruch in einem string im quellcode, php zeilenumbrüche aus quellcode nehmen, php zeilenumbruch onclick, php zeilenumbruch trimmen, zeilenumbrüche eliminieren, icq notiz zeilenumbruch, regex zeilenumbruch

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:28 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.