2012-04-24 17 views
0

文字列から特殊文字を抽出しようとしていますが、その文字列が逆の疑問符で始まる場合、最初に "matches"が返されます特別なものを含めて2つの文字。例えば:この例ではpreg_matchは1つだけ一致する必要がある場合は2文字に一致します

$string = '¿hola?'; 

$string2 = mb_convert_encoding($string, 'UTF-8'); 
$regex = mb_convert_encoding('/[a-zäáàëéèíìöóòúùñç]/', 'UTF-8'); 

if(preg_match($regex, $string2, $matches, PREG_OFFSET_CAPTURE)) 
{ 

    //--> We pick the special characters into "$resultado1": 
    $resultado1 = mb_substr($string, 0, $matches[0][1],'UTF-8'); 

    return $resultado1; 
} 

、関数が返すは「¿H」が、は「¿」期待されていた...私は、問題を把握することはできません...

答えて

0

は、使用してみてください/[a-zäáàëéèíìöóòúùñç]/u

静的な文字列でmb_convert_encodingを使用するのではなく、ファイルをUTF-8で保存することをお勧めします(詳細はthis pageを参照)。

関連する問題