2012-03-26 18 views
36

Jak usunąć   (które są ukryte) i pomieszczeń w poniższym tekście, alezastąpić   znaki, które są ukryte w tekście

  • znaki hold UNICODE
  • trzymać <br> tag

i przetestowane:

  • Użyłem trim($string) => NIE ROBIONE
  • użyłem str_replace('&nbsp;', '', $string) => nieprzepracowane
  • użyłem niektóre regex => nieprzepracowane

      <br>تاريخ ورود: یکشنبه ۲۳ بهمن ماه ۱۳۹۰ 
    

UPDATE: Image of hidden   Dzięki

ROZWIĄZANIE KOŃCOWA:

  $string = htmlentities($string, null, 'utf-8'); 
      $string = str_replace("&nbsp;", "", $string); 
+0

Użyj \ s w regex, aby dopasować przestrzeń –

+0

zrobiłem to, ale tylko przestrzenie między słowami zmieniło.   istnieją jeszcze – Behnam

+0

Przepraszamy, możesz umieścić html jako tekst, więc mogę go skopiować –

Odpowiedz

25

nie testowano, ale jeśli używasz coś takiego:

$string = preg_replace("/\s/",'',$string); 

To powinno usunąć wszystkie spacje.

UPDATE

Aby usunąć wszystkie spacje i &nbsp; referencji, należy użyć coś takiego:

$string = preg_replace("/\s|&nbsp;/",'',$string); 

UPDATE 2

Spróbuj tego:

$string = html_entity_decode($string); 

$string = preg_replace("/\s/",'',$string); 

echo $string; 

Zapomniałem powiedzieć, przestawienia podmioty html więc dodać to po wymianie:

htmlentities($string); 
+1

Podwójnie przetestowałem to, ale nie działało – Behnam

+0

twoja aktualizacja usuwa ponownie spacje, ale nie nbsp; – Behnam

+0

Dobra, zobaczę czy mogę przetestować to sam –

0

The se linia cond jest w porządku, ale usuwasz tylko  . Jeśli chcesz także usunąć spacje, dodać:

str_replace(' ', '', $string); 
+0

nie działa. Mam problemy z   hiddens w tekście – Behnam

35

Rozwiązanie to będzie działać, testowałem go:

$string = htmlentities($content, null, 'utf-8'); 
$content = str_replace("&nbsp;", "", $string); 
$content = html_entity_decode($content); 
+2

Jedyne rozwiązanie, które zadziałało dla mnie! – RPDeshaies

+1

O. My. Bóg. Wreszcie rozwiązanie, po godzinach poszukiwań !! Dziękuję bardzo. Miałem problemy z   uniemożliwiającymi ładowanie się tekstu z tinymce, więc zastąpiłem je rzeczywistą przestrzenią: 'funkcja b09_remove_forced_spaces ($ content) { $ string = htmlentities ($ content, null, 'utf-8') ; $ content = str_replace (" ", "", $ string); $ content = html_entity_decode ($ content); return $ content; } add_filter ("the_content", "b09_remove_forced_spaces", 9); ' (źle, że stackoverflow nie pozwala na bloki kodu w komentarzach – rassoh

0

Ten pracował dla mnie.

preg_replace("/&nbsp;/",'',$string)

0

Będzie to również działa:

function clean($str) 
{ 
    $str = str_replace("&nbsp;", " ", $str); 
    $str = preg_replace('/\s+/', ' ',$str); 
    $str = trim($str); 
    return $str; 
} 
1

Wszystkie rozwiązania wyżej rodzaju pracy, aż ktoś zaczyna pracować z języka niemieckiego, gdzie istnieją takie litery:

ä &auml; 

i inne podobne. używam następujący kod:

$string = preg_replace ("!\s++!u", ' ', $string); 

Więcej szczegółów tutaj: PCRE(3) Library Functions Manual

Powiązane problemy