Beste manier om gegevens uit een file te krijgen
ik ben op zoek naar een manier om een bestand te openen met php en vervolgens verschillende gegevens uit deze file weer te geven die iedere keer op een vaste plaats staan. welke functie kan ik het beste hiervoor gebruiken.
ik weet dat je met file open het bestand kan openen.
maar ik heb van regel 1 de karakters 20 tm 30 nodig, en hoe zou ik dit dan moeten doen?
graag met een voorbeeld als dat kan
alvast bedankt voor jullie hulp
mvg Paul
File inlezen en dan substr() gebruiken.
alvast bedankt
0000029120630005 0000011892112 BBL DEMO TEST 0043794064700437940647 00000 01
1 096310103160192 9BE 0549025 1000000000017970151206DEMO ISA REN FR 1 CHEF EN ING ZICHTREKENING 000
210001000036429620020000000158 0000000000000020291206001500000test 2912060960100
2300010000310103160495 EUR0BE 0030000 DEMO ISA REN AN 1 TEAM MANCOURS ST MICHEL 60 1040 BRUXELLES 4 000
8096310103160192 9BE 0549025 1000000000017950291206
9 000004000000000000000000000000000020
zoals je kan zien bestaat die uit verschillende regels, hoe kan ik de substr() functie dan het best gebruiken als ik de gegevens uit verschillende regels nodig heb?
graag met een voorbeeld
alvast bedankt voor jullie hulp
mvg
Paul
Vervolgens zou ik met explode() de verschillende regels in een array zetten, waarna je substr() op deze regels los kunt laten.
Een voorbeeldje van verschillende mogelijkheden. ($string heb ik nu handmatig gevuld, maar gebruik daar in jouw script dus file_get_contents() voor).
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
// $string ophalen mbv file_get_contents('bestand.txt');
$string = '0000029120630005 0000011892112 BBL DEMO TEST 0043794064700437940647 00000 01
1 096310103160192 9BE 0549025 1000000000017970151206DEMO ISA REN FR 1 CHEF EN ING ZICHTREKENING 000
210001000036429620020000000158 0000000000000020291206001500000test 2912060960100
2300010000310103160495 EUR0BE 0030000 DEMO ISA REN AN 1 TEAM MANCOURS ST MICHEL 60 1040 BRUXELLES 4 000
8096310103160192 9BE 0549025 1000000000017950291206
9 000004000000000000000000000000000020';
$lines = explode("\n", $string);
// Door de verschillende regels lopen en een actie uitvoeren.
foreach($lines as $line)
{
echo $line.'<br />';
}
// Karakters 20-30 uit regel 1:
echo substr($lines[0], 20, 10);
?>
// $string ophalen mbv file_get_contents('bestand.txt');
$string = '0000029120630005 0000011892112 BBL DEMO TEST 0043794064700437940647 00000 01
1 096310103160192 9BE 0549025 1000000000017970151206DEMO ISA REN FR 1 CHEF EN ING ZICHTREKENING 000
210001000036429620020000000158 0000000000000020291206001500000test 2912060960100
2300010000310103160495 EUR0BE 0030000 DEMO ISA REN AN 1 TEAM MANCOURS ST MICHEL 60 1040 BRUXELLES 4 000
8096310103160192 9BE 0549025 1000000000017950291206
9 000004000000000000000000000000000020';
$lines = explode("\n", $string);
// Door de verschillende regels lopen en een actie uitvoeren.
foreach($lines as $line)
{
echo $line.'<br />';
}
// Karakters 20-30 uit regel 1:
echo substr($lines[0], 20, 10);
?>
heel erg bedankt voor dit voorbeeld je hebt me hier reuze mee geholpen
mvg Paul
nadat ik deze if in de hierboven vermelde code steek
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<php Fatal error: Can't use function return value in write context
if (substr($lines[1], 52,4) == '52') {
print "buitenlandse rekening"
else
print "binnelandse rekening"
};
?>
if (substr($lines[1], 52,4) == '52') {
print "buitenlandse rekening"
else
print "binnelandse rekening"
};
?>
heeft iemand een idee hoe ik dit opgelost krijg?
nogmaals bedankt voor uw hulp
Gewijzigd op 01/01/1970 01:00:00 door paul prive
Dit kan natuurlijk sowieso al niet. Hoe kan iets met een lengte van 4 tekens gelijk zijn aan iets met een lengte van 2 tekens?
heb je gelijk in
maar hoe gaat mijn if er dan uitzien,
want als ik dit doe
Code (php)
krijg ik de volgende foutmelding
Parse error: parse error, unexpected T_ELSE in C:\Program Files\EasyPHP 2.0b1\www\coda.php on line 27
wat doe ik dan verkeerd hier
nogmaals bedankt