Avatar billede delphimann Nybegynder
04. januar 2004 - 19:42 Der er 12 kommentarer og
1 løsning

Behold filens navn men slet den og sæt ny ind

Hej jeg har en mappe ved navn:
SPRACHE
I den mappe ligger der 92 filer og de hedder noget meget forskelligt både bogstaver og tal.wav

De filer skal alle laves om!
Jeg har en fil der hedder ABRIS18B.WAV. Det er den rigtige lyd. Så jeg vil gerne have filerne til at beholde ders navn med bytte filen ud med ABRIS18B.WAV.

Kan Php gør det ?

Hilsen Maykel
Avatar billede fangel Nybegynder
04. januar 2004 - 20:07 #1
teori:

1) lav et array med filnavnene fra mappen
2) løb arrayet igennem for at slette hver fil
3) løb arrayet igennem igen hvor du denne gange copiere din wav-fil og navngiver den efter arrayet

ikke _SÅ_ svært...

funktioner du skal bruge:
http://php.net/opendir <- opendir();
http://php.net/cp <- cp();

Morten
Avatar billede delphimann Nybegynder
04. januar 2004 - 20:09 #2
Hej morten

Jep jeg ved godt men hvordan får jeg php til at gør det jeg fatter nitte af php.net!

Jeg kan bare ikke lave scriptet!
Jeg har aldrig arbejdet med filer KUN med mysql!
Avatar billede fangel Nybegynder
04. januar 2004 - 20:23 #3
PHP.net er ikke svær at forstå - her er min hack-forklaring af PHP.net's forklaring af funktionen "isset()"

---
Hvis du nu vil læse lidt om funktionen isset() (http://.php.net/isset), kan de se at der er følgende forklaring:

bool isset ( mixed var [, mixed var [, ...]])

og ud af den kan du læse følgende:

"bool" = funktionen returnere enten sand (1) eller falsk (0)

"isset" = funktionen hedder isset (rart at vide, ik)

"mixed var" = funktionen skal have en variabel som parameter (lige meget hvilken type)

"[, mixed var" = du kan godt bruge mere end en variabel

"[, ...]" = du må bruge så mange som du lyster
---

og du skal bare benytte eksemplet i link #1, smide indholdet i et array istedet for, løbe dette array igennem (fx med foreach() http://php.net/foreach) og bruge cp (link #2) til at kopiere de nye filer...

PHP.net er DET bedste du kan bruge til PHP-programmering... den er simpelt hen uvurderlig ! derfør bør du sætte dig ned og lære hvordan den er bygget op, for det kan spare dig mange prøvelser, bare ved at kunne forstå den og læse den...

Morten
Avatar billede delphimann Nybegynder
04. januar 2004 - 20:29 #4
Morten... ok nu ser det ud til at virke LIDT...

Hvis du bare gider at hjælpe...

jeg kan få den til at skrive alle filerne på denne måde:

Directory handle: Resource id #1 Files: . .. ARBFAUL.WAV BEUGEB9.WAV BIGBENV.WAV BIGBENN.WAV BIGBEN.WAV BRANDEN.WAV BRANDENN.WAV BRANDENV.WAV EIFELV.WAV EIFELN.WAV EIFEL.WAV ERDVOR.WAV ERDBEBEN.WAV EXPLOS.WAV FLUGAB.WAV FREI.WAV FREIN.WAV FREIV.WAV GELD.WAV HAIE.WAV MSHONACH.WAV MSHOVOR.WAV MSHOSTAT.WAV NACHLAS.WAV NEUGEB1.WAV NEUGEB10.WAV NEUGEB11.WAV NEUGEB12.WAV NEUGEB13.WAV NEUGEB14.WAV NEUGEB15.WAV NEUGEB16.WAV NEUGEB17.WAV NEUGEB9.WAV NEUGEB8.WAV NEUGEB7.WAV NEUGEB6.WAV NEUGEB5.WAV NEUGEB4.WAV NEUGEB3.WAV NEUGEB2.WAV NEUGEB18.WAV OELPEST.WAV OELVOR.WAV OSTERN.WAV OSTER.WAV OSTERV.WAV PIRANISZ.WAV POOLUNF.WAV PYRAMID.WAV PYRAMIDN.WAV PYRAMIDV.WAV RATTE.WAV RUTSCH.WAV RUFDOOF.WAV SAGELDWE.WAV SAHAITAU.WAV SARUFSZ.WAV SABAUSZ.WAV SABENT.WAV SABOMBSZ.WAV SCHIEF.WAV SCHIEFN.WAV SCHIEFV.WAV SCHMIER.WAV SPHINX.WAV SPHINXN.WAV SPHINXV.WAV SPPLEI.WAV SPVERK.WAV SPVERK2.WAV STURMVOR.WAV STURM.WAV STRUMVOR.WAV STRUM.WAV STRKAPUT.WAV STRASS.WAV STONEV.WAV STONEN.WAV STONE.WAV STINKNIC.WAV STINK.WAV SURFVER.WAV SURFSTAT.WAV SURFWM.WAV TENNIS.WAV TENNSTAT.WAV TENNISVE.WAV URLAUBER.WAV ZUM1.WAV ZUM3.WAV ZUM2.WAV

Nu skal de bare i en array hvordan gør jeg det ??!
Avatar billede delphimann Nybegynder
04. januar 2004 - 20:31 #5
mit script

<?php
// Note that !== did not exist until 4.0.0-RC2

if ($handle = opendir('C:\Apache\htdocs\Cpumax\SPRACHE1')) {
  echo "Directory handle: $handle\n";
  echo "Files:\n";

  /* This is the correct way to loop over the directory. */
  while (false !== ($file = readdir($handle))) {
      echo "$file\n";
  }

  /* This is the WRONG way to loop over the directory. */
  while ($file = readdir($handle)) {
      echo "$file\n";
  }

  closedir($handle);
}
?>
Avatar billede fangel Nybegynder
04. januar 2004 - 20:38 #6
---
<?php
$filer = arrey();
$dir = 'C:\Apache\htdocs\Cpumax\SPRACHE1';

// lav array
if ($handle = opendir($dir)) {
  while (false !== ($file = readdir($handle))) {
      $filer[] = $file;
  }
  closedir($handle);
}

// løb array igennem, slet fil, kopier wave-fil over
foreach($filer AS $fil)
{
  unlink($dir . '/' . $fil);
  cp('C:\Sti\Til\Din\Wave\fil.wav', $dir . '/' . $fil);
}
?>
---

husk lige at din wave-fil selvfølgelig ikke skal ligge i samme mappe som du løber igennem, da den ellers vil slette sig selv !

Morten
Avatar billede fangel Nybegynder
04. januar 2004 - 20:39 #7
hov, arrey() -> array()
Avatar billede delphimann Nybegynder
04. januar 2004 - 20:46 #8
Jeg får disse fejl

Warning: Unlink failed (Permission denied) in c:\apache\htdocs\test.php on line 16

Fatal error: Call to undefined function: cp() in c:\apache\htdocs\test.php on line 17

Den først fejl er ved CHMOD...
Men er den anden fejl også det ?!
Avatar billede fangel Nybegynder
04. januar 2004 - 20:51 #9
ahh - tja, tænk at windows skulle implementere file-permissions... så brug

---
<?php
$filer = arrey();
$dir = 'C:\Apache\htdocs\Cpumax\SPRACHE1';

// lav array
if ($handle = opendir($dir)) {
  while (false !== ($file = readdir($handle))) {
      $filer[] = $file;
  }
  closedir($handle);
}

// løb array igennem, slet fil, kopier wave-fil over
foreach($filer AS $fil)
{
  chmod($dir . '/' . $fil, 0777);
  unlink($dir . '/' . $fil);
  copy('C:\Sti\Til\Din\Wave\fil.wav', $dir . '/' . $fil);
}
?>
---

fejl 1 var pga manglende rettighedder (ændres med chmod)
fejl 2 var fordi kopierings-funktionen hed copy() og ikke cp()

Morten
Avatar billede delphimann Nybegynder
04. januar 2004 - 20:56 #10
Jeg får denne fejl


Warning: Unlink failed (Permission denied) in c:\apache\htdocs\test.php on line 17

Warning: Unable to create 'C:\Apache\htdocs\Cpumax\SPRACHE1/.': Permission denied in c:\apache\htdocs\test.php on line 18

Warning: Unlink failed (Permission denied) in c:\apache\htdocs\test.php on line 17

Warning: Unable to create 'C:\Apache\htdocs\Cpumax\SPRACHE1/..': Permission denied in c:\apache\htdocs\test.php on line 18


Men fuck det det virker :D

1000 tak... nu skal du bare give mig et svar :)
Avatar billede fangel Nybegynder
04. januar 2004 - 20:58 #11
windows og fil-rettigheder - ikke implemeteret men kan stadig lave fejl - utroeligt !

Morten
Avatar billede delphimann Nybegynder
04. januar 2004 - 20:59 #12
Tak for hjælpen :)

Ja windows.. :S
Avatar billede fangel Nybegynder
04. januar 2004 - 21:02 #13
godt man sad ved en Gentoo Linux computer... ahh, hvilken fryd  - ikke et program der er crashet det sidste månede, selvom den har haft en gennemsnitelig oppetid på 14-16 timer / dag

Morten
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