BOB's Development Daily

星期日, 10月 29, 2006

[PHP]利用空白產生三角形


論壇上有人問:要怎麼修改讓它先產生遞減空白,後產生遞增字串
讓他成一個反三角型?
a
ab
abc
abcd


剛剛試了一下,若要照你說的方式在網頁上來執行的話,實在有點麻煩!
一、空白的問題,雖然用全形空白,不過,英文字母卻是半形;若英文字母也用全形,這樣一來就得安裝multi string 的extension才可行。ex:

<?php
$word="abcde";
$j = mb_strlen($word, "big5");
for($i=1;$i<=$j;$i++){
$space = str_repeat(" ", $j-$i);
//$space = str_repeat("<font color='white'>a</font>", $j-$i);
$x = mb_substr($word,0,$i, "big5");
echo $space .$x .'<br>';
}
?>


二、若是使用半形空白 + 半形英文字母,不管程式邏輯多正確,都很難"正確"的顯示結果,若是 Window Form或DOS的程式倒是沒有這種困擾。

三、利用HTML的特殊字元 「&nbsp」來取代半形空白,嗯!很抱歉,出來的畫面只達到要求的一半…ex:


<?php
$word="abcde";
$j = strlen($word);


for($i=1;$i<=$j;$i++){
$space = str_repeat("&nbsp;", $j-$i);
$x = substr($word,0,$i);
echo $space .$x .'<br>';
}

?>



四、如果還是一定要..............那就用偷雞的方式吧! EX:


<?php
$word="abcde";
$j = strlen($word);


for($i=1;$i<=$j;$i++){
$space = str_repeat("<font color='white'>a</font>", $j-$i);
$x = substr($word,0,$i);
echo $space .$x .'<br>';
}

?>




不過,小弟覺得還是二樓建議用表格,然後向右對齊的方式比較方便又快速啦!

0 個意見:

張貼留言

訂閱 張貼留言 [Atom]

<< 首頁