Mailinglisten-Archive |
Hi,
Peter Holm:
> Also in mysql wirst Du dafür wohl keine Funktion finden, aber mit php
> ist das machbar. Du musst Dir die Seite holen und in eine Variable
> legen, dann ziehst Du Dir alles innerhalb <title></title> und
> <body></body> heraus, wobei dies schon eine nicht mehr ganz so triviale
> Angelegenheit darstellt. Vielleicht findest mehr Hilfe hierzu in der
> php-mailingliste.
>
... und wenn jemand einen kranken Text in der Seite drin hat (zum Beispiel
eine Beschreibung der HTML-Seitentags, nett in <PRE> eingebettet ;-)
dann wirst du um einen richtigen Parser sowieso nicht rumkommen.
Also mach es gleich vernünftig, d.h. mit perl. Ich hab hier diesen
Codeschnipsel aus unserem Ticketsystem(*), um den Inhalt einer Seite in
eine andere einzubetten:
# $msg ist eine text/html-Mail; siehe MIME::Parser
use HTML::TreeBuilder;
my $pa = new HTML::TreeBuilder;
my $body = $msg->bodyhandle->open("r");
$pa->parse_file($body) if ref $body;
my $pb;
foreach my $pc($pa->content ? _(at)_{$pa->content} : ()) {
if(ref $pc and $pc->{_tag} eq "body") {
$pb = $pc;
last;
}
}
if($pb) {
$pb = div($pb->as_HTML)); ## <=- das ist der Inhalt des <BODY>
} else {
$pb = pre(esc("No content found...\n"));
}
$pa->delete; ## notwendig wegen zirkulärer Referenzen
return $pb;
(*) wegen der Kunden, die darauf bestehen, HTML-Mails zu schicken. *Seufz*.
--
Matthias Urlichs | noris network GmbH | smurf_(at)_noris.de | ICQ: 20193661
The quote was selected randomly. Really. | http://www.noris.de/~smurf/
--
Wait for that wisest of all counselors, Time.
--Pericles
---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive