PHP Regex Preg_replace希伯来语Unicode到另一个Unicode

问题描述:

我需要将3个希伯来语Unicode字符替换为另外3个希伯来语Unicode字符。我研究了PHP语法并进行了搜索,但这是我写得最好的。它的工作和完成这项工作。PHP Regex Preg_replace希伯来语Unicode到另一个Unicode

我想知道,想知道这是否是替换Unicode字符到PHP另一Unicode字符的最优化的方式,我把它变成一个小小的功能之前。

PHP中有更好的语法吗?

$re1 = '/[\x{05B1}]/u'; 
$re2 = '/[\x{05B2}]/u'; 
$re3 = '/[\x{05B3}]/u'; 

$subst1 = json_decode('"\u05B6"'); 
$subst2 = json_decode('"\u05B0"'); 
$subst3 = json_decode('"\u05B8"'); 

//Replace (Niqqud with Cantillation) with (just Niqqud) 
$bible_content = preg_replace($re1, $subst1, $bible_content); 
$bible_content = preg_replace($re2, $subst2, $bible_content); 
$bible_content = preg_replace($re3, $subst3, $bible_content); 

开始输入$ bible_content:

וַ/יִּקְרָאאֱלֹהִיםלָ/אוֹריוֹםוְ/לַ/חֹשֶׁךְקָרָאלָיְלָהוַ/יְהִיעֶרֶבוַ/יְהִיבֹקֶריוֹםאֶחָד: אַשְׁרֵיהָ/אִישׁאֲשֶׁרלֹא הָלַךְבַּ/עֲצַתרְשָׁעִיםוּ/בְ/דֶרֶךְחַטָּאִיםלֹאעָמָדוּ/בְ/מוֹשַׁבלֵצִיםלֹאיָשָׁב: חֳ

预计输出$ bible_content:

וַ/יִּקְרָאאֶלֹהִיםלָ/אוֹריוֹםוְ/לַ/חֹשֶׁךְקָרָאלָיְלָהוַ/יְהִיעֶרֶבוַ/יְהִיבֹקֶריוֹםאֶחָד: אַשְׁרֵיהָ/אִישׁאְשֶׁרלֹאהָלַךְבַּ/עְצַתרְשָׁעִיםוּ/בְ/דֶרֶךְחַטָּאִים下面是一个简单的例子: חָ

+0

当我在线测试时,您的代码似乎不起作用。在这个代码块之前是否有其他的字符集声明(或类似的)?在线测试:http://sandbox.onlinephpfunctions.com/code/00399e52af826fdd448679ed568e01d842e81920 – mickmackusa

+0

我编辑了输入和输出。正斜线可以在那里。 –

+0

第三个很难找到..我只是把一个字母作为例子在最后,现在它应该有全部3个字符。 –

PHP 7.0为字符串文字中的Unicode字符提供了一种新的语法。此外,您可以使用strtr函数处理字符到字符的替换。现在

$from = "\u{05B1}\u{05B2}\u{05B3}"; 
$to = "\u{05B6}\u{05B0}\u{05B8}"; 

echo strtr($bible_content, $from, $to). "\n"; 

,我看不懂希伯来语(甚至让它流正常RTL,显然是:P),所以你必须要判断是否做了正确的事情与否。

+0

这个工作对发现PHP 7.0!非常感谢 !!! –

+0

刚刚注意.. 06B0应该是05B0为$,以防其他人想要代码并尝试.. –

+0

修复了错字,谢谢。 (很明显,我不能区分:P) – Amadan