php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.07.2007, 14:33  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard Zeilenumbrüche entfernen

Hallo Leute,

also das gehört wohl eindeutig ins Anfängerforum. Ich hab einen String in PHP der HTML Code enthält und später in eine JS variable geschrieben soll, einfach um den Text via innerHtml später einzublenden.

Nun ist der HTML Code in meiner PHP Variable in mehrere Zeilen unterteilt, damit das ganze übersichtlicher ist. Das Problem ist nun das wenn ich den String an JS übergeben will, sich JS beschwert weil es keine Strings in mehreren Zeilen mag. Ich muss also meinen String so konvertieren das er in nur einer Zeile ausgegeben wird. Wie stelle ich das an? Habs schon mit str_replace \n versucht und mit str_replace
von (nl2br($...)) aber das hilft leider alles nicht.

Sorry für die blöde Frage.

Gruß
CyCap
cycap ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 03.07.2007, 15:10  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Ahhh Lösung selber gefunden. Blöder Fehler... Windows-System xD

Linux: \n
Windows: \r\n
MacOS: \r

also machen wir doch einfach

ereg_replace("(\r\n|\n|\r)", "", $co);

und alles wird gut
cycap ist offline  
Alt 03.07.2007, 15:18  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

ereg_* ist deprecated, das heißt wird in zukünftigen PHP Versionen nicht mehr unterstützt.

PHP-Code:
<?php
$co 
preg_replace('#[\r\n]#s'''$co);
?>
Zergling-new ist offline  
Alt 03.07.2007, 15:21  
Erfahrener Benutzer
 
Registriert seit: 16.02.2006
Beiträge: 303
tinchen
Standard

Also wenn du
PHP-Code:
<?php
function cleanString$str$tobr=
{
   if( 
$tobr 
   {
           
$str    =  nl2br($str); 
   }
   
$str            =  preg_replace('/(\\n|\\r|\\r\\n)/','',$str));
   return 
$str;
}
?>
über diese Variable laufen lässt, kann ich mir nicht vorstellen, dass es an den
Steuerzeichen liegt, die den Text im Quelltext umbrechen und damit dafür sorgen,
dass es Probleme mit JS gibt.

**eijeijei, viel zu langsam ***

Grüße
Tine
tinchen ist offline  
Alt 03.07.2007, 15:31  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Muss es \\n heißen? Ich bin gerade nicht sicher ob ein regulärer Ausdruck die Zeichenkette \n oder
(den Zeilenumbruch an sich) als Zeilenumbruch erkennt.
Zergling-new ist offline  
Alt 03.07.2007, 16:27  
Erfahrener Benutzer
 
Registriert seit: 16.02.2006
Beiträge: 303
tinchen
Standard

Frage doch nun nicht so komplizierte Dinge Zergling.

Das war das erste, was mir in den Kopf gekommen ist, vielmehr etwas aus meiner Sammlung, die ich ständig erweitere und verbessere, um bei Bedarf etwas zu haben,
was hin und wieder nützlich ist. Ich denke mal jeder hat so etwas für mehr oder weniger
große Probleme. Oben ist auch ein ")" zu viel drin.

Irgendetwas werde ich mir dabei gedacht haben.
Jetzt so du mich so fragst sollte \n doch reichen, hmmm wie komme ich denn auf \\n?
tinchen ist offline  
Alt 03.07.2007, 16:40  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Das kommt darauf an:
ALSO: Entscheidend ist, ob das x Flag gesetzt ist, also der PCRE_EXTENDED Modus. Zweites Merkmal ist der verwendete Stringbegrenzer.
Innerhalb von " " wird \n und \r vorher umgesetzt und die Zeichen werden mit x Flag genau wie ein Leerzeichen (im Gegensatz zu \s oder \040) ignoriert, also nicht ersetzt. Hier ist \\n und \\r zu verwenden, um den Backslash zu escapen und für den regulären Ausdruck einen non-printing character zu erhalten.

Innerhalb einfacher Hochkommata, wird der Backslash nicht ausgewertet, stört allerdings auch nicht, da der Backslash im regulären Audruck erst mit \\ dargestellt wird. Unabhängig vom PCRE_EXTENDED Mode hat man hier immer Erfolg.
nikosch ist gerade online  
Alt 03.07.2007, 19:54  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Interessant das einen die Moderatoren hier schon in den OffToipic führen *g*

Ich hab zwar nur die hälfte von dem verstanden was ihr geschrieben habt, aber hauptsache es funktioniert

Herzlichen Dank.

Gruß
CyCap
cycap ist offline  
Alt 03.07.2007, 20:45  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Öhm.... warum verwendet Ihr nicht einfach str_replace()?
Einmal mit "\n" und einmal mit "\r".
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 03.07.2007, 20:51  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Zitat von Der_Gerhard
Öhm.... warum verwendet Ihr nicht einfach str_replace()?
Einmal mit "\n" und einmal mit "\r".
Wald...lauter Bäume...Dings...
Zergling-new ist offline  
 


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
Alles html aus einem String entfernen? BartTheDevil89 PHP Tipps 2008 3 08.10.2007 15:12
Werte aus Array entfernen NetLook PHP Tipps 2006 18 23.10.2006 11:43
\n entfernen freitz PHP Tipps 2006 8 16.10.2006 11:27
Gefährlichen Code entfernen Davido PHP Tipps 2006 3 28.08.2006 13:05
Zeichen \n und \r entfernen madSoul PHP Tipps 2006 7 11.08.2006 07:54
\n und \r aus der DB automatisch entfernen Bonaparte PHP Tipps 2006 1 18.02.2006 20:13
Zeilenumbrüche aus DB entfernen madSoul PHP Tipps 2006 4 10.02.2006 13:06
führende Leerzeichen entfernen PHP Tipps 2007 6 20.11.2005 13:23
Sonderzeichen (·) entfernen blinkster.de PHP Tipps 2005-2 2 10.10.2005 19:27
\ entfernen Stinger PHP Tipps 2005-2 3 10.07.2005 19:35
[Erledigt] preg_replace &lt;br /&gt; am ende eines strings entfernen PHP Tipps 2005 20 03.06.2005 08:48
[Erledigt] BB Code entfernen PHP Tipps 2005 2 25.04.2005 15:20
leere felder entfernen PHP Tipps 2007 14 04.01.2005 10:59
Variable entfernen Adrenochrom PHP Tipps 2005 2 02.01.2005 01:23
Zeichen aus eine, ".txt" File entfernen PHP Tipps 2004 2 28.06.2004 17:37

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
variablen zeilenumbrüche entfernen php, php zeilenumbruch entfernen, \str_replace, zeilenumbruch\, zeilenumbruch ignorieren php, php str_replace zeilenumbruch ignorieren, php zeilen begrenzer entfernen, preg_replace zeilenumbruch ignorieren, alle zeilenumbrüche entfernen regulärer ausdruck, php zeilenumbruch in variable lässt sich nicht entfernen, zeilenumbruch reguläres zeichen, linux zeilenumbrüche entfernen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:38 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.