Avatar billede esben_pape Nybegynder
03. januar 2003 - 15:49 Der er 11 kommentarer og
1 løsning

Fejl i indsættelse af string

Jeg bruger følgende kode til at ændre en bestemt linje i en txt-fil:

<?php

$datafil = "text.cfg";
$filindhold = file($datafil);
unlink($datafil);
$fp = fopen($datafil, 'a');
for ($i=0;$i<count($filindhold);$i++) {

if (strstr(strtolower($filindhold[$i]),"rcon_password")) {
$tmp = explode(" ", $filindhold[$i]);
echo "Rcon password er sat til: $tmp[1]";
$tmp[1] = "12345";
$filindhold[$i] = "rcon_password " . $tmp[1]; // Her mangler der et *ENTER*...

fputs($fp, $filindhold[$i]);
} else {
fputs($fp, $filindhold[$i]);
}
}
fclose($fp);

?>

Men når jeg sætter den bestemte linje ind, jeg har ændret i, mangler der et afsluttende Enter, så den næste linje rykker ned... Hvordan gøres det?
Avatar billede avlund Nybegynder
03. januar 2003 - 15:54 #1
$filindhold[$i] = "rcon_password " . $tmp[1]."\n";
Avatar billede rzj Nybegynder
03. januar 2003 - 15:54 #2
det afhænger vist nok af filsystemet, men prøv:
$filindhold[$i] = "rcon_password " . $tmp[1]."\n";
Avatar billede esben_pape Nybegynder
03. januar 2003 - 16:00 #3
Hmm, så ser txt-filen sådan her ud bagefter:

name ChaoZinTel
sv_gravity 800
rcon_password 12345(*Underligt firkant*)mp_fadetoblack 0
mp_freezetime 3

I må regne med, at den ikke skal bruges til at sætte ind som HTML, men skal læses af et helt andet program (CounterStrike)...
Avatar billede avlund Nybegynder
03. januar 2003 - 16:02 #4
Prøv med "\r" eller "\n\r" i stedet, da.
Avatar billede esben_pape Nybegynder
03. januar 2003 - 16:02 #5
Skal man evt. sætte et par HEX-ting ind som laver et ENTER?
Avatar billede esben_pape Nybegynder
03. januar 2003 - 16:04 #6
avlund: hjælper ikke....
Avatar billede avlund Nybegynder
03. januar 2003 - 16:09 #7
Hvilken type server kører du på, Windows, Mac eller *nix?
Avatar billede esben_pape Nybegynder
03. januar 2003 - 16:10 #8
Windows
Avatar billede avlund Nybegynder
03. januar 2003 - 16:20 #9
OK, så har det nok noget med det at gøre.

Prøv så istedet at bruge "crlf", som står for carriage return line feed. Det er Windows' udgave af newline. Jeg har ikke brugt den med PHP før, men det skal vel skrives med \ foran som det andet også.
Avatar billede avlund Nybegynder
03. januar 2003 - 16:25 #10
Nej, der findes ikke en PHP-kommando for det. Men "\r\n", altså det modsatte af det tidligere svar, burde faktisk virke.
Avatar billede esben_pape Nybegynder
03. januar 2003 - 16:33 #11
Fedt, det virker.."\r\n" virker...havde skrevet \n\r før :) Anyway, du får lige pointene...
Avatar billede avlund Nybegynder
03. januar 2003 - 16:39 #12
Alle tiders, glad for at det fungerer.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester