views:

344

answers:

4

I need to find word count for all of the files within a folder.

Here is the code I've come up with so far:

$f="../mts/sites/default/files/test.doc";

// count words
$numWords = str_word_count($str)/11;
echo "This file have ". $numWords . " words";

This will count the words within a single file, how would I go about counting the words for all files within a given folder?

+3  A: 

how about

$array = array( 'file1.txt', 'file2.txt', 'file3.txt' );
$result = array();
foreach($array as $f ){
 $result[$f] = str_word_count(file_get_contents($f));
}

and using the dir

if ($handle = opendir('/path/to/files')) {
    $result = array();
    echo "Directory handle: $handle\n";
    echo "Files:\n";

    /* This is the correct way to loop over the directory. */
    while (false !== ($file = readdir($handle))) {
       if($file == '.' || $file == '..')
           continue;
       $result[$file] = str_word_count(file_get_contents('/path/to/files/' . $file)); 
       echo "This file {$file} have {$result[$file]} words";
    }

    closedir($handle);
}

Lavanya, you can consult the manual of readdir, file_get_contents.

RageZ
That's not going to work for .doc files...
Rob
@Rob: that's a good remark but he didn't say that was word file ... let's way his comment.
RageZ
Hmm you're correct, I guess I saw the words "word" and "doc" in his post and my brain put them together...
Rob
let's wait ... ouch I am tired!
RageZ
Hi really good code u sent i am thanking u very much...reagards lavanya ks
Lavanya ks
really really u r code helped me lot
Lavanya ks
+2  A: 

Assuming the doc files are plaintext and don't contain additional markup, you can use the following script to count all of the words in all of the files:

<?php
$dirname = '/path/to/file/';
$files = glob($dirname.'*');
$total = 0;
foreach($files as $path) {
    $count = str_word_count(file_get_contents($path));
    print "\n$path has $count words\n";
    $total += $count;
}
print "Total words: $total\n\n";
?>
jakemcgraw
A: 

You can use $words = str_word_count(file_get_contents($filepath)) to get the word count of a text file, however this won't work for word docs. You'll need to find a library or external program that can read the .doc file format.

Rob
+1  A: 

If you are using *nux than you can use system('cat /tmp/* | wc -w')

Elalfer