/ 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
preg_match
Fra : Morten Lehrmann


Dato : 28-08-04 08:48

Jeg har et HTML-dokument i variablen $html og jeg vil have udtrukket alt fra

<html>
....
til og med
<body ... >
linien og lagt det ind i $head2body[0].

Jeg er kommet frem til:

if ( preg_match( "/[.\n]*<body.*$/mi", $html, $head2body ) ) {
echo $head2body[0];
....

men det giver nogle linieskift efterfulgt af <body ...>-linien, men uden:
<html>
<meta ...>
...

Hvor er det min kæde knækker? Jeg er vant til Perl - og det er svært at
overskue forskellene. I øvrigt: Kan jeg udtrække fra et HTML-dokument på en
nemmere måde (HTML-dokumentet er ikke nødvendigvis well-formed).


Server:
PHP Version 4.3.1
Apache/1.3.27
SuSE Linux 8.2


Mvh
Morten

 
 
Bertel Lund Hansen (28-08-2004)
Kommentar
Fra : Bertel Lund Hansen


Dato : 28-08-04 10:21

Morten Lehrmann skrev:

>Jeg har et HTML-dokument i variablen $html og jeg vil have udtrukket alt fra

><html>
>...
>til og med
><body ... >
>linien og lagt det ind i $head2body[0].

<?
$html="\r\n<html>\r\n<title>Test</title>\r\n\r\n<body>\r\nKroppen\r\n</body>\r\n</html>\r\n";
$bodypos=strpos($html,"<body>");
$head2body=substr($html,0,$bodypos);
?>

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Morten Lehrmann (28-08-2004)
Kommentar
Fra : Morten Lehrmann


Dato : 28-08-04 14:21

Bertel Lund Hansen wrote:
>$html="\r\n<html>\r\n<title>Test</title>\r\n\r\n
<body>\r\nKroppen\r\n</body>\r\n</html>\r\n";
> $bodypos=strpos($html,"<body>");
> $head2body=substr($html,0,$bodypos);
> ?>

Jamen, det var lige hvad jeg skulle bruge for at komme videre.
Jeg måtte udvide lidt, da de pågældende body-tags ofte er lange, fx:

<body lang=DA link=blue vlink=purple style='tab-interval:65.2pt'>

og da der er både store og små bogstaver (og stripos er
en PHP5 udvidelse!), så koden blev:

$htmls = strtolower( $html );
$bodypos = strpos( $htmls, "<body" );
$bodyendpos = strpos( $htmls, ">", $bodypos );
$head2body = substr( $html, 0, $bodyendpos+1 );

Mange tak for hjælpen.

Mvh
Morten

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste