01.12.2021 06:00
1
Dobrý den, prosím o radu jak z textu odstranit netisknutelný níže uvedený znak (potřebuji ho nahradit mezerou). V php skriptu používám UTF-8.

Děkuji
01.12.2021 06:12
2
A neslo by to proste jednoduse nahradit pres str_replace?

Kód:
str_replace('°', ' ', $string);
Nebo to neni vzdy jen znak °, ale jsou to treba i jine?
01.12.2021 08:12
3
Případně další postup: vzít pouze čísla ze stringu a pak to vydělit 100. Otázkou je, jak to má být univerzální a zda se jedná jen o tento případ.
01.12.2021 08:57
4
tohle vypadá na pevnou mezeru (nbsp), pokud ti to nepůjde přes ten skopírovaný znak, tak můžeš použít hexadecimální zápis takhle:

Kód:
str_replace("\xc2\xa0", ' ', $string);
To ale platí pouze pro UTF-8, v ascii má tenhle znak kód \xa0, tj. bez té první části.

Chceš-li opravdu odstranit všechny netisknutelné znaky kromě mezery, můžeš po nahrazení pevné mezery na normální (viz výše) odstranit i všechny ostatní takhle:

Kód:
preg_replace('/[^[:print:]]/u', '',$string)
Případně lze vyjmenovat přímo konkrétní rozsahy znaků, které tam nechceš mít (tohle je srovnatelný s předchozím příkladem):

Kód:
preg_replace('/[\x00-\x1F\x7F-\xA0\xAD]/u', '', $string);

Pokud by ani jedno nefungovalo, pošli sem ukázku textu přechroustanou přes funkci base64_encode($string)
05.12.2021 16:00
5
Funkce: 
strip_tags($hodnota);  odebere HTML tagy z čísla (například: <span>423</span> se zobrazí jen číslo bez span);

str_replace("°", "", "$hodnota"); jak bylo uvedeno výše - nahradí libovolný symbol/text obsažené v $hodnotě 

preg_replace('/\s+/', '', $hodnota); odebere zbytečné mezery v čísli

round($hodnota);  zaokrouhlí desetinné číslo na kulaté číslo