此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【onlybbq】截止到2008-06-27 20:54:08的历史汇总数据(不包括此帖):
发帖数:0                  发帖分:0                  
结贴数:0                  结贴分:0                  
未结数:0                  未结分:0                  
结贴率:-------------------结分率:-------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html

解决方案 »

  1.   

    只是跳转一次数据是放在 123.txt中1900個網址, 每行一個網址如
    http://www.linkbucks.com/link/f95bf380/17967
    http://www.linkbucks.com/link/fc84c7b1/17967
    http://www.linkbucks.com/link/fbd1b4f2/17967
    ..
    ....
    ......直至第1900行
      

  2.   

    如果每一行的字符数相等,可以用fseek定位,比如每一行都是这么长,虽然内容不一样
    http://www.linkbucks.com/link/f95bf380/17967<?
    $line=rand(0, 1899);
    $sCount=strlen('http://www.linkbucks.com/link/f95bf380/17967');
    $seekStart=($sCount+2)*$line;
    $handle = fopen("123.txt", "r");
    fseek($handle, $seekStart, SEEK_SET);
    $retrun=fgets($handle);
    fclose($handle);
    echo $retrun;
    ?>
      

  3.   

    最简单的
    $file = file('123.txt');//把文件按行装在数组中
    shuffle($file); //打乱数组
    echo $file[0]; //LZ想要的 呵呵
    每次都读整个文件而且分隔相对的比较慢而且比较费内存复杂点的
    $fileSize = filesize('123.txt'); //取得文件的大小
    $rowSize = '43'; //每行长度 LZ的文件每行是等长的可以这么做
    $row = $fileSize / $rowSize; //取得行长度 LZ知道是1900行
    $rand = myrand(0, $row); //取得0到1900的随机数
    $fp = fopen('123.txt','r');
    fseek($fp, $rowSize * $rand); //移动指针到随机行
    $str = fread($fp, 43); //读取行
    fclose($fp);
    function myrand($start, $end){ //这个取随机数是瞎写的 手册中有用打乱数组取随机数的代码
     $number = substr(microtime(true), -1, strlen($end));
     if($number < $start || $number > $end) {
      return myrand($start, $end)
     }else {
      return $number;
     }
    }