Avatar billede proviben Novice
30. december 2004 - 11:27 Der er 12 kommentarer og
1 løsning

udskifte text

Har brug for, at åbne en html-fil,  fx: test.htm og finde alle strenge med ”XXX” og udskifte disse med ”YYY” - hvordan gøres det?
Avatar billede detox Nybegynder
30. december 2004 - 11:36 #1
Fx:

$str = file_get_contents('test.htm');
$str = str_replace('XXX', 'YYY', $str);
Avatar billede detox Nybegynder
30. december 2004 - 11:39 #2
Eller blot:

$str = str_replace('XXX', 'YYY', file_get_contents('test.htm'));
Avatar billede proviben Novice
30. december 2004 - 12:38 #3
Fint, smid også lige delen med selve åbningen og skrivningen til filen.
Avatar billede detox Nybegynder
30. december 2004 - 12:49 #4
php ver. 5.0:

$str = str_replace('XXX', 'YYY', file_get_contents('test.htm'));
file_put_contents('test.htm', $str);
Avatar billede detox Nybegynder
30. december 2004 - 12:51 #5
php ver. <5.0:

$str = str_replace('XXX', 'YYY', file_get_contents('test.htm'));
$fp = fopen('test.htm', 'wb');
fwrite($fp, $str);
fclose($fp);
Avatar billede detox Nybegynder
30. december 2004 - 13:15 #6
Hvis 'XXX' er længere end 'YYY' kan det være nødvendigt at tilføje en linje inden skrivningen:

ftruncate($fp, 0);
Avatar billede proviben Novice
30. december 2004 - 13:24 #7
<?php
$str = str_replace('XXX', 'YYY', file_get_contents('test.htm'));
$fp = fopen('test.htm', 'wb');
ftruncate($fp, 0);
fwrite($fp, $str);
fclose($fp);
?>

Får jeg følgende fejl pga. PHP/4.1.2 ?

Fatal error: Call to undefined function: file_get_contents() in /var/www/xxx/html/udskifttext.php on line 2
Avatar billede detox Nybegynder
30. december 2004 - 13:37 #8
Det er osse en gammel traver. Prøv:

$str = join('', file('test.htm'));
$str = str_replace('XXX', 'YYY', $str);
$fp = fopen('test.htm', 'wb');
ftruncate($fp, 0);
fwrite($fp, $str);
fclose($fp);
Avatar billede proviben Novice
30. december 2004 - 14:24 #9
Super det virker, men dog ikke med omklamringer < > , fx: <XXX> , - da det er det jeg ville ned og pille i. 

<?php
$str = join('', file('test.htm'));
$str = str_replace('<XXX>', '<YYY>', $str);
$fp = fopen('test.htm', 'wb');
ftruncate($fp, 0);
fwrite($fp, $str);
fclose($fp);
?>
Avatar billede detox Nybegynder
30. december 2004 - 14:41 #10
$str = str_replace('<XXX>', '<YYY>', $str); Virker da fint her hos mig. Er du sikker på at der ikke er brugt: &lt; og &gt; istedet for < og >
Avatar billede proviben Novice
30. december 2004 - 14:51 #11
Virker nu også med omklamringerne, kom til at skrive til den forkerte fil.
Avatar billede detox Nybegynder
30. december 2004 - 14:53 #12
Jamen så er den vel i vinkel. Her er et svar :O)
Avatar billede proviben Novice
30. december 2004 - 14:58 #13
Mange tak, detox.
I øvrigt så er mit spørgsmål afledt af: http://www.eksperten.dk/spm/575409 , her har jeg endnu ikke har fundet en løsning.
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