/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Regex og æøå
Fra : Jonas Delfs


Dato : 06-12-06 19:39

Hej gruppe

Jeg sidder og skal fiske noget tekst ud af noget HTML. Jeg bruger noget a la
preg_match_all('/<h2>([^<]+)<\/h2>/', $string, $matches), men danske tegn
(æøå) optræder som mærkelige tegn (ø fx som Ã~) i mit $matches array
bagefter.
setlocale() (som ellers virker fint) ændrer intet ved denne funktionalitet,
så hvad gør jeg når jeg gerne vil lave en [^<]+ match? (vil meget gerne være
fri for at lave et whitelist-match da jeg ingen kontrol har over
HTML-kilden.

På forhånd tak!

Mvh. Jonas



 
 
Peter Brodersen (07-12-2006)
Kommentar
Fra : Peter Brodersen


Dato : 07-12-06 05:44

On Wed, 6 Dec 2006 19:38:42 +0100, "Jonas Delfs"
<jonas@NOSPAMdelfs.dk> wrote:

>Jeg sidder og skal fiske noget tekst ud af noget HTML. Jeg bruger noget a la
>preg_match_all('/<h2>([^<]+)<\/h2>/', $string, $matches), men danske tegn
>(æøå) optræder som mærkelige tegn (ø fx som Ã~) i mit $matches array
>bagefter.

Den tekst, du henter fra, er sandsynligvis i UTF-8-format i første
omgang. Det har næppe noget med preg-funktionen at gøre.

Prøv bare at printe den hentede tekst ud i første omgang, og se om æøå
ikke også er anderledes dér.

Du kan eventuelt konvertere $string ved hjælp af funktionen
utf8_decode()

--
- Peter Brodersen
Kendt fra Internet

Jonas Delfs (07-12-2006)
Kommentar
Fra : Jonas Delfs


Dato : 07-12-06 18:02

"Peter Brodersen" <usenet2006@ter.dk> wrote in message
news:el866t$diq$1@news.klen.dk...
> On Wed, 6 Dec 2006 19:38:42 +0100, "Jonas Delfs"
> <jonas@NOSPAMdelfs.dk> wrote:
>
>>Jeg sidder og skal fiske noget tekst ud af noget HTML. Jeg bruger noget a
>>la
>>preg_match_all('/<h2>([^<]+)<\/h2>/', $string, $matches), men danske tegn
>>(æøå) optræder som mærkelige tegn (ø fx som Ã~) i mit $matches array
>>bagefter.
>
> Den tekst, du henter fra, er sandsynligvis i UTF-8-format i første
> omgang. Det har næppe noget med preg-funktionen at gøre.

$string kommer fra file_get_contents('http://domain.com/file.html');

> Prøv bare at printe den hentede tekst ud i første omgang, og se om æøå
> ikke også er anderledes dér.

echo $string; virker fint, men den indeholder måske også informationer om at
det skal vises i UTF-8-format, ud fra ovenstående?

> Du kan eventuelt konvertere $string ved hjælp af funktionen
> utf8_decode()

Med utf8_decode() vises æøå som et spørgsmålstegn?

Mvh. Jonas



Christian Joergensen (07-12-2006)
Kommentar
Fra : Christian Joergensen


Dato : 07-12-06 18:35

"Jonas Delfs" <jonas@NOSPAMdelfs.dk> writes:

>> Du kan eventuelt konvertere $string ved hjælp af funktionen
>> utf8_decode()
>
> Med utf8_decode() vises æøå som et spørgsmålstegn?

Mon det er indkodningen den er gal med der hvor du skriver det ud?

--
Christian Joergensen | Linux, programming or web consultancy
http://www.razor.dk | Visit us at: http://www.gmta.info

Jonas Delfs (07-12-2006)
Kommentar
Fra : Jonas Delfs


Dato : 07-12-06 21:06

"Christian Joergensen" <mail@razor.dk> wrote in message
news:87psavlick.fsf@jamie.razor.dk...
> "Jonas Delfs" <jonas@NOSPAMdelfs.dk> writes:
>
>>> Du kan eventuelt konvertere $string ved hjælp af funktionen
>>> utf8_decode()
>>
>> Med utf8_decode() vises æøå som et spørgsmålstegn?
>
> Mon det er indkodningen den er gal med der hvor du skriver det ud?

Det ved jeg sørme ikke. Jeg skal egentlig bare have det gemt i en database i
første omgang, men under test skriver jeg det bare direkte til skærmen.
Jeg er lidt blank mht. at debugge denne her - nogen bud?

Mvh. Jonas



Jonas Delfs (07-12-2006)
Kommentar
Fra : Jonas Delfs


Dato : 07-12-06 21:37

"Jonas Delfs" <jonas@NOSPAMdelfs.dk> wrote in message
news:4578743f$0$49208$14726298@news.sunsite.dk...
> "Christian Joergensen" <mail@razor.dk> wrote in message
> news:87psavlick.fsf@jamie.razor.dk...
>> "Jonas Delfs" <jonas@NOSPAMdelfs.dk> writes:
>>
>>>> Du kan eventuelt konvertere $string ved hjælp af funktionen
>>>> utf8_decode()
>>>
>>> Med utf8_decode() vises æøå som et spørgsmålstegn?
>>
>> Mon det er indkodningen den er gal med der hvor du skriver det ud?
>
> Det ved jeg sørme ikke.

Nå, der var vist lidt rod i tegnsættene. Det viste sig at kilden var UTF-8,
og efter utf8_decode() omkodes specialtegnene korrekt - af en eller anden
grund forsøgtes de stadig vist som UTF-8, hvorfor de blev vist som
spørgsmålstegn i FF.

Tak for svar til jer begge! :)

Mvh. Jonas



Peter Brodersen (08-12-2006)
Kommentar
Fra : Peter Brodersen


Dato : 08-12-06 00:13

On Thu, 7 Dec 2006 21:36:39 +0100, "Jonas Delfs"
<jonas@NOSPAMdelfs.dk> wrote:

>Nå, der var vist lidt rod i tegnsættene. Det viste sig at kilden var UTF-8,
>og efter utf8_decode() omkodes specialtegnene korrekt - af en eller anden
>grund forsøgtes de stadig vist som UTF-8, hvorfor de blev vist som
>spørgsmålstegn i FF.

Sandsynligvis inkluderede den side, du outputtede, information i
meta-tags om charsettet. Men de meta-tags skal du så selvfølgelig blot
lade være med at outputte.

--
- Peter Brodersen
Kendt fra Internet

Jonas Delfs (08-12-2006)
Kommentar
Fra : Jonas Delfs


Dato : 08-12-06 00:20

"Peter Brodersen" <usenet2006@ter.dk> wrote in message
news:ela75j$g7t$1@news.klen.dk...
> On Thu, 7 Dec 2006 21:36:39 +0100, "Jonas Delfs"
> <jonas@NOSPAMdelfs.dk> wrote:
>
>>Nå, der var vist lidt rod i tegnsættene. Det viste sig at kilden var
>>UTF-8,
>>og efter utf8_decode() omkodes specialtegnene korrekt - af en eller anden
>>grund forsøgtes de stadig vist som UTF-8, hvorfor de blev vist som
>>spørgsmålstegn i FF.
>
> Sandsynligvis inkluderede den side, du outputtede, information i
> meta-tags om charsettet.

Jeps.

> Men de meta-tags skal du så selvfølgelig blot
> lade være med at outputte.

Gjorde jeg heller ikke - lavede bare en print_r($matches);

Mvh. Jonas



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste