Avatar billede dennism Nybegynder
08. oktober 2006 - 16:37 Der er 15 kommentarer og
1 løsning

PHP: hent HTML-kode?

Jeg er på udgik efter en metode, som kan hente noget HTML-kode fra en given adresse (f.eks. http://www.demaweb.dk) og gemme det i en variabel så jeg f.eks. kan lave stripslashes() på det og f.eks. sende det med mail().

Skal bruge det til at nyhedsbrev, hvor det ville være smart at brugeren kunne skriv en adresse på et sted hvor HTML-koden, som skal sende ud med mail() ligger.
Avatar billede coderdk Praktikant
08. oktober 2006 - 16:53 #1
Du kan bare bruge file_get_contents("http://www.demaweb.dk") - se http://dk.php.net/file_get_contents
Avatar billede dennism Nybegynder
08. oktober 2006 - 17:09 #2
Tak.

Jeg har f.eks. denne kode:

<?PHP
$html = file_get_contents("http://www.demaweb.dk");

if(mail('dennis@demaweb.dk', 'My Subject', $html, 'from: dennis@demaweb.dk')) {
    echo "Mail sendt!";
} else {
    echo "Ikke afsendt!";
}
?>
Avatar billede dennism Nybegynder
08. oktober 2006 - 17:09 #3
Hov :)

...hvordan kan det være, at jeg modtager det HTML som tekst istedet for at det bliver "afviklet"?
Avatar billede coderdk Praktikant
08. oktober 2006 - 17:19 #4
Afviklet? Ikke forstået.
Avatar billede Mik2000 Professor
08. oktober 2006 - 20:35 #5
Er ikke med på dit script. Som det står svarer det til:

Gem indholdet af www.demaweb.dk i en variabel kaldet $html

hvis (send mail til dennis@demaweb.dk med emne My subject og indhold er det som ligger i variablen $html og fromadresse dennis@demaweb.dk) så skriver den Mail sendt og ellers skriver den ikke afsendt.

Hvad er ideen med det og hvad er spørgsmålet :)????

Mvh
Avatar billede dennism Nybegynder
09. oktober 2006 - 08:10 #6
Jeg vil gerne sende en HTML-mail. Altså, modtager skal ikke se koden, men som han vil se det i en browser :) Var det til at forstå? :)

Problemet er så, at når jeg modtager mailen er det HTML-koden der står i den og ikke det man ville se, hvis man åbnede det som et HTML-dokument.
Avatar billede coderdk Praktikant
09. oktober 2006 - 09:10 #7
<?php

$html = file_get_contents("http://www.demaweb.dk");
$headers = "From: dennis@demaweb.dk\n";
$headers .= "Mime-Version: 1.0\n";
$headers .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";

if(mail('dennis@demaweb.dk', 'My Subject', $html, $headers)) {
    echo "Mail sendt!";
} else {
    echo "Ikke afsendt!";
}
?>
Avatar billede fangel Nybegynder
09. oktober 2006 - 12:34 #8
Shush coderdk.. Headers skal slutte med \r\n, ikke \n.. ;)

-fangel
Avatar billede coderdk Praktikant
09. oktober 2006 - 12:43 #9
100% enig fangel, men jeg tror at php piller - jeg har før været ude for at det ikke virkede med \r\n men at det virkede med \n (selvom RFC'en siger INGEN "nøgne" newlines) - Da jeg testede gjorde jeg det med qmail (som er berygtet for at nægte at modtage \n-mails) - Jeg har dog også testet hvor det KUN virkede med \r\n - så jeg er pænt forvirret :)
Avatar billede coderdk Praktikant
09. oktober 2006 - 12:44 #10
Så jeg burde have lavet den med \r\n og sagt at hvis det ikke virkede skulle det være med \n :)
Avatar billede dennism Nybegynder
09. oktober 2006 - 16:37 #11
Kan man lave noget lignende i JavaScript? Altså få JavaScript til at hente noget HTML fra en URL?
Avatar billede coderdk Praktikant
09. oktober 2006 - 17:36 #12
Yep, med AJAX, google det eller kig her: http://www.w3schools.com/ajax/default.asp :)
Avatar billede fangel Nybegynder
09. oktober 2006 - 19:22 #13
coderdk: Det er vidst en sandhed med modifikationer.. normalt ajax-brug (vha xmlhttprequest) kan kun hente fra samme domæne som requestet kommer efter. En iframe og lidt js-brug kan hente fra alle domæner.. funky, i'd say..

-fangel
Avatar billede coderdk Praktikant
09. oktober 2006 - 19:37 #14
fangel, True, that :-)
Avatar billede dennism Nybegynder
16. oktober 2006 - 12:49 #15
Må jeg bede om nogle svar her?
Avatar billede coderdk Praktikant
16. oktober 2006 - 12:59 #16
for sho!
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