PHP裏面封裝了很多字符串函數,我也記不住,用的時候就翻手冊。這裏有一個使用簡單的字符串處理函數實現的分頁技術,當然這個很簡單,以後應該在數據庫那個地方使用更好的分頁技術。
代碼如下:
<span style="font-size:18px;"><?php
function msubstr($str,$start,$len){
$tmpstr="";
$strlen = $start + $len;
for($i=0;$i<$strlen;$i++){
if(ord(substr($str,$i,1))>0xa0){ //字符串截取函數,substr()。ord()返回字符的 ASCII 碼值 >0xa0說明是個漢字,佔兩個字節,所以讀取兩個
$tmpstr.=substr($str,$i,2);
$i++;
}else{
$tmpstr.=substr($str,$i,1);
}
}
return $tmpstr;
}
$page=$_REQUEST['page'];
if($page==""){
$page = 1;
}
if($page){
$counter = file_get_contents("file/file.txt"); //文件讀取函數,這個相當於fopen fgets fclose三個函數的結合,將文件內容全部讀完
$length = strlen($counter); //字符串長度計算函數,strlen
$page_count=ceil($length/900); //ceil(float $value)返回不小於$value的下一個數
$c=msubstr($counter,0,($page-1)*900);
$c1 = msubstr($counter,0,$page*900);
echo substr($c1,strlen($c),strlen($c1)-strlen($c));//輸出當前頁的數據
}
?>
<table>
<tr>
<td>頁次:<?php echo $page;?>/<?php echo $page_count;?>頁</td>
<td>分頁:
<?php
if($page!=1){
echo "<a href=index.php?page=1>首頁</a> "; //?後面的是傳遞的數據,這個先不用管。
echo "<a href=index.php?page=".($page-1).">上一頁</a> ";
}
if($page<$page_count){
echo "<a href=index.php?page=".($page+1).">下一頁</a> ";
echo "<a href=index.php?page=".$page_count.">尾頁</a> ";
}
?>
</td>
</tr>
</table></span>
這邊一些東西看不懂也不用管,主要是對字符串處理的函數的使用。這裏我沒有設計頁面,就是隻是實現了這個功能。
函數名 | 函數作用 |
array
explode ( string
$delimiter , string
$string [, int
$limit ] ) |
此函數返回由字符串組成的數組,每個元素都是 string 的一個子串,它們被字符串
delimiter 作爲邊界點分割出來。 |
string
implode ( [string
$glue ,] array
$pieces ) |
用 glue 將一維數組的值連接爲一個字符串。 |
string
md5 ( string
$str [, bool
$raw_output = false
] ) |
對字符串str進行加密。如果可選的 raw_output 被設置爲
TRUE ,那麼 MD5 報文摘要將以16字節長度的原始二進制格式返回。 |
int
ord ( string
$string ) |
返回字符串 |
string
chr ( int
$ascii ) |
返回相對應於 |
string ltrim ( string $str [, string $charlist ]
) |
刪除字符串開頭的空白字符(或其他字符)通過指定 charlist ,可以指定想要刪除的字符列表。簡單地列出你想要刪除的全部字符。使用 .. 格式,可以指定一個範圍。 不使用第二個參數, rtrim() 僅刪除以下字符:" " (ASCII 32 (0x20)),普通空白符。"\t"
(ASCII 9 (0x09)),製表符。"\n" (ASCII 10 (0x0A)),換行符。"\r" (ASCII 13 (0x0D)),回車符。"\0"
(ASCII 0 (0x00)),NUL 空字節符。"\x0B" (ASCII 11(0x0B)),垂直製表符。
|
string
rtrim ( string
$str [, string
$charlist ] ) |
該函數刪除 str 末端的空白字符並返回。 如果不使用第二個參數如上 |
string
trim ( string
$str [, string
$charlist = " \t\n\r\0\x0B"
] ) |
此函數返回字符串 str 去除首尾空白字符後的結果。如果不使用第二個參數如上 |
string
strstr ( string
$haystack , mixed
$needle [,
bool $before_needle
= false ] ) |
返回 haystack 字符串從
needle 第一次出現的位置開始到 haystack 結尾的字符串。 該函數區分大小寫。如果想要不區分大小寫,用
stristr()
。 before_needle 若爲 TRUE
, strstr() 將返回
needle 在 haystack 中的位置之前的部分。 |
int
strcmp ( string
$str1 , string
$str2 ) |
如果 str1 小於
str2 返回 < 0; 如果 str1 大於
str2 返回 > 0;如果兩者相等,返回 0。 |
int
strlen ( string
$string ) |
返回給定的字符串 string 的長度。 |
mixed
strpos (
string $haystack
, mixed
$needle [,
int $offset
= 0 ] ) |
返回 needle 在
haystack 中首次出現的數字位置。 返回 needle 存在於 haystack 字符串起始的位置(獨立於 offset)。同時注意字符串位置是從0開始,而不是從1開始的。如果沒找到 needle,將返回
FALSE 。 |
string
strrev ( string
$string ) |
返回 string 反轉後的字符串。 |
string
strtolower ( string
$str ) |
將 string 中所有的字母字符轉換爲小寫並返回。 |
string
strtoupper ( string
$string ) |
將 string 中所有的字母字符轉換爲大寫並返回。 |
string
substr ( string
$string , int
$start [, int
$length ] ) |
返回字符串 string 由
start 和 length 參數指定的子字符串。 如果
start 是非負數,返回的字符串將從 string 的
start 位置開始,從 0 開始計算。例如,在字符串 “abcdef” 中,在位置 0 的字符是 “a”,位置
2 的字符串是 “c” 等等。
如果 |
mixed
str_replace (
mixed
$search ,
mixed
$replace ,
mixed
$subject [,
int &$count
] ) |
該函數返回一個字符串或者數組。該字符串或數組是將
subject 中全部的 search 都被
replace 替換之後的結果。 如果 search 和
replace 爲數組,那麼 str_replace()
將對 subject 做二者的映射替換。如果 replace 的值的個數少於
search 的個數,多餘的替換將使用空字符串來進行。如果
search 是一個數組而 replace 是一個字符串,那麼
search 中每個元素的替換將始終使用這個字符串。該轉換不會改變大小寫。如果 search 和
replace 都是數組,它們的值將會被依次處理。如果被指定,它的值將被設置爲替換髮生的次數。 |
string
str_repeat ( string
$input , int
$multiplier ) |
返回 input 重複
multiplier 次後的結果。 input 被重複的次數。multiplier 必須大於等於 0。如果
multiplier 被設置爲 0,函數返回空字符串。 |
這些是我在手冊裏面找的,是些比較常用的,還有很多。如果需要可以去看手冊,手冊都有舉例 。
不知道什麼問題,我今天下午打不開博客頻道了,一直到現在纔打開。所以有點潦草了。不過字符串函數真的很多,我記不住 ,要用就要找手冊。當然一些經常用的還是需要記住的。多看看函數參數的意思。mixed代表不確定的類型。