Ich habe das:
$text = '
hello world
hello
';
Wie entferne ich
nur, wenn es sich um eine eigene Leitung handelt? Mit dem obigen Beispiel
sollte also die zweite entfernt werden. Ergebnisse sollten sein:
$text = '
hello world
hello
';
Was ich bisher versucht habe
Via str_replace()
kann ich:
$text = str_replace(' ', '', $text);
Dadurch werden jedoch alle Instanzen von entfernt
, nicht nur, wenn es sich um eine eigene Zeile handelt.
php
str-replace
Henrik Petterson
quelle
quelle
$text = str_replace('\n'.' '.'\n', '', $text);
, aber nicht funktioniert. Siehe .str_replace()
anstatt meine Erfahrung zu beurteilen ? =)Antworten:
Ich habe diesen Ansatz bereits ausprobiert und erhalte die gewünschte Ausgabe
Meine Ausgabe auf meinem lokalen ist folgende:
quelle
Mein Ansatz wäre:
Daraus resultiert folgender Code:
quelle
durch leeren Text zu ersetzen , ohne die gesamte Zeile zu entfernen: /. Denken Sie auch daran, dass nicht ich Ihre Antwort abgelehnt habe :) Mein Kommentar war nur eine freundliche Nachricht :)Vielleicht so etwas:
http://sandbox.onlinephpfunctions.com/code/f4192b95e0e41833b09598b6ec1258dca93c7f06
(das funktioniert auf PHP5 , aber irgendwie funktioniert es auf einigen Versionen von PHP7 nicht )
Alternative wäre:
quelle
Wenn Sie Ihre Zeilenendezeichen kennen und auf Ihre
immer eine neue Zeile folgt:Ausgabe (einige anfängliche Leerzeichen, die bei der Formatierung hier verloren gegangen sind):
Vorsichtsmaßnahme: Jede Zeile, die mit einem
vorangestellten anderen Inhalt endet, ist ebenfalls betroffen, sodass dies möglicherweise nicht Ihren Anforderungen entspricht.quelle
str_replace()
!
? Zum Beispiel:" \n"
Sie können hierfür einen regulären Ausdruck verwenden, indem Sie die Modifikatoren DOTALL und MULTILINE zusammen mit den Aussagen zum Umsehen verwenden:
(?sm)
: DOTALL (s) MULTILINE (m)(?<=\n)
: vor der Newline (nicht Teil des Spiels)\s* \s*
: single & nbsp; mit optionalem umgebendem Leerzeichen(?=\n)
: nachgestellte Newline (nicht Teil des Spiels)quelle
Sie können in Zeilen aufteilen und dann
die leere Zeichenfolge in Zeilen ersetzen , die nur ein
und ein Leerzeichen enthalten.Wir behalten die ursprünglichen Zeilenenden bei, indem wir sie erfassen.
Ausgabe:
quelle