gaat niet naar de volgende regel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Madelief

madelief

13/06/2006 22:35:00
Quote Anchor link
ik heb een tekstbestand met op elke regel een zin die ik wil gaan opsplitsen hij stopt echter na 1regel..

fruit.txt voorbeeld

fruit,banaan,2euro
fruit,appel,3euro
fruit,citroen,4euro

de php code die ik gebruik om uit te lezen en aan te passen

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
<?php

$fStream
= fopen("fruit.txt","r") or trigger_error("Kon bestand niet openen",E_USER_ERROR);

// loopen door de lees lus
while(!feof($fStream))
{

    // bestand daadwerkelijk lezen
    $fContent = fread($fStream,4096) or trigger_error("Kon niet uit het bestand lezen",E_USER_ERROR);

    $fParsed = explode(",",$fContent);
    echo $fParsed[0] . '-' . $fParsed[1] . '-' . $fParsed[2] . '!';
    
  
}


// bestand weer sluiten
fclose($fStream);
?>


wat doe ik verkeerd?
Gewijzigd op 01/01/1970 01:00:00 door Madelief
 
PHP hulp

PHP hulp

17/11/2024 04:47:22
 
Jason de Ridder

Jason de Ridder

13/06/2006 22:37:00
Quote Anchor link
gebruik is nl2br(fread(etc.)); ??
 
Madelief

madelief

13/06/2006 22:38:00
Quote Anchor link
dat helpt niet
 
Jason de Ridder

Jason de Ridder

13/06/2006 22:42:00
Quote Anchor link
Oeps verkeerd gelezen,
Je opent het hele bestand, dus zal de volgende regel worden:
echo $fParsed[3] . '-' . $fParsed[4] . '-' . $fParsed[5] . '!';

Wat je zou kunnen doen, na iedere newline (\n) opnieuw exploden
ipv. die andere whileloop
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
while(preg_match('\\n$')) { // volgens mij of ipv $, ^
   explode(wat je had);
   echo wat je had;
}

?>

zorg wel dat je fread boven de whileloop zet.
EOL (End of Line) is volgens mij een standaard define. Moet je ff nazoeken op php.net. Anders kan je die in je while stoppen.
Gewijzigd op 01/01/1970 01:00:00 door Jason de Ridder
 
Madelief

madelief

13/06/2006 22:51:00
Quote Anchor link
moet ik dan niet ook meegeven in de pregmatch welke variabele het betreft? ik heb nu dit maar dat werkt niet.

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
<?php

$fStream
= fopen("fruit.txt","r") or trigger_error("Kon bestand niet openen",E_USER_ERROR);

// loopen door de lees lus
while(preg_match('\\n^',$fStream))
{

    // bestand daadwerkelijk lezen
    $fContent = fread($fStream,4096) or trigger_error("Kon niet uit het bestand lezen",E_USER_ERROR);

    $fParsed = explode(",",$fContent);
    echo $fParsed[0] . '-' . $fParsed[1] . '!';
    
  
}


// bestand weer sluiten
fclose($fStream);
?>
Gewijzigd op 01/01/1970 01:00:00 door madelief
 
Robert Deiman

Robert Deiman

13/06/2006 23:19:00
Quote Anchor link
Madelief, voordat je met die preg_match() aan de gang kan, zal je eerst wel fread() moeten hebben gedaan. Je wilt namelijk in het bestand gaan matchen, dan moet je al hebben gelezen.
Probeer dit eens:

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
<?php

$fStream
= fopen("fruit.txt","r") or trigger_error("Kon bestand niet openen",E_USER_ERROR);
// bestand daadwerkelijk lezen
$fContent = fread($fStream,4096) or trigger_error("Kon niet uit het bestand lezen",E_USER_ERROR);
// loopen door de lees lus
while($fLines = preg_match('\\n^',$fStream))
{

    
    $fParsed = explode(",",$fLines);
    echo $fParsed[0] . '-' . $fParsed[1] . '!';
    
  
}


// bestand weer sluiten
fclose($fStream);
?>


EDIT:

Ook nog welkom trouwens.. je zit hier net een paar dagen zie ik.. (niet netjes anders, de een wel welkom heten en de ander niet, dus bij deze)
Hoop dat je er veel aan hebt.
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 
Madelief

madelief

13/06/2006 23:27:00
Quote Anchor link
beste deze oplossing doet het ook niet.. moet fStream in de pregmatch ook niet fContent zijn? Ook geprobeerd maar doet ook niets.
 
Robert Deiman

Robert Deiman

13/06/2006 23:33:00
Quote Anchor link
Dit dan?

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
<?php

$fStream
= fopen("fruit.txt","r") or trigger_error("Kon bestand niet openen",E_USER_ERROR);
// bestand daadwerkelijk lezen
$fContent = fread($fStream,4096) or trigger_error("Kon niet uit het bestand lezen",E_USER_ERROR);
// Bestand lijn voor lijn in array zetten
$fLines = explode("\n",$fContent)

// regel voor regel uit elkaar trekken.
foreach($fLines as $fRules)
{

    
    $fParsed = explode(",",$fRules);
    echo $fParsed[0] . '-' . $fParsed[1] . '!';
    
  
}


// bestand weer sluiten
fclose($fStream);
?>
 
Madelief

madelief

13/06/2006 23:36:00
Quote Anchor link
ook niet...

kan er ook nog iets anders aan de hand zijn?
 
Robert Deiman

Robert Deiman

13/06/2006 23:42:00
Quote Anchor link
Deze werkt, zat een klein foutje in:

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
<?php

$fStream
= fopen("fruit.txt","r") or trigger_error("Kon bestand niet openen",E_USER_ERROR);
// bestand daadwerkelijk lezen
$fContent = fread($fStream,4096) or trigger_error("Kon niet uit het bestand lezen",E_USER_ERROR);
// Bestand lijn voor lijn in array zetten
$fLines = explode("\n",$fContent);

// regel voor regel uit elkaar trekken.
foreach($fLines as $fRules)
{

    
    $fParsed = explode(",",$fRules);
    echo $fParsed[0] . '-' . $fParsed[1] . '!<br>';
    
  
}


// bestand weer sluiten
fclose($fStream);
?>
 
Madelief

madelief

13/06/2006 23:43:00
Quote Anchor link
ja!

dank je wel!
 
Robert Deiman

Robert Deiman

13/06/2006 23:44:00
Quote Anchor link
Graag gedaan..
 



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.