Autor Zpráva
brdik
Profil
ahoj, zpracovávám nějaký text (HTML kod) pomocí php a vyskytuje se tam občas znak "& # 160;". Nemohu se ho zbavit a ukládá se mi do databáze jako prázdný řádek s mezerou. Snažil jsem se použít
$text=trim($text,"\xA0");, str_replace, preg_replace, nic nepomáhá. Poradí někdo, jak se toho znaku zbavit?
Kaminko
Profil
Ak sa nemýlim, tak by sa to malo zapísať nejak takto /" . Ak sa mýlim, tak sa ospravedlňujem a opravte ma.
brdik
Profil
našel jsem řešení
$myHTML = " abc";
$converted = strtr($myHTML, array_flip(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES)));

// this WILL NOT work as expected
// $converted will still appear as " abc" in view source
// (but not in od -x)
$converted = trim($converted);

//   are translated to 0xA0, so use:
$converted = trim($converted, "\xA0"); // <- THIS DOES NOT WORK

// EDITED>>
// UTF encodes it as chr(0xC2).chr(0xA0)
$converted = trim($converted,chr(0xC2).chr(0xA0)); // should work 
honzaik
Profil
myslim že to je kvůli windowsum :D na unixu by ti to mělo fungovat myslim. jen takovej dodatek
nethor
Profil
Právě jsem řešil stejný problém stejný problém.
Funguje:
    
mb_internal_encoding("UTF-8"); 
mb_regex_encoding("UTF-8");
$text = Trim(preg_replace("~[\s|\xC2|\xA0]+~"," ",$text));

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: