我如何更正此PHP脚本? [英] How I do correct this PHP script?
本文介绍了我如何更正此PHP脚本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这个脚本是不敏感的,当我输入Pear来响应给出不正确的结果Pupil时。何它工作正确并将结果转换为utf-8?当我输入Саша
作为回应我给出结果???????而不是Михаил
This script is "insensitive" and when I enter "Pear" to response a give uncorrect result "Pupil". Ho do it work correct and convert result to utf-8? When I enter "Саша"
in response i give result "???????" and not "Михаил"
$data = 'Олег Саша Тимур they are students';
$search = array("they are","Олег","Саша","pear");
$replace = array("the're","Коля","Михаил","pupil");
$arr = array_combine($search, $replace);
$pat = '/\b(?:' . implode("|", array_keys($arr)) . ')\b/i';
$data = preg_replace_callback($pat, function($matches) use ($arr)
{ $i=0;
return !empty($arr[strtolower($matches[0])]) ?join('',array_map(function($char) use ($matches, &$i)
{
return ctype_lower($matches[0][$i++])?strtolower($char):strtoupper($char);
}, str_split($arr[strtolower($matches[0])]))) : $matches[0];
}, $q);
echo $data;
我的尝试:
What I have tried:
$data = 'Олег Саша Тимур they are students';
$data = mb_convert_encoding($data, "UTF-8");
$search = array("they are","Олег","Саша","pear");
$replace = array("the're","Коля","Михаил","pupil");
$search = array_map("utf8_encode", $search);
$replace = array_map("utf8_encode", $replace);
$arr = array_combine($search, $replace);
$arr = array_map("utf8_encode", $arr);
$pat = '/\b(?:' . implode("|", array_keys($arr)) . ')\b/i';
$data = preg_replace_callback($pat, function($matches) use ($arr)
{ $i=0;
return !empty($arr[mb_strtolower($matches[0])]) ?join('',array_map(function($char) use ($matches, &$i)
{
return ctype_lower($matches[0][$i++])?mb_strtolower($char):mb_strtoupper($char);
}, str_split($arr[mb_strtolower($matches[0])]))) : $matches[0];
}, $q);
$data = mb_convert_encoding($hint, "UTF-8");
echo $data;
推荐答案
数据 = ' < span class =code-string>ОлегСашаТимур他们是学生;
data = 'Олег Саша Тимур they are students';
search = array( 它们是, Олег, Саша, 梨跨度>);
search = array("they are","Олег","Саша","pear");
replace = array( the're, Коля,< span class =code-string> Михаил, 瞳跨度>);
replace = array("the're","Коля","Михаил","pupil");
这篇关于我如何更正此PHP脚本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文