Ben bezig een script te schrijven om vanaf internet mijn muziek te benaderen. (Om het vervolgens af te spelen en te streamen.)
Ik draai locaal apache/php onder windows XP.
Voor het browsen van mijn harde schijf maak ik een array van het programma 'dir', met wat argumenten. Voorbeeld:
Werkt prima en na een aantal extra handelingen heb ik een prima lopend script.
Het probleem doet zich echter voor bij een aantal folders met bijzondere tekens erin. (bijvoorbeeld Múm wordt M£m).
Het probleem wordt veroorzaakt door de encoding van 'dir' ... als je namelijk 'dir > output.txt' doet en vervolgens output.txt opent met notepad dan worden de symbolen al verkeerd weergegeven. Na een aantal google queries ben ik erachter gekomen dat dit komt doordat de output cp-1251 ge-encode is.
Ik heb op een aantal manieren geprobeerd om het goed te krijgen, maar allen tot geen baat:
iconv() en html_entity_decode() werkten allebei niet. Ook een search op het tweakers board/google kon me niet verder helpen.
Het enige wat ik kan bedenken is om met str_replace() dit soort tekens aan te passen, maar dat is niet elegant en kan weer andere problemen veroorzaken.
Heeft er iemand raad of een oplossing?
Ik draai locaal apache/php onder windows XP.
Voor het browsen van mijn harde schijf maak ik een array van het programma 'dir', met wat argumenten. Voorbeeld:
code:
1
2
3
| <?php $folders=explode("\n", `dir /a:d /o:n /b $workdir`); ?> |
Werkt prima en na een aantal extra handelingen heb ik een prima lopend script.
Het probleem doet zich echter voor bij een aantal folders met bijzondere tekens erin. (bijvoorbeeld Múm wordt M£m).
Het probleem wordt veroorzaakt door de encoding van 'dir' ... als je namelijk 'dir > output.txt' doet en vervolgens output.txt opent met notepad dan worden de symbolen al verkeerd weergegeven. Na een aantal google queries ben ik erachter gekomen dat dit komt doordat de output cp-1251 ge-encode is.
Ik heb op een aantal manieren geprobeerd om het goed te krijgen, maar allen tot geen baat:
iconv() en html_entity_decode() werkten allebei niet. Ook een search op het tweakers board/google kon me niet verder helpen.
Het enige wat ik kan bedenken is om met str_replace() dit soort tekens aan te passen, maar dat is niet elegant en kan weer andere problemen veroorzaken.
Heeft er iemand raad of een oplossing?