Hoe de inhoud van een bestand op mail te zetten
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?
Heb um zo aangepast, maar nu krijg ik een foutmelding dat het bestand niet bestaat; terwijl dit wel bestaat!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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); ?>
$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
Kijk eens goed naar de waarde van $filetje?
Die bestaat helaas wel... Geen schrijffouten of zo hoor.
Willem:
Kijk eens goed naar de waarde van $filetje?
dus
Code (php)
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
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;
?>
$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
(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 '/'.
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
Ach, het zijn van die piepkleine dingetjes waar je dagen naar kunt zoeken ;-)
Bedankt allemaal voor de reacties! Nu werkt hij inderdaad!
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
Nu je toch bezig bent:
echo 'string1' . 'string2' . 'string3' . 'string4';
versus
echo 'string1' , 'string2' , 'string3' , 'string4';
:D
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.
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 ;-)