01. januar 2005 - 16:51
Der er
18 kommentarer og 1 løsning
Rename af filer
Jeg har en helveds masse filer... billede filer men der er noget kuks i det for punktumet er skiftet ud med %2E så nu vil jeg hører om man ikke kan bruge noget i PHP til at rename alle filerne...
Annonceindlæg fra Pax8
01. januar 2005 - 16:59
#1
$mappe = "mappenavn"; if ( $d = opendir( $mappe ) ) { $fn = array(); while ( $f = readdir( $d ) ) { if ( is_file( $f ) && strpos( "%2E", $f ) > 0 ) { $fn[$f] = str_replace( "%2E", ".", $f ); } } closedir( $d ); foreach ( $fn as $old => $new ) { rename( "$mappe/$old", "$mappe/$new" ); } }
01. januar 2005 - 17:01
#2
Kunne godt ligne noget af det jeg skal bruge :) Prøver det lige
01. januar 2005 - 17:04
#3
Den fortager sig ikke rigtig noget...
01. januar 2005 - 17:13
#4
Hov: if ( is_file( $f ) && strpos( "%2E", $f ) > 0 ) Skal da vist være: if ( is_file( $f ) && strpos( $f, "%2E" ) > 0 ) :P Virker det?
01. januar 2005 - 17:14
#5
Tror nærmere: if ( is_file( "$mappe/$f" ) && strpos( $f, "%2E" ) > 0 )
01. januar 2005 - 17:16
#6
Ingen af de 2 ting fungere :P desværre.
01. januar 2005 - 17:18
#7
Har du ændret $mappe til den mappe du vil rename i?
01. januar 2005 - 17:19
#8
Ja :) Den giver ingen fejl altså den kan godt åbne mappen
01. januar 2005 - 17:21
#9
Du kan prøve at skrive noget debug info ud: <?php $mappe = "."; if ( $d = opendir( $mappe ) ) { $fn = array(); while ( $f = readdir( $d ) ) { if ( is_file( $f ) && strpos( $f, "%2E" ) > 0 ) { $fn[$f] = str_replace( "%2E", ".", $f ); echo "Fundet $f<br>"; } } closedir( $d ); foreach ( $fn as $old => $new ) { echo "Rename $old to $new<br>"; rename( "$mappe/$old", "$mappe/$new" ); } } else { echo "Kunne ikke åbne $mappe"; } ?> Du kan også prøve at rename inde i loopet: <?php $mappe = "."; if ( $d = opendir( $mappe ) ) { while ( $f = readdir( $d ) ) { if ( is_file( $f ) && strpos( $f, "%2E" ) > 0 ) { $fn = str_replace( "%2E", ".", $f ); echo "Rename $f to $fn<br>"; rename( "$mappe/$f", "$mappe/$fn" ); } } closedir( $d ); } ?>
01. januar 2005 - 17:23
#10
heheh ja detox, det ville nok også hjælpe ;) Altså rette if ( is_file( $f ) && strpos( $f, "%2E" ) > 0 ) til if ( is_file( "$mappe/$f" ) && strpos( $f, "%2E" ) > 0 )
01. januar 2005 - 17:24
#11
Index.php ---------- <? $mappe = "pics"; if ( $d = opendir( $mappe ) ) { $fn = array(); while ( $f = readdir( $d ) ) { if ( is_file( $f ) && strpos( "%2E", $f ) > 0 ) { if ( is_file( "$mappe/$f" ) && strpos( $f, "%2E" ) > 0 ); } } closedir( $d ); foreach ( $fn as $old => $new ) { rename( "$mappe/$old", "$mappe/$new" ); } } ?> og en mappe der hedder "pics"... og den gør intet :P
01. januar 2005 - 17:26
#12
<?php $mappe = "pics"; if ( $d = opendir( $mappe ) ) { while ( $f = readdir( $d ) ) { if ( is_file( $f ) && strpos( $f, "%2E" ) > 0 ) { $fn = str_replace( "%2E", ".", $f ); echo "Rename $f to $fn<br>"; rename( "$mappe/$f", "$mappe/$fn" ); } } closedir( $d ); } ?> den når ikke ned og echo'er...
01. januar 2005 - 17:42
#13
<? $mappe = "pics"; if ( $d = opendir( $mappe ) ) { $fn = array(); while ( $f = readdir( $d ) ) { if ( is_file( "$mappe/$f" ) && strpos( $f, "%2E" ) > 0 ) { $fn[$f] = str_replace( "%2E", ".", $f ); } } closedir( $d ); foreach ( $fn as $old => $new ) { echo "$old => $new<br />"; rename( "$mappe/$old", "$mappe/$new" ); } } ?>
01. januar 2005 - 17:45
#14
Så skete der noget :) Det fungere fint detox hehe
01. januar 2005 - 17:45
#15
jammerlab, du havde glemt at ændre: if ( is_file( $f ) && strpos( $f, "%2E" ) > 0 ) til if ( is_file( "$mappe/$f" ) && strpos( $f, "%2E" ) > 0 )
01. januar 2005 - 17:47
#16
ah okay :P
01. januar 2005 - 17:48
#17
når men detox smid et svar så deler i :)
01. januar 2005 - 17:50
#18
Arh, det var bare en mindre rettelse. Giv du dem til coderdk.
01. januar 2005 - 17:57
#19
Hehe I will... tak for hjælpen og godt nytår
Vi tilbyder markedets bedste kurser inden for webudvikling