Ich habe eine MySQL-Datenbank mit Buchtiteln sowohl in Englisch als auch in Arabisch und verwende eine PHP-Klasse, die arabischen Text automatisch in lateinische Schrift umwandeln kann.
Ich möchte, dass mein Ausgabe-HTML ungefähr so aussieht:
Ein Buch
(kitaab)
Ein weiteres Buch
Gibt es einen Weg für PHP, die Sprache eines Strings anhand der Unicode-Zeichen und Glyphen, die darin verwendet werden, zu bestimmen? Ich versuche etwas wie das zu bekommen:
$Ar = new Arabic('EnTransliteration');
while ($item = mysql_fetch_array($results)) {
...
if (some test to see if $item['item_title'] has Arabic glyphs in it) {
echo "$item[item_title] (" . $Ar->ar2en($item['item_title']) . ")";
} else {
echo "$item[item_title]";
}
...
}
Zum Glück blockiert die Klasse nicht, wenn sie mit lateinischen Zeichen gefüttert wird, also könnte ich theoretisch jedes Ergebnis durch die Transformation schicken, aber das scheint wie eine Verschwendung von Ressourcen.
Danke!
Bearbeitung: Ich habe immer noch keinen Weg gefunden, um nach Glyphen oder Zeichen zu suchen. Ich könnte alle arabischen Zeichen in ein Array packen und prüfen, ob etwas im Array mit einem Teil des Strings übereinstimmt...
Ich habe jedoch eine Übergangslösung gefunden, die am Ende gut funktionieren könnte. Sie durchläuft jeden Titel durch die Transformation, unabhängig von der Sprache, gibt jedoch nur die klammernde Transliteration aus, wenn der String geändert wurde:
while ($item = mysql_fetch_array($mysql_results)) {
$transliterate = trim(strtolower($Ar->ar2en($item['item_title'])));
$item_title = (strtolower($item['item_title']) == $transliterate) ? $item['item_title'] : $item['item_title'] . " ($transliterate)";
echo "$item_title";
}