2010-11-19 15 views
0

ich diesen Code verwenden, um jedes Symbol in einem String mit unterschiedlichen Symbolen zu ändern:jedes Symbol in Zeichenfolge ändern

$test = "უნდა არ არ ყაზახმა ერთი ორსავეს დათვალიერებული. გულის ჩავარდნილი დაეძებდა მათი"; 
$qart = array("/ა/", "/ბ/", "/გ/", "/დ/", "/ე/", "/ვ/", "/ზ/", "/თ/", "/ი/", "/კ/", "/ლ/", "/მ/", "/ნ/", "/ო/", "/პ/", "/ჟ/", "/რ/", "/ს/", "/ტ/", "/უ/", "/ფ/", "/ქ/", "ღ", "/ყ/", "/შ/", "/ჩ/", "/ც/", "/ძ/", "/წ/", "/ჭ/", "/ხ/", "/ჯ/", "/:ჰ:/"); 
$eng = array("À","Á","Â", "Ã", "Ä", "Å", "Æ", "È", "É", "Ê", "Ë", "Ì", "Í", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Ö", "×", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "ã", "ä"); 
echo preg_replace($qart, $eng, $test); 

aber ich bekomme diese Fehlermeldung:

Warning: preg_replace() [ function.preg ersetzen]: Keine Endung Trennzeichen '' gefunden ...

Kann jemand bitte helfen?

+3

Warum verwenden Sie 'str_replace' nicht? – Gumbo

+1

ist Ihr Zeichensatz korrekt? –

+0

Was ist die vollständige Fehlermeldung? –

Antwort

4

Reguläre Ausdrücke sind nicht die ideale Lösung für den Austausch einzelner Zeichen. Verwenden Sie strtr:

$pairs = array (
    'ა' => 'À', 
    'ბ' => 'Á', 
    'გ' => 'Â', 
    // ... 
); 

$test = strtr($test, $pairs); 
+0

str_replace dann, nicht strstr – Andy

+2

@Andy Lesen Sie genau; 'strtr'! =' strstr' – meagar

+0

Haha! Ja, mein Schlechter! – Andy

0

versuchen Sie preg_replace/u Modifikator, wenn Ihre Zeichenfolge in UTF-8 ist.

0

Der Musterausdruck für PHP’s PCRE functionsdelimiters erfordern, die das Muster von optionalen Modifikatoren trennen. In Ihrem Fall hat einer der $qart Werte / nicht als Begrenzer (d. H. ).

Aber warum verwenden Sie sowieso reguläre Ausdrücke? Ich sehe keine Notwendigkeit, warum Sie keinen einfachen String-Ersatz mit str_replace verwenden. Es kann Arrays für die Suche und den Ersatz auch nehmen.

Verwandte Themen