行数路径问题

时间:2009-11-16 09:26:28

标签: php mysql

$f="../mts/sites/default/files/test.doc"; //通过这种方式,我能够找到行数,但我没有得到如何为行计数提供文件夹路径..如果我将路径设为$safe_filename和{{ 1}}即将到来的文件内容无法打开。请检查代码并提前帮助我

$target_path.$safe_filename

强调文字

4 个答案:

答案 0 :(得分:0)

这不是一种非常安全的做事方式。 如果两个用户提交的文件名相同,则会相互覆盖。这会将用户限制为一个唯一的文件名,在运行系统一段时间后就会出现问题。更不用说用户如果得到这样的消息会很困惑。

更好的解决方案是为每个文件生成自己的文件名。您可以创建一个长的随机字符串,或者可以在mt_upload表中为插入的记录取mysql_insert_id()。那么你也不需要乱用regexp,整个事情会简单得多。在mt_upload表中,如果要向用户显示旧文件名,可以保留旧文件名。

答案 1 :(得分:0)

如果这是确切的代码,则问题是您在str_word_count()上致电$str,但似乎无法在任何地方设置$str

答案 2 :(得分:0)

计算驻留在某个目录中的所有文件中的行的函数

function linecount_dir($dir) {
    $ig = array('.','..');
    $d = dir($dir);
    while (false !== ($entry = $d->read())) {
       if (!in_array($entry,$ig)) {
        $total += linecount($d->path . "/$entry");
       }
    }
    $d->close();
    return $total;
}

计算行的功能

define(BLOCK_SIZE,131072);

function linecount($filename) {
    $f = fopen($filename,'r');
    while (!feof($f)) {
    $d = fread($f,BLOCK_SIZE);
    $rcount += substr_count($d, "\n");
    $ncount += substr_count($d, "\r");
    }
    fclose($f);
    return (($rcount >= $ncount) ? $rcount : $ncount);
}

应用于您的代码

$f="../mts/sites/default/files/test.doc";//in this way i am able to find line count,but i am not getting how i can give folder path for line counting

// count words
$numWords = str_word_count($str)/11;
// count lines
$numLines = linecount($f);

echo "This file have ". $numWords . " words";
echo "This file have ". $numLines . " lines";

答案 3 :(得分:0)

$ F =” ../ MTS /位点/默认/文件/".$ safe_filename;