Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP]tiny_mce + utf8 + str_replace
Forum PHP.pl > Forum > Przedszkole
piotrek24
Tak jak w temacie używam edytora tiny_mce i kodowania utf8. Gdy dodam do bazy tekst ze spacjami na początku np:

" jakiś tekst"

i potem wykonam na nim funkcję np.:

  1. str_replace(' ', '_', " jakiś tekst")


to otrzymuje wynik w rodzaju: "_ _ _ _ _ _jakiś tekst"

I moje pytanie jest takie: czym są te "białe znaki" pomiędzy kreseczkami i jak się do nich dobrać? preg_replace i użycie wzorca białego znaku \s też nie działa. Z tego co wiem jest to chyba znak   tylko że str_replace(' ', '_', " jakiś tekst") też nie pomaga...

Proszę o pomoc

AlexDeLarge
trim

zdrówka życzę
piotrek24
o nie nie, trim obcina białe znaki a to to nie jest tak do końca białym znakiem i na tym polega mój problem smile.gif

gdyby działalo trim() do działało by i str_replace(' ','',tekst)


PS. to znaczy gdy w tiny_mce ustawie opcje "entity_encoding : named" to zamiast tych "spacji" pojawia się  nbsp; ale jak dam entity_encoding : "raw" to pojawia się po prostu "spacje" które spacją jak się okazuje nie są i nie moge dojść do tego jaki to znak.
AlexDeLarge
OK, załapałem.
A jak spróbujesz w TinyMCE.init() entity_encoding: "numeric", lub "named" to co dostajesz w stringu przekazywanym potem do preg_replace()?
piotrek24
no gdy dam named to dostaje "& nbsp;" gdy dam numeric "& #160;" i ok te znaki da się zamienić str_replace('& nbsp;', '',$foo) ale jak dam "raw" to mam tą niby spacje i jak mam ją zamienić? czego uzyc w preg_replace?

Dobra udało mi się znaleźć odpowiedź smile.gif

Trzeba uzyć czegoś takiego:

$text = preg_replace('/\xC2\xA0/',' ',$text);

źródło:

Getting Rid of Non Breaking Spaces (&nbsp)

Temat właściwie zamknięty
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.