Ik heb een website gemaakt waarvan de content via txt files geupdate kan worden.
Diegene die de website bijhoudt doet dit nu vanaf een mac, slaat dit op als unicode txt bestanden en opent hem dan op een windows pc in notepad en slaat het dan als een gewoon txt bestand op zodat de linux server waar de website op draait hem normaal in kan lezen.
De bedoeling is dat deze tussenstap er tussenuit gehaald wordt. Ik nam aan dat het enige verschil in txt bestand was dat de endline een andere code is op de mac. Blijkbaar zijn er meer dingen waar rekening mee gehouden dient te worden.
De code:
1 2 3 4 5 6 | <?php ini_set('auto_detect_line_endings', true); $return = file($txtpath); for($i=0;$i<sizeof($return);$i++) $return[$i] = utf8_decode($return[$i]); ?> |
Als ik dan een print_r() doe van $return krijg ik dit: (dit zijn de eerste twee, de rest is uiteraard net zo)
1 | Array ( [0] => ?ndrukwekkendenieuwbouwinEnter [1] => Culisserichtzichopproductontwikkeling |
Die Byte Order Mark aan het begin pakt ie niet helemaal lekker met utf8_decode. Hiervoor had ik wel een inleesmethode die de eerste 3 bytes overslaat. De output daarvan kan ik echter niet gebruiken in file, omdat file een path naar een textfile wil hebben. Of ik zou dus eerst de textfile moeten open, aanpassen en weer opslaan. imho een beetje overdreven.
Ook pakt ie de spaties nog steeds niet lekker. Nog steeds beetje naar dus. Heeft iemand misschien nog een idee?
Test je filmkennis! Speel mee met
FOK! Movie Trivia en win
prijzen!