php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack (1) Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  1 links from elsewhere to this Post. Click to view. #1 (permalink)  
Alt 21-09-2011, 16:08
chefdesigner
 Registrierter Benutzer
Links : Onlinestatus : chefdesigner ist offline
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 257
chefdesigner ist zur Zeit noch ein unbeschriebenes Blatt
Standard Mehrere Zeilenumbrüche durch einen Zeilenumbruch ersetzen

Hallo zusammen,

ich würde gerne den Quellcode meiner Unterseiten automatisch von unnötigen Zeilenumbrüchen säubern. Dazu lade ich mir die Seite mit der Funktion file_get_contents() und lasse dann verschiedene Replace-Funktionen drüber laufen. - Es sollen nicht nur unnötige Zeilenumbrüche, sondern auch andere Dinge ersetzt werden. - Das klappt soweit auch alles, bis auf die Zeilenumbrüche. Da es sein kann, dass beispielsweise 6 Zeilenumbrüche hintereinander stehen und in einem anderen Teil der Seite nur 4, habe mich folgender Funktion bedient:
PHP-Code:
$code preg_replace('/(?:(?:\r\n|\r|\n)\s*){2}/s'"\n\n"$code); 
Damit versuche ich mehrere Zeilenumbrüche durch einen einzigen Zeilenumbruch zu ersetzen. Irgendwie funktioniert das aber nur bedingt. Teilweise klappt es, teilweise nicht.

Kann mir jemand helfen?
__________________
Das Genie überblickt das Chaos!

Wer Rechtschreibfehler findet, darf sie behalten!
Mit Zitat antworten
  #2 (permalink)  
Alt 21-09-2011, 16:14
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Quantifier {2} bedeutet: GENAU 2 Vorkommen. Du willst aber alles ab zwei und mehr.

Mir ist auch nicht ganz klar, warum du 2 Zeilenumbrüche angibst. Du willst ja nicht nur die geraden Vorkommen abdecken, sondern auch die ungeraden.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!

Geändert von TobiaZ (21-09-2011 um 16:18 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 21-09-2011, 16:26
chefdesigner
 Registrierter Benutzer
Links : Onlinestatus : chefdesigner ist offline
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 257
chefdesigner ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hmm, da hast du wohl Recht... Sah auch ursprünglich etwas anders aus. Hab da einiges probiert. Wie kann ich denn den Quantifier so ändern, dass er 2 UND mehr abdeckt? Kann ja nicht alles aufzählen, oder? Geht das mit {2,} ?
__________________
Das Genie überblickt das Chaos!

Wer Rechtschreibfehler findet, darf sie behalten!
Mit Zitat antworten
  #4 (permalink)  
Alt 21-09-2011, 16:45
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

PHP-Code:
"/(?:[ \t]*(?:\n|\r\n?)){2,}/" 
Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!

Geändert von AmicaNoctis (21-09-2011 um 16:47 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 01-10-2011, 14:16
chefdesigner
 Registrierter Benutzer
Links : Onlinestatus : chefdesigner ist offline
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 257
chefdesigner ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hey Amica, hey TobiaZ

vielen Dank für eure Antworten. Habe das jetzt wie folgt verwendet, aber irgendwie hat das nicht zum gewünschten Effekt geführt.

PHP-Code:
$code preg_replace('/(?:[ \t]*(?:\n|\r\n?)){2,}/'"\n"$code); 
Kann mir jemand noch einen Tipp geben, was ich hier jetzt noch für einen Fehler drin habe?

Im Endeffekt soll der Quellcode einer Seite dargestellt werden. HTML-Tags etc. sollen alle rausgefiltert werden (klappt soweit auch) und anschließend soll eben der reine Text ausgegeben werden. Allerdings werden aktuell zum Teil 10 und mehr Zeilenumbrüche nacheinander ausgegeben. Ziel soll jedoch sein, höchstens einen einzigen Zeilenumbruch zwischen zwei Absätzen zu haben.

Hat jemand einen Tipp für mich, wieso das mit oben angegebenem Code nicht funktioniert?
__________________
Das Genie überblickt das Chaos!

Wer Rechtschreibfehler findet, darf sie behalten!
Mit Zitat antworten
  #6 (permalink)  
Alt 01-10-2011, 14:56
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Funktioniert prima:
PHP-Code:
<?php
    
// Die Umbrüche sind auch noch mit Leerzeichen und Tabs dazwischen.
    
$code = <<<'EOD'
        
kdfaksdjfaödkjf kj ölkdjfaösdjfa

            adf
                      
                         
                             
                             
    foo
EOD
;
    
$code preg_replace('/(?:[ \t]*(?:\n|\r\n?)){2,}/'"\n"$code);
    echo 
$code;
?>
Edit: Wenn du zufällig meinst, dass du eine leere Zeile zwischen zwei Absätzen haben willst, musst du mit "\n\n" ersetzen, denn eine leere Zeile sind zwei Zeilenumbrüche. Präzise Formulierungen führen schneller zu einer präzisen Lösung.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!

Geändert von AmicaNoctis (01-10-2011 um 15:00 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 01-10-2011, 16:06
chefdesigner
 Registrierter Benutzer
Links : Onlinestatus : chefdesigner ist offline
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 257
chefdesigner ist zur Zeit noch ein unbeschriebenes Blatt
Standard closed

Hey Amica,

okay, du hattest Recht. Sorry.
Ich hatte zuvor ein strip_tags eingebaut, das dann einiges rausgefiltert hat und dadurch das Ergebnis verfälschte.

Funktioniert wunderbar.

Vielen Dank nochmal!
__________________
Das Genie überblickt das Chaos!

Wer Rechtschreibfehler findet, darf sie behalten!
Mit Zitat antworten
Antwort

Lesezeichen


LinkBacks (?)
LinkBack to this Thread: https://www.php-resource.de/forum/php-developer-forum/102212-mehrere-zeilenumbrueche-durch-einen-zeilenumbruch-ersetzen.html
Erstellt von For Type Datum
Unerlaubte Zeilenumbrüche-GMX-Web-Suche This thread Refback 15-05-2012 23:30

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mehrere Zeilenumbrüche verbieten Deniz1982 PHP Developer Forum 1 24-11-2008 23:42
Reguläre Ausdrücke - mehrere Leerzeichen durch eines ersetzen janein PHP Developer Forum 7 30-11-2007 16:38
Zeilenumbruch durch Zeichen ersetzen HotSpot PHP Developer Forum 3 06-02-2006 18:27
images[i] durch einen namen ersetzen??? davidn HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 0 28-05-2003 17:06
mehrere Leerzeichen im String durch ein Leerzeichen ersetzen Uri PHP Developer Forum 2 28-09-2001 15:43

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Formmailer v1.6.1 Bootstrap 4

Formmailer v1.6.1 Bootstrap wurde extra für Bootstrap entwickelt. Mit Bootstrap kann man schnell und einfach kleine oder große Projekte entwickeln, die auf Geräten in allen erdenklichen Formen funktionieren.

18.12.2018 arne-home | Kategorie: PHP/ Formular
HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:51 Uhr.