Gå til innhold

[LØST] Tegnkonvertering til asciinummer


Anbefalte innlegg

Skrevet (endret)

htmlentities() vil gjøre om f.x. 'å' til '& aring ;'.

Finnes det noen tilsvarende funksjon som gjør om 'å' til '& # 229 ;' ?

Endret av petterg
Videoannonse
Annonse
Skrevet

uff da, der ble forumet til hw.no litt satt ut av tegnsettet :)

 

Har skrevet posten på nytt nå, og puttet inn noen mellomrom for å få den til å vise spørsmålet riktig

Skrevet (endret)

hva blir greieste måten å få den til å gjøre sånt med et helt html dokument, og bare gjøre det med tegn det er nødvendig å gjøre det på?

 

Edit: med html dokument mente jeg kun body, som jeg vet er fritt for html tagger

Endret av petterg
Skrevet

Det kommer ann på. Er det snakk om å gjøre det kun 1 gang på et html dokument, så kan man jo ta en søk&erstatt der man erstatter de tegnene man ønsker..

 

Hvis det er snakk om flere karakterer enn de norske bokstavene (æøå) eller at det skal skje flere en 1 gang på det samme html dokument, så ville jeg nok ha lagd en funksjon som bytter ut tegnene..

 

El Nino

Skrevet

html body kommer fra database lookup. Må altså gjøres 'on-the-fly'.

Trodde jeg kunne bruke

nl2br(htmlentities($body))

 

Men det viste seg å være problemer med å ha f.x. & aring ; i wml. Må bruke ascii nummer på slike.

Skrevet
$string = nl2br(htmlentities($body));
$string = str_replace("& aring","& # 229",$string);
print($string);

 

Er en måte..

Det blir sinsykt mange søk for å gå igjennom hele tegntabellen da. Det er vel et sted mellom 60 og 100 tegn som blir til &aring syntax etter htmlentities.

 

Kanskje en form for preg_replace med erstatning hentet fra en tabell kan lette det litt...

Skrevet

idet man vet at en streng i seg selv er binære data, kan man enkelt bruke unpack for å få ut bokstavkoden for en streng med flere tegn, slik:

 

$content ="Hei på deg";
echo join("",array_map(create_function('$a','return sprintf("%03d;",$a);'),unpack("C*", $content)));

Skrevet

Den koden skjønte jeg ikke mye av...

Den konverterer i hvertfall en hel streng til ascii verdier, uansett tegn.

Fins det ingen måte å gjøre det samme på, men bare de tegnene som htmlentities ville konvertert, og latt alle andre tegn være som de er?

Skrevet

HA!

en løsning som tilsynelatende virker:

 

$wmltab = get_html_translation_table(HTML_ENTITIES);
while(list($key, $val) = each($wmltab)) {
       $wmltab[$key] = "".ord($key).";";
}
$tekst = "En <tekst> med \"(anførsel) og æøå";
$wmltekst = strtr($tekst, $wmltab);

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...