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代表不确定的类型。