Byta teckenkodning i PHP [LÖST]

Här diskuteras programmering och utveckling
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Byta teckenkodning i PHP [LÖST]

Inlägg av ubot »

Jag behöver byta teckenkodning på koden till webbsidorna som jag hämtar med file_get_contents. PHP skriptet kastar ut webbsidornas kod med html-tecken iställer för svenska tecken (å, ä, ö). Hur gör jag för att PHP skriptet ska kasta ut svenska tecken istället för deras motsvarighet som html-tecken?

Kod: Markera allt

function getTextBetweenTags($tag, $html)
{
    $pattern = "/(<$tag?.*>(.*?)<\/$tag>|(.*?)<\/$tag>|<$tag?.*>(.*?))/";
    preg_match_all($pattern, $html, $matches);
    return $matches[1];   
}

$html = file_get_contents($_ENV['var']);

$content = getTextBetweenTags('title', $html);

foreach( $content as $item )
{
    echo $item;
}
Senast redigerad av 1 ubot, redigerad totalt 28 gånger.
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Byta teckenkodning i PHP

Inlägg av ubot »

Tack! Nu fungerar det!
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Byta teckenkodning i PHP [LÖST]

Inlägg av ubot »

Jösses. Det verkar som om det fungerar på vissa sidor att göra om teckenkodningen, men då sutar istället andra sidor att fungera. Suck. På vissa sidor fungerar svenska tecken bra i utf-8, medan andra sidor kräver att Terminalen visar i latin-1 eller vad det heter. Hur löser man det här problemet? Jag har alltså ett php-skript som visar svenska tecken rätt ibland, men inte alltid. Jag antar att det har att göra med teckenkodningen på sajten. Eftersom den verkar variera (eller något) så måste jag liksom anpassa konverteringen av teckenkodningen. Kör jag med utf-8 så visar Terminalen vissa resultat på rätt sätt, men inte andra och tvärtom med latin-1. Hur jag än vänder mig har jag rumpan bak, liksom.
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Byta teckenkodning i PHP [LÖST]

Inlägg av ubot »

Ok, med file -i filename så ser jag ut att få encoding typen på texten. Nu är det så att jag har texter som kommer från olika sidor på Nätet och därför behöver jag anpassa Terminalens visning av texten beroende på vilken encoding källan har. Hur gör jag så att Terminalen automatiskt väljer rätt encoding? Alltså, om file -i säger att det är en viss encoding, hur får jag Terminalen att byta över till samma encoding innan texten visas i Terminalen. Och går det att lita på att file -i visar rätt encoding i 99% av alla fall?
Skriv svar

Återgå till "Programmering och webbdesign"