Hoe de inhoud van een bestand op mail te zetten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Hans Versteegen

Hans Versteegen

12/10/2005 10:21:00
Quote Anchor link
Hallo,

ik lees een bestand uit op de volgende manier:
// open het bestand
$fopen = fopen("test.txt", "r");
// Lezen uit het bestand
fgets($fopen, 4096);
// sluit het bestand
fclose($fopen);

Hoe zorg ik er nu voor dat ik met de mail() functie de inhoud van het hierboven gelezen tekst bestand toegezonden krijg?
 
PHP hulp

PHP hulp

23/11/2024 14:43:05
 
Hans Versteegen

Hans Versteegen

12/10/2005 11:00:00
Quote Anchor link
Ben weer iets verder:
Heb um zo aangepast, maar nu krijg ik een foutmelding dat het bestand niet bestaat; terwijl dit wel bestaat!
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
$filetje
=$_SERVER["DOCUMENT_ROOT"]."test.txt";
//het bestand openen (alleen lezen)
if(ini_get("allow_url_fopen")==0){
ini_set("allow_url_fopen","1") or die("Could not set allow_url_fopen to 1");
}


if(is_file($filetje)){
$fh = fopen($filetje, "a") or die("Could not open '$filetje' for reading");
}
else{
die("$filetje does not exist");
}

//het bestand inlezen
$text = fread($fh) or die("Could not read '$filetje'");
echo "$text";
fclose($fh); ?>

Waar zou dit aan kunnen liggen???
Gewijzigd op 12/10/2005 11:16:00 door Hans Versteegen
 
Willem vp

Willem vp

12/10/2005 11:18:00
Quote Anchor link
Kijk eens goed naar de waarde van $filetje?
 
Hans Versteegen

Hans Versteegen

12/10/2005 11:39:00
Quote Anchor link
Dat test.txt niet zou bestaan wil je zeggen?
Die bestaat helaas wel... Geen schrijffouten of zo hoor.

Willem:
Kijk eens goed naar de waarde van $filetje?
 
Martijn B

Martijn B

12/10/2005 11:43:00
Quote Anchor link
Kun je niet gewoon met file_get_contents() je bestand ophalen?

dus

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
$sPath
= $_SERVER['DOCUMENT_ROOT'] . 'test.txt';

if( !ini_get('allow_url_fopen') )
{

    if( !@ini_set('allow_url_fopen', '1') )
    {

        die('"allow_url_fopen" kon niet op 1 wordt geset!');
    }
}


if( file_exists($sPath) )
{

    if( function_exists('file_get_contents') )
    {

        $sContent = file_get_contents($sPath);
    }

    else
    {
        die('Je PHP is bejaard (< 4.3.0)');
    }
}

else
{
    die("$sPath does not exist");
}


echo $sContent;
?>


En gebruik standaard single-quotes ('), dan gaan je script wat sneller.
Gewijzigd op 12/10/2005 11:45:00 door Martijn B
 
Willem vp

Willem vp

12/10/2005 11:53:00
Quote Anchor link
(zucht) Zoals ik al zei: KIJK eens naar de waarde van $filetje. Dan zou je hebben gezien dat je moet verwijzen naar '/test.txt' omdat $_SERVER['DOCUMENT_ROOT'] niet eindigt met een '/'.
 
Martijn B

Martijn B

12/10/2005 12:00:00
Quote Anchor link
$sPath = $_SERVER['DOCUMENT_ROOT'] . '/test.txt';

Oeps idd ;D

Ik had je post wel gelezen maar ik ging er vanuit dat het pad wel goed zou zijn.
Gewijzigd op 12/10/2005 12:01:00 door Martijn B
 
Willem vp

Willem vp

12/10/2005 12:24:00
Quote Anchor link
Ach, het zijn van die piepkleine dingetjes waar je dagen naar kunt zoeken ;-)
 
Hans Versteegen

Hans Versteegen

12/10/2005 12:51:00
Quote Anchor link
Bedankt allemaal voor de reacties! Nu werkt hij inderdaad!
 
Willem vp

Willem vp

12/10/2005 12:54:00
Quote Anchor link
Zojuist trouwens even een benchmarkje gedaan om te kijken hoe dat nou zit met het snelheidsverschil tussen enkele en dubbele quotes.

Ik heb 20 miljoen keer het volgende commando uitgevoerd:

$var = $_SERVER['DOCUMENT_ROOT'];

en 20 miljoen keer

$var = $_SERVER["DOCUMENT_ROOT"];

De eerste was inderdaad sneller. Het verschil: 0,76 seconden, oftewel 0,000000038 seconden per statement. En dat was dan op een vrij trage PC (PIII, 666MHz). Op een wat modernere machine (2x 3 GHz Xeon) was het verschil slechts 0,074 seconden.

Conclusie: ik zie eigenlijk geen reden om per se enkele quotes te gebruiken. Het verschil is redelijk minimaal te noemen ;-)
Gewijzigd op 12/10/2005 12:56:00 door Willem vp
 
Martijn B

Martijn B

12/10/2005 13:24:00
Quote Anchor link
Het is mieren neuken idd, maar als je een script van 1000+ regels hebt dan wordt het verschil wel wat meer.

Nu je toch bezig bent:

echo 'string1' . 'string2' . 'string3' . 'string4';

versus

echo 'string1' , 'string2' , 'string3' , 'string4';

:D
 
Willem vp

Willem vp

12/10/2005 14:36:00
Quote Anchor link
Dit heb ik gedaan in een loop van 50.000 met de strings '1', '2', '3' en '4' omdat anders de browser teveel invloed heeft op de tijdsduur (dit geeft een regel van 200 kB, en dat is al redelijk veel ;-))

Omdat de resultaten nogal wisselend waren, heb ik elke test 10x gedaan en de uitkomsten bij elkaar opgeteld.

Resultaat 1e variant: 13,3 sec
Resultaat 2e variant: 5,2 sec

En, zoals verwacht, de tweede variant is significant sneller.
 

12/10/2005 15:12:00
Quote Anchor link
Oke als we toch bezig zijn. Wat is bij onderstaande sneller binnen of buiten quotes

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$var
= 'variabelen'

echo "tekst met $var"
echo "tekst met " . $var

?>
 
Willem vp

Willem vp

12/10/2005 16:37:00
Quote Anchor link
Ik verwacht dat de eerste variant iets sneller is, omdat de tweede variant ook de string moet parsen (staat niet tussen enkele quotes) en daarbij ook nog een concatenatie moet uitvoeren. Maar aangezien mijn werkdag er nu op zit, ga ik dat niet op korte termijn testen ;-)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.