31. december 2004 - 12:33
Der er
14 kommentarer og 1 løsning
Gennemsøge mappe
Hvordan kan alle *.htm , filer i en bestemt mappe fx: /test gennemsøges og rettes 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); ?>
Annonceindlæg fra Cognizant
31. december 2004 - 15:05
#1
<?php $d = opendir( "mappe" ); while ( $file = readdir( $d ) ) { if ( is_file( $file ) && substr( $file, -4 ) == '.htm' ) { $str = file_get_contents( $file ); $str = str_replace('<XXX>', '<YYY>', $str); $fp = fopen( $file, 'w' ); fwrite( $fp, $str ); fclose( $fp ); } } closedir( $d ); ?>
31. december 2004 - 15:28
#2
Får følgende fejl: Fatal error: Call to undefined function: file_get_contents() in /var/www/xxx/html/test/udskifttextmappe.php on line 8
31. december 2004 - 15:29
#3
Ok, det var en gammel php så, erstat: $str = file_get_contents( $file ); med: $str = implode( '', file( $file ) );
31. december 2004 - 15:38
#4
Nu virker det næsten, skriver dog kun til samme dir, som scriptet ligger i.
31. december 2004 - 15:40
#5
Du skal bare ændre "mappe" til den mappe du vil gøre det i...
31. december 2004 - 15:45
#6
Har oprettet dir: "mappe" ( test/mappe/)
31. december 2004 - 15:47
#7
$d = opendir( "mappe" ); ædres vel så til: $d = opendir( "./test/mappe" ); ?
31. december 2004 - 15:47
#8
Eller hvor den nu ligger :)
31. december 2004 - 15:58
#9
$d = opendir( "./test/mappe" ); ==> Warning: OpenDir: No such file or directory (errno 2) in /var/www/xxx/html/test/udskifttextmappe.php on line 3 Warning: Supplied argument is not a valid Directory resource in /var/www/xxx/html/test/udskifttextmappe.php on line 4 Warning: Supplied argument is not a valid Directory resource in /var/www/xxx/html/test/udskifttextmappe.php on line 15
31. december 2004 - 16:00
#10
Ok, hvis scriptet ligger i test og du vil søge i "mappe" under den, skal der blot stå: $d = opendir( "./mappe" ); eller $d = opendir( "mappe" ); Den søger så kun i den mappe...
31. december 2004 - 16:01
#11
Aj vent! Der mangler jo noget! Prøv med: <?php $mappe = 'mappe'; $d = opendir( $mappe ); while ( $file = readdir( $d ) ) { if ( is_file( "$mappe/$file" ) && substr( $file, -4 ) == '.htm' ) { $str = implode( '', file( "$mappe/$file" ) ); $str = str_replace('<XXX>', '<YYY>', $str); $fp = fopen( $file, 'w' ); fwrite( $fp, $str ); fclose( $fp ); } } closedir( $d ); ?>
31. december 2004 - 16:16
#12
Scriptet ligger i dir'et test, følgende linier - $d = opendir( "mappe" ); ==> skriver faktisk, til alle htm-filer i dir'et test. $d = opendir( "./mappe" ); ==> ligeledes samme resultat. Faktisk lidt underligt!
31. december 2004 - 16:46
#13
$fp = fopen( $file, 'w' ); bør også rettes til: $fp = fopen( "$mappe/$file", 'w' );
31. december 2004 - 16:46
#14
Forstår jeg ikke lige, hvordan finder den overhovedet de filer? ;P
31. december 2004 - 17:06
#15
Coderdk, nu virker det, - mange tak for hjælpen. Godt Nytår!
Vi tilbyder markedets bedste kurser inden for webudvikling