最近警察成立網軍,為了避免資訊被蒐集,所以就有人做了橫書轉直書的程式,還滿受歡迎的。雖然沒有公布原始碼,可是一看就知道原理,這個程式並不難,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]= "&nbsp;".$a[$i]."&nbsp;";//半形的話補空格,讓版面不會跑掉
}
$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 "&nbsp;&nbsp;&nbsp;&nbsp; ";
	echo $a[$temp]." ";//輸出每行第一個字
	for($j=1;$j<$row;$j++)//開始跑列
	{
		$temp=$temp-$column;//找到每列的下一個字
		echo $a[$temp]." ";//輸出每列的下一個字
	}
	echo "<BR>";//換段
	$temp=$temp+$first_str;//暫存數跑到一列
}
?>
,

okplaymayday 發表在 痞客邦 PIXNET 留言(0) 人氣()