如何使用PHP替换阿拉伯字母的初始形式


How to replace the initial form of an Arabic letter using PHP?

我有一个阿拉伯语文本,想要替换"Initial"&某些字母(并非所有形式)与其他字母或字符的"中间"形式;

示例:

$text = '...وقد تم تصميم وبناء جميع مكونات الطائرة';

我需要用另一个字母替换单词"تم"中字母"ب"的首字母形式;可用的"مكٚات",即本字母的最终形式,不应被替换。

字符码(Unicode)似乎不能在str_replace()中用于查找特定形式的字母并替换它

注:

大多数阿拉伯语字母都有不同的缩写:

  • 声母形式:用于单词的开头,如"تم"中的"ب"
  • 词中形式:用在词的中间,如"ن"中的"ت"
  • 词尾形式:用在单词的最后,如"مكان"中的"ت"

有关更多信息,请访问wikipedia.org。

这里我给出了一段代码。。希望能为您服务$text = '...وقد تم تصميم وبناء جميع مكونات الطائرة'; $a=array('ت','تم'); $b=array('ت','مكونات');`` echo str_replace($a,$b,$text);

字母形式仅用于输出。它们不应该以这种方式存储和/或操作。你应该想办法做你想做的事。

尝试RegExp。这可能会对你有所帮助。http://php.net/manual/en/regexp.reference.unicode.php

或者,如果你坚持使用str_replace,你可以这样做。

str_replace(
  ' ت',
  ' وت',
  $string
);