1

我正在尝试将字符串中的每个字符替换为相反的字符,但以下代码仅将字符替换为字符,但它无法识别 ASCII 代码。

你能帮我么?你能告诉我为什么吗?我曾尝试使用 chr 函数,但它不起作用。它什么也没告诉我。

这是我的代码:

<?php
function flip($v)
{
    $flipped="";
    $size=strlen($v);

    $array=str_split($v,1); 

    for($i=0;$i<$size;$i++)
    {
        switch($array[$i])
            {
                case 'a': $flipped .= '\u0250';
                            break;
                case 'b' : $flipped .='q';
                            break;
                case 'c' : $flipped .='\u0254';
                            break;
                case 'd': $flipped .='p';
                            break;
                case 'e': $flipped .='\u01DD';
                            break;
                case 'f': $flipped .='\u025F';
                            break;
                case 'g' : $flipped .='\u0183';
                            break;
                case 'h': $flipped .='\u0265';
                            break;
                case 'i' : $flipped .='\u0131';
                            break;
                case 'j' : $flipped .='\u027E';
                            break;
                case 'k' : $flipped .='\u029E';
                            break;
                case 'l' : $flipped .='\u0283';
                            break;
                case 'm' : $flipped .='\u026F';
                            break;
                case 'n' : $flipped .='u';
                            break;
                case 'r' : $flipped .='\u0279';
                            break;
                case 't' : $flipped .='\u0287';
                            break;
                case 'v' : $flipped .='\u028C';
                            break;
                case 'w' : $flipped .='\u028D';
                            break;
                case 'y' : $flipped .='\u028E';
                            break;
                case '.' : $flipped .='\u02D9';
                            break;
                case '[' : $flipped .=']';
                            break;
                case '(' : $flipped .=')';
                            break;
                case '{' : $flipped .='}';
                            break;
                case '?' : $flipped .='\u00BF';
                            break;
                case '!' : $flipped .='\u00A1';
                            break;
                case "\'" : $flipped .=',';
                            break;
                case '<' : $flipped .='>';
                            break;
                case '_' : $flipped .='\u203E';
                            break;
                case ';' : $flipped .='\u061B';
                            break;
                case '\u203F' : $flipped .='\u2040';
                            break;
                case '\u2045' : $flipped .='\u2046';
                            break;
                case '\u2234' : $flipped .='\u2235';
                            break;
                case '\r' : $flipped .='\n';
                            break;
                case ' ' : $flipped .=''; 
                            break;  
            }
    }

return $flipped;
}

echo flip("abcdefghijklmnopqrst");
?>

谢谢!

4

1 回答 1

2

将它们更改为 htmlentity 之类的,

case 'a': $flipped .= '&#592;';
break;
case 'b' : $flipped .='q';
break;
case 'c' : $flipped .='&#596;';
break; etc....
于 2012-11-12T16:25:02.997 回答