Avatar billede htx98i17 Professor
12. august 2017 - 14:14 Der er 8 kommentarer og
1 løsning

Problem med fgets()

Jeg har følgende kode:

<?php
            $handle = @fopen("http://www.domain.dk/stylesheet.css", "r");
            if ($handle) {
                while (($buffer = fgets($handle, 4096)) !== false) {
                    echo $buffer;
                }
                if (!feof($handle)) {
                    echo "Error: unexpected fgets() fail\n";
                }
                fclose($handle);
            }
            ?>


den udskriver som I kan se et stylesheet. Men af en eller anden grund som jeg ikke kender til, så udskriver den ikke det første punktum i hver linje.

I hvert fald udskriver den alle styles:

stylenavn {
noget cc
}

når den burde udskrive:

.stylenavn {
noget cc
}


hvad skyldes det?
Avatar billede arne_v Ekspert
12. august 2017 - 14:28 #1
Hvorfor bruger du ikke file_get_contents ?
Avatar billede htx98i17 Professor
12. august 2017 - 14:30 #2
det ved jeg ikke? ;-)
Avatar billede htx98i17 Professor
12. august 2017 - 14:38 #3
Det ser ud til at den gør det samme,
så problemet er nok et andet sted.

stylesheeten bliver brugt i en email.
og når jeg modtager mailen ser det ikke ud som det skal.
derfor gemmer jeg mailen som uformateret kildetekst og åbner den fil i texteditor. Og i den texteditor kan jeg se at der ingen punktummer er.
Avatar billede htx98i17 Professor
12. august 2017 - 14:54 #4
Det var faktisk begge metoder som ikke kunne lide et punktum som første tegn i hver linje.

Jeg løste problemet ved at lave et indryk med tabulator på hver linje og så blev punktummerne også udskrevet.
Avatar billede erikjacobsen Ekspert
12. august 2017 - 16:06 #5
SMTP protokollen har sin egen mening om punktummer først på en linie. Læs fx https://stackoverflow.com/questions/15224224/smtp-dot-stuffing-when-and-where-to-do-it
Avatar billede arne_v Ekspert
12. august 2017 - 16:27 #6
Ja. Men hvor kommer SMTP ind i billedet?
Avatar billede erikjacobsen Ekspert
12. august 2017 - 16:32 #7
#6;  "stylesheeten bliver brugt i en email." #3  ;)    Og vist det eneste sted sådan et punktum giver lidt bøvl.
Avatar billede erikjacobsen Ekspert
12. august 2017 - 16:35 #8
Og så skal vi måske tilføje at det i længden bliver håbløst slev at holde styr på diverse protokollers finurligheder. I spørgerens tilfælde kan man overveje at bruge phpmailer - eller tilsvarende.
Avatar billede htx98i17 Professor
12. august 2017 - 17:52 #9
#6 jeg beklager jeg ikke nævnte noget om det i spørgsmålet. Jeg havde en formodning  om at det var php-funktionen som gjorde noget uventet når en linje startede med et punktum. Men så var det smtp-protokollen som erik fortæller.
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

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