最近警察成立網軍,為了避免資訊被蒐集,所以就有人做了橫書轉直書的程式,還滿受歡迎的。雖然沒有公布原始碼,可是一看就知道原理,這個程式並不難,5分鐘就可以寫完,程式碼如下。我也加了註解,有需要就可以拿去玩玩看,但我的半形空格沒處理的很完美,版面會有點歪。除了這個簡易版,我還順便寫了S型、螺旋型轉換,可是還沒完成就是了。
在框框裡不好玩,直接前往網站:http://studentweb.ncnu.edu.tw/100105503/funny/column_word.php
<? $str="床前明月光,疑是地上霜。舉頭望明月,低頭思故鄉。";//要輸入的字串 $total_str=mb_strlen($str,'utf-8');//計算字串總數 for($i=1;$i<=$total_str;$i++)//將字串逐一帶入陣列 { $a[$i]=mb_substr($str,$i-1,1,'utf-8'); if (strlen($a[$i])==1)//判斷半形或全形 $a[$i]= " ".$a[$i]." ";//半形的話補空格,讓版面不會跑掉 } $column=6;//輸入每行要幾個字數 $row=ceil($total_str/$column);//總列數,無條件進位 $rem=$total_str%$column;//取餘數的目的是找到第一個字在哪 if($rem==0)//排除整除的情況 $rem=$column; $first_str=$total_str-$rem+1;//找出第一個字 $temp=$first_str;//暫存數 for($i=0;$i<$column;$i++)//開始跑行 { if($temp>$total_str)//溢位補空 echo " "; echo $a[$temp]." ";//輸出每行第一個字 for($j=1;$j<$row;$j++)//開始跑列 { $temp=$temp-$column;//找到每列的下一個字 echo $a[$temp]." ";//輸出每列的下一個字 } echo "<BR>";//換段 $temp=$temp+$first_str;//暫存數跑到一列 } ?>
文章標籤
全站熱搜