Avatar billede amews_aj Nybegynder
12. april 2005 - 10:00 Der er 8 kommentarer og
1 løsning

Indsætte/fjerne tekst på bestemt linje i fil?

1. Hvordan kan jeg indsætte tekst på en bestemt linje i en tekst fil.
Evt. linjenummer eller andet.


2. Hvordan kan jeg fjerne den tekst jeg lige har sat ind igen.?

Håber i forstår, ellers spørg bare :D
Avatar billede coderdk Praktikant
12. april 2005 - 11:59 #1
læs filen med file() - loop igennem arrayet og byg et nyt med den nye linje... Samme måde med at fjerne den - Du skriver den nye fil med fopen/fwrite/fclose (hint - du behøver ikke skrive én ad gangen, du kan implode() arrayet)...
Avatar billede amews_aj Nybegynder
12. april 2005 - 12:09 #2
He sjovt nok, jeg fandt selv dette her lige for 1 minut siden :D

http://eksperten.dk/spm/249840

Men jeg venter lige med at acceptere før jeg har testet derhjemme...

Lige et spørgsmål til så...

Kan man godt gøre det med en .htaccess fil, uden at den bliver mindre sikker
Den skal vel chmodes så...
Kan jeg chmod så den kun kan læses af "selve siden", men ikke folk udefra?
Min log fil kan nemlig læses af alle, men kan jeg ikke gøre så den er lukket udefra?
Hvad skal den så chmodes som`?
Avatar billede coderdk Praktikant
12. april 2005 - 12:18 #3
Den skal nok chmod'es til 777 så webserveren kan skrive til den, for at nægte direkte adgang kan du tilføje dette til .htaccess:

<Files "dinfil.txt">
  Order allow,deny
  Deny from all
</Files>
Avatar billede amews_aj Nybegynder
12. april 2005 - 14:12 #4
Kan du ikke hjælpe? Hvordan henter jeg alt ud i et array for hver linje, og hvordan kan man udskrive det hele?
Avatar billede coderdk Praktikant
12. april 2005 - 14:13 #5
$linjer = file( "fil.txt" );
foreach ( $linjer as $linje )
{
  echo "$linje<br>";
}
Avatar billede amews_aj Nybegynder
12. april 2005 - 14:21 #6
Ja men hvordan får jeg det så i et array
HAr prøvet lidt, men det virker ikke:

<?
$linjer = file( ".log" );
foreach ( $linjer as $linje )
{
$i = 1;
  $tekst[$i] = $linje;
$i = $i + 1;
}
echo $tekst[1];
?>

Hvordan får jeg dem ind i hvert sit array så den kommer med
$tekst[1] = "linje 1"
$tekst[2] = "linje 2"
osv.?
Avatar billede coderdk Praktikant
12. april 2005 - 14:42 #7
Du får din fils linjer i et array sådan:

$linjer = file( "fil.txt" );

Så tilgår du linje 12 sådan: echo $linjer[12];

Skal du indsætte en linje efter linje 11, altså på linje 12 så:

$nyelinjer = array_slice( $linjer, 0, 11 );
$nyelinjer[] = 'Ny linje 12';
$nyelinjer = array_merge( $nyelinjer, array_slice( $linjer, 11 ) );
Avatar billede amews_aj Nybegynder
12. april 2005 - 14:46 #8
Kan man så ikke ligesågodt gøre sådan her?

<?
$fp = fopen( ".htaccess", "r" );
$str = fread($fp, filesize(".htaccess"));
$str = str_replace("Deny from 0", "Deny from 1.1.1.1", $str);
fclose( $fp );

$fp = fopen( ".htaccess", "w" );
fwrite( $fp, $str );
fclose($fp);
?>
Avatar billede amews_aj Nybegynder
12. april 2005 - 14:54 #9
Det gør jeg bare, det er let at bruge ... :D

Takker :D
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