更改字符串中的每个符号

发布于 2024-10-03 13:23:45 字数 752 浏览 6 评论 0 原文

我使用此代码将字符串中的每个符号更改为不同的符号:

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

但我收到此错误消息:

警告:preg_replace() [function.preg-replace]:没有结尾 分隔符“�”发现于...

任何人都可以帮忙吗?

I use this code to change each symbol in a string with different symbol:

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

but I get this error message:

Warning: preg_replace()
[function.preg-replace]: No ending
delimiter '�' found in ...

Can anyone please help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

千秋岁 2024-10-10 13:23:45

正则表达式不是单个字符替换的理想解决方案。使用 strtr

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

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

Regular expressions are not the ideal solution for single character replacement. Use strtr:

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

$test = strtr($test, $pairs);
蓝天 2024-10-10 13:23:45

如果您的字符串采用 UTF-8 格式,请尝试 preg_replace /u 修饰符。

try preg_replace /u modifier if your string is in UTF-8.

初见 2024-10-10 13:23:45

PHP 的 PCRE 函数 的模式表达式需要 分隔符 将模式与可选修饰符分开。在您的情况下,$qart 值之一没有 / 作为分隔符(即 )。

但为什么还要使用正则表达式呢?我不认为您没有必要使用 str_replace 进行简单的字符串替换。它也可以使用数组进行搜索和替换。

The pattern expression for PHP’s PCRE functions require delimiters that separate the pattern from optional modifiers. In your case one of the $qart values does not have / as delimiters (i.e. ).

But why do you use regular expressions anyway? I don’t see a need why you don’t use simple string replacement with str_replace. It can take arrays for the search and replacement too.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文