/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Hvad søren sker der her????
Fra : Ladmorillo
Vist : 510 gange
40 point
Dato : 05-08-02 22:30

Hej

Jeg sidder lige med lidt simpel php kode som kopierer indholdet i en tekstfil over i en anden tekstfil. Men resultatet bliver ikke helt som forventet.

Jeg har filen fil1.txt med indhold:

------ fil1.txt -----
0
1
2
3
4
5
6
7
8
9
---------------

og nedenstående smule kode:

<html>
<?php
$fil1 = file('fil1.txt');
$fil2 = fopen('fil2.txt', "w");
foreach($fil1 as $val) fputs($fil2,$val);
?>
</html>

giver det forventede resultat, en fil med indhold præcis som fil1.txt.

Men ændrer jeg koden med en enkelt linie så den ser således ud:

<html>
<?php
$fil1 = file('fil1.txt');
$fil2 = fopen('fil2.txt', "w");
$fil1[3] = "88"; <------------------------- her
foreach($fil1 as $val) fputs($fil2,$val);
?>
</html>

Som efter min mening skulle resulterer i fil2.txt som vill se sådan her ud:

------ fil2.txt (forventet) -----
0
1
2
88
4
5
6
7
8
9
---------------

Men som rent faktisk giver:

------ fil2.txt -----
0
1
2
884
5
6
7
8
9
-------------------

Hvorfor bliver 4-tallet rykket op???? Det sker kun når jeg ændrer i det originale array. Jeg ændrer en enkelt af de ti indgange i arrayet og skriver dem enkeltvis ud i den nye fil med fputs, som skriver en linie af gangen??

Er det mig der har misforstået et eller andet???

Ladmorillo

 
 
Accepteret svar
Fra : kaasgaard

Modtaget 40 point
Dato : 06-08-02 10:48

hmm... meget mystisk

Hvis man echoer array'et fil[] ud på skærmen inden det bliver skrevet til fil2.txt er alt som det skal være.

Jeg "leger" lidt og vender tilbage.

// Martin

Godkendelse af svar
Fra : Ladmorillo


Dato : 06-08-02 13:03

Ahh very nice... thanks bud.
Ladmorillo
                        

Kommentar
Fra : Nyhedsbruger


Dato : 07-08-02 09:21

On Wed, 07 Aug 2002 07:39:15 GMT, "Ladmorillo"
<Ladmorillo.news@kandu.dk> wrote:

> Hvorfor bliver 4-tallet rykket op????

file() indlæser en hel fil inkl. linieskift efter hver linie, så prøv
at ændre linien med $fil1[3] til

$fil1[3] = "88\n";


- Thomas

Kommentar
Fra : Nyhedsbruger


Dato : 07-08-02 09:19

Ladmorillo wrote:
> $fil1[3] = "88"; <------------------------- her

$fil1[3] = "88\n"; //*nix
eller
$fil1[3] = "88\r\n"; //win

--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
http://www.jakobnielsen.dk/ | -- Terry Pratchett, Reaper Man
Jeg søger et fuldtidsjob som programmør. Tag et kig på hjemmesiden.



Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste