Avatar billede ezrider Nybegynder
18. januar 2004 - 22:33 Der er 5 kommentarer og
1 løsning

Hvordan parser man en (html)tekststreng?

Jeg har gemt en html-side i en variabel der hedder $html. Hvordan fører jeg "mostly cloudy" ud af nedenstående og over i en variabel der hedder $skycond ?

<TR VALIGN=TOP>
<TD ALIGN=RIGHT BGCOLOR="#FFFFFF"><B><FONT COLOR="#0000A0"><FONT FACE="Arial,Helvetica"> Sky conditions </FONT></FONT></B></TD>

<TD><FONT FACE="Arial,Helvetica">  mostly cloudy
</FONT></TD>
</TR>

       
<TR VALIGN=TOP>
<TD ALIGN=RIGHT BGCOLOR="#FFFFFF"><B><FONT COLOR="#0000A0"><FONT FACE="Arial,Helvetica"> Temperature </FONT></FONT></B></TD>

<TD><FONT FACE="Arial,Helvetica">  30 F (-1 C)
</FONT></TD>
</TR>
Avatar billede squashguy Nybegynder
18. januar 2004 - 22:47 #1
prøv denne

$pattern = "/<font face=.*?>(.*?)<\/font>/is";

preg_match_all($pattern, $html, $match);

$skycond = preg_replace($pattern, "$1", $match[0][1]);
Avatar billede ezrider Nybegynder
18. januar 2004 - 23:05 #2
Cool - det er lige hvad jeg skal bruge. Smid et svar og du får points ;)
Avatar billede ezrider Nybegynder
18. januar 2004 - 23:18 #3
Lige et tillægsspørgsmål til:

preg_replace($pattern, "$1", $match[0][1]);

Er det korrekt at $pattern bliver sat lig med "$1" og at "$1" er lig med ingenting?
Avatar billede squashguy Nybegynder
18. januar 2004 - 23:25 #4
$1 henviser til parentesen i pattern. Dvs $1 trækker det ud mellem <font face...> og </font>
Avatar billede squashguy Nybegynder
18. januar 2004 - 23:26 #5
match indeholder ivørigt også
$match[0][0] = Sky conditions
$match[0][2] = Temperature
Avatar billede ezrider Nybegynder
18. januar 2004 - 23:45 #6
Yeps den sidste har jeg regnet ud ;) Tak for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester