[php] bestandnaam met quote uitlezen

Pagina: 1
Acties:

  • noot101
  • Registratie: Februari 2002
  • Laatst online: 10-01 13:54
Ik heb een probleempje met het openen van bepaalde files:
Ik heb lijst met bestanden die ik wil bekijken m.b.v. de colgende code:
PHP:
1
<?    $filename = "c:\la'la.mp3";    $filename = addslashes($filename);    $fp = fopen($filename,"r");?>

De addslashes heb ik moeten toevoegen omdat ik anders niet en een geneste directory kon komen. Maar toen kwam het probleem dat bestanden waarin een 'quote' voorkomt niet meer ingelezen kunnen worden. Ik krijg dan de volgende foutmelding:

Warning: fopen("c:\\la\'la.mp3", "r") - No such file or directory in c:\program files\apache group\apache\htdocs\test\mp3test.php on line 4

Dit is natuurlijk logisch omdat het bestand "la'la.mp3" heet en niet "la\'la.mp3"

Weet iemand hoe ik dit probleem kan oplossen zonder addslashed te moeten weghalen? Want anders werkt er nog meer niet. :?

  • Fatamorgana
  • Registratie: Augustus 2001
  • Laatst online: 07-08 04:17

Fatamorgana

Fietsen is gezond.

Misschien kun je met: str_replace gewoon alle \ vervangen door \\ dan blijft de rest onaangetast.

  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 20:36

Super_ik

haklust!

of probeer eens ' ipv " dus iets van $blaat = 'c:\koei.mp3' ipv $blaat = "c:\koei.mp3" oid

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • noot101
  • Registratie: Februari 2002
  • Laatst online: 10-01 13:54
Op vrijdag 24 mei 2002 10:49 schreef Fatamorgana het volgende:
Misschien kun je met: str_replace gewoon alle \ vervangen door \\ dan blijft de rest onaangetast.
Volgens mij heb ik het nu opgelost door de regel met addslashes te vervangen door:

$filename = str_replace("\\","\\\\","$filename");

Bedankt

  • NaliXL
  • Registratie: Maart 2002
  • Laatst online: 30-07 19:19
Probeer het eens met de korte directory/file namen. In iedere windows-versie is voor compatibiliteit met dos/win3x een verborgen 2e naam voor iedere directory ingebouwd die je kunt gebruiken. Probeer het maar eens door er een in de explorer in te typen... Een directory als "degrotebozetestdirectory" word dan "degrot~1" genoemd. Is er dan ook nog een directory die "degrotebozedirectorytwee" heet, dan word die "degrot~2" genoemd. Het zijn dus altijd de eerste 6 tekens van een directory/file, met spaties ge-negeerd. Bij een speciaal teken als een quote word standaard al eerder afgebroken. Bijvoorbeeld : "De 'quote directory" wordt "de~1" als ik het goed heb. Ditzelfde geldt allemaal voor files. Bijvoorbeeld "Wij gaan de teletubbies kelen.mp3" wordt "wijgaa~1.mp3". Succes! :7

Genoeg is meer dan veel, en tart den overvloed


  • noot101
  • Registratie: Februari 2002
  • Laatst online: 10-01 13:54
Op vrijdag 24 mei 2002 11:06 schreef NaliXL het volgende:
Probeer het eens met de korte directory/file namen.
[...]
Bij een speciaal teken als een quote word standaard al eerder afgebroken. Bijvoorbeeld : "De 'quote directory" wordt "de~1" als ik het goed heb. Ditzelfde geldt allemaal voor files. Bijvoorbeeld "Wij gaan de teletubbies kelen.mp3" wordt "wijgaa~1.mp3". Succes! :7
Nee dit werkt helaas niet:
krijg dan ook de foutmelding dat het bestand niet bestaat:

Warning: fopen("c:\\la~1.mp3", "r") - No such file or directory in c:\program files\apache group\apache\htdocs\test\mp3test.php on line 5

  • martinvw
  • Registratie: Februari 2002
  • Laatst online: 14-12-2025
Kijk eerst eens met behulp van een dos-box wat de dos-compatible bestandsnaam is. Dat hoeft namelijk geen la~1.mp3 te zijn.
code:
1
2
3
4
5
6
7
8
9
C:\>dir *.mp3

 Het volume in station C is HARDESCHIJF.
 Het volumenummer is 2764-13F9
 Map van C:\.

LA'LA    MP3         0  24-05-02  17:44 la'la.mp3
       1 bestand(en)          0 bytes.
       0 dir('s)      6.460,88 MB vrij

De dos compatible naam is dus gewoon la'la.mp3 dus je zult het echt op een andere manier moeten oplossen ben ik bang.
Kan je niet uitschakelen dat hij automagisch slashes toevoegt?
Pagina: 1