-
- session_start();
- if (empty($page)) {$page=1;}
- if (isset($_GET['page'])==TRUE) {$page=$_GET['page']; }
- ?>
-
- <頭>
-
- 結果の読み取り
-
- 頭>
- <ボディ>
- <テーブル幅="100%" bgcolor="#CCCCCC">
- if($page){
- $counter=file_get_contents("example.txt"); //读取txt文書の内容から$counter
- $length=strlen($counter);
- $page_count=ceil($length/5000);
- 関数 msubstr($str,$start,$len){
- $strlength=$start+$len;
- $tmpstr="";
- for($i=0;$i<$strlength;$i++) {
- if(ord(substr($str,$i,1))==0x0a) {
- $tmpstr. ='
';
- }
- if(ord(substr($str,$i,1))>0xa0) {
- $tmpstr.=substr($str,$i,2);
- $i++;
- }
- else{
- $tmpstr.=substr($str,$i,1); }
- }
- $tmpstr を返します。
- }
- //---------------截取中文字符串--------
- $c=msubstr($counter,0,($page-1)*5000) ;
- $c1=msubstr($counter,0,$page*5000);
- echo substr($c1,strlen($c),strlen($c1)-strlen($c));
- }?>
|
- 表>
- <テーブル幅="100%" bgcolor="#cccccc">
/ 页 |
- echo "首页
- if($page!=1){
- echo "上一页 ";
- }
- if($page<$page_count){
- echo "下一页 ";
- }
- echo "尾页";
- ?>
-
|
- 表>
-
复制代码
二、php读取文件内容
例子:
-
- /*
- 作者:bjf;
- 应用:读取文件内容;
- */
- function read_file_content($FileName)
- {
- //ファイルを開く
- $fp=fopen($FileName,"r");
- $data="";
- while(!feof($fp))
- {
- //ファイルを読み取ります
- $data.=fread($fp,4096);
- }
- //ファイルを閉じる
- fclose($fp);
- //ファイルを削除します
- //unlink($FileName);
- //ファイルからコンテンツを返します
- echo $data;
- }
- read_file_content("a.html")
- ?>
-
复制代freadとfgetsの違い
fread: バイト単位で長さを計算し、指定された長さと回数に従ってデータを読み取り、最後に到達するか、指定された長さの読み取りが完了した後に停止します。
fgets: 行全体を読み取り、キャリッジリターン、ラインフィード、または終わりに達したら停止します。 テキストモードで使用されます。
3. PHP での長い記事のページング
例:
-
- /**
- *著者: Wuniao heart
- *長い記事のページネーション用のコード
- *原則:
- *配列を使用して、記事の各ページの開始バイト数を記録します (手動で p0、p1、p2... でマーク)、次に、php 関数を使用してこの配列を操作し、ページ分割された記事を表示します。ページング表示の場合は、ptag(tagの値と同じ)の値を渡します。
- *使用される PHP 関数:
- *1. strlen("string") - 指定された文字列の長さを返します - 文字列内の合計バイト数を返します。
- *2, strpos("string","matchingcharacter") - 干し草の山文字列内で最初に出現した neede の数値位置を返します。 - 文字列 Ordinal に現れる最初の一致文字のバイトを返します。
- *3, substr("string","startposition","endposition") - substr() は、開始パラメータと長さパラメータで指定された文字列の部分を返します。 - 指定された開始位置と終了位置にある文字数を返します。文字列内に .
- */
- $sql = "select * from item where id = 41";//SQL ステートメントを定義し、ID 41 のコンテンツを返します
- $result = mysql_query($sql);//SQL ステートメントを実行し、結果セットを返します
- $row = mysql_fetch_array($result);//In配列の形式 レコードセットから返す
- $content = $row['content'];// 記事を変数 $content に代入する
- $articleCounts = strlen($content);// 合計バイト数を返すof $content (article)
- $ isTrue = true;//ループタグ
- $tag = 0;//ページングタグ、配列添字
- echo "合計バイト数: ".$articleCounts."
";/ /テスト情報
- //タグ「ptag」を探し、その位置(バイト数)を配列array[]に代入----------------------- --------- -------------
- while($isTrue){
- $startAt = strpos($content,"p".$tag);//対応する ptag のバイトオーダー
- if($ startAt != false){ //タグがある場合(戻り値が false でない場合)、位置を記録します
- $array[$tag++] = $startAt
- }else{ //タグがない場合は配列array[0]を代入する '
-
-
-
-
-
-
-
|