advertisement
Premier Club Log In/Registration
  Include Code  Search Tips
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   SKILLBUILDING  |   TIP BANK  |   SOURCEBANK  |   FORUMS  |   NEWSLETTERS
Browse DevX
Download the sample PHP, XML, and CSS code for this article.
Partners & Affiliates
advertisement
advertisement
advertisement
Rate this item | 0 users have rated this item.
Email this articleEmail this article
 
Generating Reports and Statistics in PHP
Discover the PHP libraries that help you generate statistics and reports that analyze data from text files, XML, or relational databases. 

advertisement
tatistics and reports analyze the change over time of any kind of phenomena. For example, you could evaluate an employer's performance by analyzing progress curves provided by reports; managers can make business decisions based on statistical sales data; meteorologists can predict natural disasters based on statistical weather pattern data—and the list goes on. For the software industry, statistics and reports provide both an ongoing challenge and an ongoing market. At present, programming languages such as PHP and Java come with built-in packages for developing applications around statistical problems.


This article explores PHP's support for the statistical domain. You will see how to generate reports and statistics for simple text phrases, XML documents, and complex databases.

The Text_Statistics PEAR Package
The Text_Statistics PEAR package makes it easy to calculate some basic readability metrics on blocks of text. These metrics include such things as the number of words, the number of unique words, the number of sentences, and the number of total syllables. You can use these statistics to calculate the Flesch score for a sentence, which is a number between 0 and 100 that represents readability. Figure 1 shows the formula for the Flesch Reading Ease Score (FRES) test.

 
Figure 1. Flesch Reading Ease Score Formula: This formula calculates the relative readability of a text; the higher the score, the easier the text is to read.
The higher the score, the more readable the text (high scores have larger potential audiences). For example, a Flesch score between 90 and 100 equates to a fifth-grade reading level; a Flesch score between 0 and 30 means the text may be readable only by college graduates. This tutorial provides more details about the Flesch readability formula and the Flesch readability tests (Flesch—Kincaid Grade Level).

You install the PEAR package like this (version 1.0 is the stable version):

   pear install Text_Statistics
As you will see in the next two examples, the Text_Statistics PEAR is very easy to use, because the applications are straightforward and the code is very intuitive. For example, to retrieve the number of syllables in a word you can use the Text_Word class like this:

   <?php
     //import Word.php
     require_once 'Text/Word.php';
   
     //the tested word
     $word = 'paragraphs';
   
     ////create an instance of the Text_Word class
     $stats = new Text_Word($word);
   
     //Print the syllables of the $word variable
     print_r("The word '".$word."' 
        has ".$stats->numSyllables()." syllables.");
   ?>
The output of this example is:

   The word 'paragraphs' has 3 syllables.
Here's a more complete example based on the Text_Statistics class that analyzes a complete (but still short) sentence. In this case the output contains more information, including the number of syllables, the number of unique words, the Flesch score, the abbreviations, and more:

   <?php
   
     //import Statistics.php
     require_once 'Text/Statistics.php';
   
     //the tested text
     $text = "This is an example.";
   
     //create an instance of the Text_Statistics class
     $stats = new Text_Statistics($text);
   
     // Print the number of syllables, number of unique words, 
     // the Flesch number, the abbreviations, and more
     print_r("<b>The entire array:</b><br />");
     print_r($stats);
     print_r("<br /><br />");
   
     print_r("<b>Text:</b>   ".$stats->text."<br />");
     print_r("<b>Syllables:</b>   ".$stats->numSyllables."<br />");
     print_r("<b>Words number:</b>   ".$stats->numWords."<br />");
     print_r("<b>Unique words:</b>   ".$stats->uniqWords."<br />");
     print_r("<b>Sentences number:</b>   ".$stats->numSentences."<br />");
     print_r("<b>Flesch:</b>   ".$stats->flesch."<br />");
   ?>
The output of this example shows both a raw array of data that the Text_Statistics package returns and a list of specific values extracted from that array and formatted more readably:

   The entire array:
   Text_Statistics Object ( [text] => This is an example. 
     [numSyllables] => 5 
     [numWords] => 4 
     [uniqWords] => 4 
     [numSentences] => 1 
     [flesch] => 97.025 
     [_abbreviations] => Array ( [/Mr\./] => Misterr 
        [/Mrs\./i] => Misses [/etc\./i] => etcetera 
        [/Dr\./i] => Doctor ) 
     [_uniques] => Array ( 
        [this] => 1 
        [is] => 1 
        [an] => 1 
        [example] => 1 ) ) 
   
   Text: This is an example.
   Syllables: 5
   Words number: 4
   Unique words: 4
   Sentences number: 1
   Flesch: 97.025
You aren't limited to analyzing text files, though; another PEAR package makes it easy to analyze data stored in XML.

  Next Page: The XML_Statistics PEAR Package


Page 1: IntroductionPage 3: Using PHPReports Generator for Database Reports
Page 2: The XML_Statistics PEAR PackagePage 4: Adding CSS Support to Improve Report Design
Untitled
advertisement
Advertising Info  |   Member Services  |   Permissions  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About


JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

Solutions
Whitepapers and eBooks
Intel PDF: Virtualization Delivers Data Center Efficiency
Intel eBook: Managing the Evolving Data Center
Microsoft Article: BitLocker Brings Encryption to Windows Server 2008
Symantec eBook: The Guide to E-Mail Archiving and Management
Microsoft Article: RODCs Transform Branch Office Security
Go Parallel Article: James Reinders on the Intel Parallel Studio Beta Program
Avaya Article: Advancing the State of the Art in Customer Service
Adobe Acrobat Connect Pro: Web Conferencing and eLearning Whitepapers
Avaya Article: Avaya AE Services Provide Rapid Telephony Integration with Facebook
Go Parallel Article: Getting Started with TBB on Windows
HP eBook: Storage Networking , Part 1
MORE WHITEPAPERS, EBOOKS, AND ARTICLES
Webcasts
Intel Seminar: Efficiencies in Hardware/Software Virtualization
HP Webcast: Disaster Recovery Planning
Go Parallel Video: Performance and Threading Tools for Game Developers
HP Video: StorageWorks EVA4400 and Oracle
HP Webcast: Storage Is Changing Fast - Be Ready or Be Left Behind
MORE WEBCASTS, PODCASTS, AND VIDEOS
Downloads and eKits
IBM TCO eKIT: Your IT Budget is Under Attack, Get in Control
IBM Energy Efficiency eKIT: Learn How to Reduce Costs
30-Day Trial: SPAMfighter Exchange Module
Red Gate Download: SQL Toolbelt and free High-Performance SQL Code eBook
Iron Speed Designer Application Generator
MORE DOWNLOADS, EKITS, AND FREE TRIALS
Tutorials and Demos
Microsoft Article: Silverlight Streaming--Free Video Hosting for All
Featured Algorithm: Intel Threading Building Blocks - parallel_reduce
HP Demo: StorageWorks EVA4400
MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES