Beste manier om gegevens uit een file te krijgen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Paul prive

paul prive

18/11/2007 07:46:00
Quote Anchor link
Beste
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
 
PHP hulp

PHP hulp

28/11/2024 18:13:43
 
- SanThe -

- SanThe -

18/11/2007 07:49:00
Quote Anchor link
File inlezen en dan substr() gebruiken.
 
Paul prive

paul prive

18/11/2007 08:44:00
Quote Anchor link
zou je mij een voorbeeld kunnen geven?
alvast bedankt
 
Paul prive

paul prive

18/11/2007 09:04:00
Quote Anchor link
dit is een voorbeeld van een file die ik zou willen bewerken met fopen
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
 

18/11/2007 09:04:00
 
Joren de Wit

Joren de Wit

18/11/2007 09:18:00
Quote Anchor link
Als het alleen om het weergeven gaat, heb je fopen() niet eens nodig. Lees dan gewoon de inhoud van het bestand in een variabele in mbv file_get_contents:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$string
= file_get_contents('bestand.txt');
?>

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)
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
<?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);
?>
 
Paul prive

paul prive

18/11/2007 18:50:00
Quote Anchor link
Blanch
heel erg bedankt voor dit voorbeeld je hebt me hier reuze mee geholpen

mvg Paul
 
Paul prive

paul prive

18/11/2007 19:13:00
Quote Anchor link
ik loop nu tegen de volgende foutmelding op

nadat ik deze if in de hierboven vermelde code steek
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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"
};
?>


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
 
Joren de Wit

Joren de Wit

18/11/2007 19:41:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
substr($lines[1], 52,4) == '52')
?>

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?
 
Paul prive

paul prive

18/11/2007 20:07:00
Quote Anchor link
Blanche
heb je gelijk in
maar hoe gaat mijn if er dan uitzien,
want als ik dit doe
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if (substr($lines[1], 52,4) == 'demo'){
print buitenlandse betaling
else
 print binnenlandse betaling
};
?>

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
 
Joren de Wit

Joren de Wit

18/11/2007 20:36:00
Quote Anchor link
Hier mis je een ; en de nodige quotes op regel 3 en 5. Zorg dat je netjes script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
if(substr($lines[1], 52, 4) == 'demo')
{

    echo 'buitenlandse betaling';
}

else
{
    echo 'binnenlandse betaling';
}

?>
 
Paul prive

paul prive

18/11/2007 20:41:00
Quote Anchor link
grrr das stom van me
nogmaals bedankt
 



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.