2016-03-30 8 views
0

Ich versuche, alle weißen Flecken in PHP von HTML-Inhalt zu entfernen, wenn es als eine länger ist, je Beispiel eine Kette wie folgt aus:Wie alle weißen Flächen entfernen, wenn mehr als ein

{{IMG}}          {{IMG}}          {{IMG}}          {{IMG}}          {{IMG}} 

Aber shouldn‘ t beeinflussen einen Satz wie: Über uns.

Sollte es mit einem Regex getan werden? Irgendeine Idee?

PS: Die Variable wird bereits mit trim() verwendet; das entfernt weiße Leerzeichen am Ende und am Anfang, aber nicht zwischen Zeichen ...

Vielen Dank für Ihre Hilfe.

+1

Verwenden Sie 'trim (string);' Funktion –

+1

Sie meinen, wie mit einer trim() Funktion? –

+1

Wie gesagt ** Matt Magallo ** wenn der Inhalt in einer Variablen ist, verwenden Sie 'trim();' –

Antwort

2

$str = preg_replace('/\s+/', ' ', $originalString); echo $str;

Dies wird alle Leerzeichen mit einem Leerzeichen ersetzen.

+0

Das Problem wurde nicht gelöst, Sie haben jedoch einen Weg gefunden, es mit Ihrem Code arbeiten zu lassen. Danke vielmals! – scrybs

+0

Kühl. Können Sie teilen, was Sie gefunden haben? Es wäre hilfreich für jemanden in der Zukunft. –

+1

Wenn Sie Ihren Code verwenden, wird Folgendes ausgegeben: {{IMG}} {{IMG}} {{IMG}} {{IMG}} {{IMG}} Wenn Sie in meinem Beitrag auf meine Variable verweisen, verwende ich einen anderen Regex: preg_replace ("/}} {{", "}} {{", $ str); Ich kann also sagen, ob der Satz nur Variablen ist oder nicht. Vielen Dank – scrybs

0

Man könnte so etwas tun:

Beispiel 1: Entfernen Sie die Leerzeichen, wenn mehr als 1

<?php 
# Test variable 
$string = "HELLO  I  HAVE WHITE SPACEEE!!1"; 

# Count all whitespaces 
# Contains more than 1 whitespace 
if(substr_count($string, ' ') > 1) { 
    # Example 1: Remove the whitespaces 

    $string = preg_replace('/\s+/', '', $string); 
} 
# Ouput: HELLOIHAVEWHITESPACEEE!!1 
echo $string; 
?> 

Beispiel 2: Schneiden Sie die Whitespaces

<?php 
# Test variable 
$string = "HELLO  I  HAVE WHITE SPACEEE!!1"; 

# Count all whitespaces 
# Contains more than 1 whitespace 
if(substr_count($string, ' ') > 1) { 
    # Example 2: Remove the whitespaces 

    $string = trim($string); 
} 
# Ouput: HELLO I HAVE WHITE SPACEEE!!1 
echo $string; 
?> 

Beispiel 3: Ersetzen Sie die Leerräume

<?php 
# Test variable 
$string = "HELLO  I  HAVE WHITE SPACEEE!!1"; 

# Count all whitespaces 
# Contains more than 1 whitespace 
if(substr_count($string, ' ') > 1) { 
    # Example 1: Replace the whitespaces 

    $string = preg_replace('/\s+/', ' ', $string); 
} 
# Ouput: HELLO I HAVE WHITE SPACEEE!!1 
echo $string; 
?> 

Beispiel:

<?php 
# Test variable 
$string = "HELLO  I  HAVE  WHITE  SPACEEE!!1 And I like bananas."; 

# Count all whitespaces 
# Contains more than 1 whitespace 
if(substr_count($string, ' ') > 1) { 
    # Example 1: Replace the whitespaces 

    $string = preg_replace('/\s\s+/', '', $string); 
} 
# Ouput: HELLOIHAVEWHITESPACEEE!!1 And I like bananas. 
echo $string; 
?> 
+0

Dies könnte funktionieren, aber das Problem ist, dass ein Satz wie "Ich esse Bananen" enthält 2 Leerzeichen und sie werden entfernt, aber sie sollten nicht ... – scrybs

+0

* facepalm * haben Sie es versucht @GuilVII –

+0

@MattMagallo Facepalm ? – scrybs

0

Dies ist eine ziemlich bizarre Anfrage, wenn Sie mich fragen.

könnten Sie wahrscheinlich so etwas wie (von der akzeptierten Antwort falls jemand angenommen sonst kann es nützlich finden):

$str = preg_replace('/\s\s+/', '', $originalString); 

Dies entfernt alle Leerzeichen sofern mindestens zwei von ihnen in einer Reihe ist.

Verwandte Themen