如何制作php mb_str_ireplace()
如何做这样的事情:如何制作php mb_str_ireplace(),php,string,replace,Php,String,Replace,如何做这样的事情: mb_str_ireplace( $search, $openTag.$replace.$closeTag, $subject, "UTF-8" ); mb_str_ireplace($search,$replace,$subject,“UTF-8”) 这个函数在PHP中不存在,但我需要具有不区分大小写且与UTF-8兼容的函数 例如: 我想更改$search->$replace: GŁOŚNIKI -> speakers; Głośni
mb_str_ireplace(
$search,
$openTag.$replace.$closeTag,
$subject,
"UTF-8"
);
mb_str_ireplace($search,$replace,$subject,“UTF-8”)代码>
这个函数在PHP中不存在,但我需要具有不区分大小写且与UTF-8兼容的函数
例如:
我想更改$search->$replace:
GŁOŚNIKI -> speakers;
Głośniki -> speakers;
głośniki -> speakers;
gŁoŚniki -> speakers;
编辑:
德克塞的回答
$text=preg_replace('/głośniki/ui','speakers',$text)代码>
这对以前的病例很好。但我还有一个问题
我想将所有以前版本的“głośniki”
更改为głośniki
u
标志用于UTF-8处理,i
标志用于区分大小写
u
标志用于UTF-8处理,i
用于大小写不敏感。根据您的编辑,您希望deceze的方法可用于动态变量,而无需声明所有变量。这是非常简单的,包括:
根据您的编辑,您希望deceze的方法可用于动态变量,而无需声明所有变量。这是非常简单的,包括:
未来用户注意:这说明了UTF-8中的文本(这似乎也是OP在他的mb_stru_ireplace
测试中使用的)。没有正则表达式如何解决这个问题?如果指针行中的字符寄存器不能更改(!)。请注意:这说明了UTF-8中的文本(这似乎也是OP在他的mb\u stru\u ireplace
test中使用的)。没有正则表达式如何解决此问题?如果指针行中的字符寄存器不能更改(!)。根据您的编辑,只需替换为głośniki
?głośniki不是常量字。foreach($words as$word){…$search=$word;$replace=mb_strtolower($word,“UTF-8”)}根据您的编辑,只需替换为głośniki
?głośniki不是const word。foreach($words作为$word){…$search=$word;$replace=mb_strtolower($word,“UTF-8”);)
mb_str_ireplace(
$search,
$openTag.$replace.$closeTag,
$subject,
"UTF-8"
);
$text = preg_replace('/głośniki/ui', 'speakers', $text);
<?php
header('Content-type: text/plain;');
$string = 'I have a string with a gŁoŚniki word. Pretty interesting';
$word = 'Głośniki';
$string = preg_replace_callback('/(' . preg_quote($word, '/') . ')/ui', function($match) {
return '<speakers>' . mb_strtolower($match[1], 'UTF-8') . '</speakers>';
}, $string);
var_dump($string);
string(79) "I have a string with a <speakers>głośniki</speakers> word. Pretty interesting"