如何为我的函数编写测试用例?PHP
我需要为这个函数编写一个测试用例,但我似乎无法正确地得到它。我正在测试我的本地机器,如果这意味着什么如何为我的函数编写测试用例?PHP,php,regex,foreach,preg-replace,str-replace,Php,Regex,Foreach,Preg Replace,Str Replace,我需要为这个函数编写一个测试用例,但我似乎无法正确地得到它。我正在测试我的本地机器,如果这意味着什么 function cleanEncoding($a) // Replace specified foreign character with equivalent english character { $filter = ['"' => '"', '"' => '"', '&' => '&'
function cleanEncoding($a)
// Replace specified foreign character with equivalent english character
{ $filter = ['"' => '"',
'"' => '"',
'&' => '&',
'&' => '&',
'<' => '<',
'&#lt;' => '<',
'>' => '>',
'&#gt;' => '>',
' ' => ' ',
'à' => 'a',
'á' => 'a',
'â' => 'a',
'ã' => 'a',
'ä' => 'a',
'å' => 'a',
'æ' => 'a',
'ç' => 'c',
'è' => 'e',
'é' => 'e',
'ê' => 'e',
'ë' => 'e',
'ì' => 'i',
'í' => 'i',
'î' => 'i',
'ï' => 'i',
'ñ' => 'n',
'ð' => 'o',
'ò' => 'o',
'ó' => 'o',
'ô' => 'o',
'õ' => 'o',
'ö' => 'o',
'ø' => 'o',
'ù' => 'u',
'ú' => 'u',
'û' => 'u',
'ü' => 'u',
'ý' => 'y',
'ÿ' => 'y',
'œ' => 'oe',
'š' => 's',
'À' => 'A',
'Á' => 'A',
'Â' => 'A',
'Ã' => 'A',
'Ä' => 'A',
'Å' => 'A',
'Æ' => 'A',
'Ç' => 'C',
'È' => 'E',
'É' => 'E',
'Ê' => 'E',
'Ë' => 'E',
'Ì' => 'I',
'Í' => 'I',
'Î' => 'I',
'Ï' => 'I',
'Ñ' => 'N',
'Ò' => 'O',
'Ó' => 'O',
'Ô' => 'O',
'Õ' => 'O',
'Ö' => 'O',
'Ø' => 'O',
'Ù' => 'U',
'Ú' => 'U',
'Û' => 'U',
'Ü' => 'U',
'Ý' => 'Y',
'Ÿ' => 'Y',
'Œ' => 'OE',
'Š' => 'S',];
// replace foreign character with equivalent english character
foreach ($filter as $b => $c) {
$d = str_replace($b, $c, $a);
}
// deletes foreign character that was not found
$d = preg_replace(("/&#[0-9]*;/","",$a);
return ($a);
}
正如其他人指出的,您的
str\u replace
、preg\u replace
和return
似乎有问题
在过滤器上迭代:
foreach ($filter as $key => $value) {
$a = str_replace($key, $value, $a);
}
然后用空白字符串替换未找到的任何字符串:
$a=preg#u replace(“/[0-9]*;/”,“”,$a)代码>
然后返回该字符串:
返回$a代码>试试这个,你的代码有一些语法错误
function cleanEncoding($a){
// Replace specified foreign character with equivalent english character
$filter = Array('"' => '"',
'"' => '"',
'&' => '&',
'&' => '&',
'<' => '<',
'&#lt;' => '<',
'>' => '>',
'&#gt;' => '>',
' ' => ' ',
'à' => 'a',
'á' => 'a',
'â' => 'a',
'ã' => 'a',
'ä' => 'a',
'å' => 'a',
'æ' => 'a',
'ç' => 'c',
'è' => 'e',
'é' => 'e',
'ê' => 'e',
'ë' => 'e',
'ì' => 'i',
'í' => 'i',
'î' => 'i',
'ï' => 'i',
'ñ' => 'n',
'ð' => 'o',
'ò' => 'o',
'ó' => 'o',
'ô' => 'o',
'õ' => 'o',
'ö' => 'o',
'ø' => 'o',
'ù' => 'u',
'ú' => 'u',
'û' => 'u',
'ü' => 'u',
'ý' => 'y',
'ÿ' => 'y',
'œ' => 'oe',
'š' => 's',
'À' => 'A',
'Á' => 'A',
'Â' => 'A',
'Ã' => 'A',
'Ä' => 'A',
'Å' => 'A',
'Æ' => 'A',
'Ç' => 'C',
'È' => 'E',
'É' => 'E',
'Ê' => 'E',
'Ë' => 'E',
'Ì' => 'I',
'Í' => 'I',
'Î' => 'I',
'Ï' => 'I',
'Ñ' => 'N',
'Ò' => 'O',
'Ó' => 'O',
'Ô' => 'O',
'Õ' => 'O',
'Ö' => 'O',
'Ø' => 'O',
'Ù' => 'U',
'Ú' => 'U',
'Û' => 'U',
'Ü' => 'U',
'Ý' => 'Y',
'Ÿ' => 'Y',
'Œ' => 'OE',
'Š' => 'S');
// replace foreign character with equivalent english character
$d=$a;
foreach ($filter as $b => $c) {
$d = str_replace($b, $c, $d);
}
// deletes foreign character that was not found
$d = preg_replace("/&#[0-9]*;/","",$d);
return ($d);
}
$a = 'Hêllø Wôrld!$';
$e = cleanEncoding($a);
echo $e;
函数清除编码($a){
//将指定的外来字符替换为等效的英文字符
$filter=Array('";'=>''”,
'"' => '"',
'&' => '&',
'&' => '&',
'<' => '',
“gt;”=>“>”,
' ' => ' ',
"a",,
"a",,
"a",,
"a",,
"a",,
“å;”=>“a”,
"a",,
"c",,
“è;”=>“e”,
“é;”=>e”,
“ê;”=>“e”,
“ë;”=>“e”,
“ì;”=>“我”,
“í;”=>“我”,
“î;”=>“我”,
“ï;”=>“我”,
“ñ;”=>“n”,
“ð;”=>“o”,
“ò;”=>o,
“ó;”=>o”,
“ô;”=>“o”,
“õ;”=>“o”,
“ö;”=>o”,
“ø;”=>o,
“ù;”=>“u”,
“ú;”=>“u”,
“û;”=>“u”,
“ü;”=>“u”,
“ý;”=>y,
“ÿ;”=>y,
“œ;”=>“oe”,
“š;”=>“s”,
“À;”=>“A”,
"A",,
"A",,
“Ã;”=>A,
"A",,
"A",,
"A",,
"C",,
“È;”=>E,
“É;”=>“E”,
“Ê;”=>“E”,
“Ë;”=>E,
“Ì;”=>“我”,
“Í;”=>“我”,
“Î;”=>“我”,
“Ï;”=>“我”,
“Ñ;”=>N”,
“Ò;”=>O”,
“Ó;”=>O,
“Ô;”=>O”,
“Õ;”=>O”,
“Ö;”=>O”,
“Ø;”=>O”,
“Ù;”=>“U”,
“Ú;”=>“U”,
“Û;”=>“U”,
“Ü;”=>“U”,
“Ý;”=>Y,
“Ÿ;”=>“Y”,
“Œ;”=>“OE”,
"S",;
//将外来字符替换为等效的英文字符
$d=$a;
foreach($b=>c的过滤器){
$d=str_替换($b,$c,$d);
}
//删除未找到的外来字符
$d=预替换(“/[0-9]*;/”,“”,$d);
回报(d美元);
}
$a='Hê;llø;Wô;rld!$;';
$e=清洁编码($a);
echo$e;
您在$d中替换外来字符,但返回$a。难怪外来字符仍然存在。而且您需要在$d
上执行str\u replace
而不是$a
。是的,他执行str\u replace和preg\u replace操作。
function cleanEncoding($a){
// Replace specified foreign character with equivalent english character
$filter = Array('"' => '"',
'"' => '"',
'&' => '&',
'&' => '&',
'<' => '<',
'&#lt;' => '<',
'>' => '>',
'&#gt;' => '>',
' ' => ' ',
'à' => 'a',
'á' => 'a',
'â' => 'a',
'ã' => 'a',
'ä' => 'a',
'å' => 'a',
'æ' => 'a',
'ç' => 'c',
'è' => 'e',
'é' => 'e',
'ê' => 'e',
'ë' => 'e',
'ì' => 'i',
'í' => 'i',
'î' => 'i',
'ï' => 'i',
'ñ' => 'n',
'ð' => 'o',
'ò' => 'o',
'ó' => 'o',
'ô' => 'o',
'õ' => 'o',
'ö' => 'o',
'ø' => 'o',
'ù' => 'u',
'ú' => 'u',
'û' => 'u',
'ü' => 'u',
'ý' => 'y',
'ÿ' => 'y',
'œ' => 'oe',
'š' => 's',
'À' => 'A',
'Á' => 'A',
'Â' => 'A',
'Ã' => 'A',
'Ä' => 'A',
'Å' => 'A',
'Æ' => 'A',
'Ç' => 'C',
'È' => 'E',
'É' => 'E',
'Ê' => 'E',
'Ë' => 'E',
'Ì' => 'I',
'Í' => 'I',
'Î' => 'I',
'Ï' => 'I',
'Ñ' => 'N',
'Ò' => 'O',
'Ó' => 'O',
'Ô' => 'O',
'Õ' => 'O',
'Ö' => 'O',
'Ø' => 'O',
'Ù' => 'U',
'Ú' => 'U',
'Û' => 'U',
'Ü' => 'U',
'Ý' => 'Y',
'Ÿ' => 'Y',
'Œ' => 'OE',
'Š' => 'S');
// replace foreign character with equivalent english character
$d=$a;
foreach ($filter as $b => $c) {
$d = str_replace($b, $c, $d);
}
// deletes foreign character that was not found
$d = preg_replace("/&#[0-9]*;/","",$d);
return ($d);
}
$a = 'Hêllø Wôrld!$';
$e = cleanEncoding($a);
echo $e;