[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的特殊字元 「 」來取代半形空白,嗯!很抱歉,出來的畫面只達到要求的一半…ex:
<?php
$word="abcde";
$j = strlen($word);
for($i=1;$i<=$j;$i++){
$space = str_repeat(" ", $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]
<< 首頁