2012-11-12 49 views
1

我試圖用相反的字符串替換每個字符,但下面的代碼只替換字符但它確實不識別ASCII碼。我已經創建了一個函數,應該在PHP中水平翻轉文本,但有些不起作用

你能幫我嗎?你能告訴我爲什麼?我曾嘗試使用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"); 
?> 

謝謝!

+0

部件缺失。 –

+0

@Louis H.向下滾動php代碼。或者告訴我哪些部分? –

+0

它沒有顯示功能標題。似乎現在好了。 (可能有些格式錯誤)。 –

回答

2

改變他們htmlentity一樣,你的函數

case 'a': $flipped .= '&#592;'; 
break; 
case 'b' : $flipped .='q'; 
break; 
case 'c' : $flipped .='&#596;'; 
break; etc.... 
+0

非常感謝! –

+1

不客氣。如果你需要轉換的幫助,這裏有一個[鏈接](http://www.fileformat.info/info/unicode/char/254/index.htm),這可能會有所幫助。 – itachi

+0

你能告訴我請問哪裏可以找到代碼表?因爲我也需要翻轉數字的代碼,我想完成我的功能。再次感謝 ! –

相關問題