PHP dosyaları ve utf8 ile çalışma

0 Cevap php

Bu beni deli ediyor.

Ben foo.txt utf8 kodlanmış adında bir dosya var diyelim:

aoeu  
qjkx
ñpyf

Ve ben bütün harfleri aoeuñpyf var dosyada satırları (dizin başına bir satır), ve bu harflerle, yalnızca satırları içeren bir dizi almak istiyorum.

Ben (de utf8 olarak kodlanmış) aşağıdaki kodu yazdı:

$allowed_letters=array("a","o","e","u","ñ","p","y","f");

$lines=array();
$f=fopen("foo.txt","r");
while(!feof($f)){
    $line=fgets($f);
    foreach(preg_split("//",$line,-1,PREG_SPLIT_NO_EMPTY) as $letter){
        if(!in_array($letter,$allowed_letters)){
            $line="";
        }
    }
    if($line!=""){
        $lines[]=$line;
    }
}
fclose($f);

However, after that, the $lines array just has the aoeu line in it.
This seems to be because somehow, the "ñ" in $allowed_letters is not the same as the "ñ" in foo.txt.
Also if I print a "ñ" of the file, a question mark appears, but if I print it like this print "ñ";, it works.
How can I make it work?

0 Cevap