PHP Classes

File: example_single.php

Recommend this page to a friend!
  Classes of David Frendin   lib_dictionary   example_single.php   Download  
File: example_single.php
Role: Example script
Content type: text/plain
Description: Example: Correct a single word
Class: lib_dictionary
Check text spelling with a dictionary in MySQL
Author: By
Last change:
Date: 16 years ago
Size: 3,280 bytes
 

Contents

Class file image Download
<?php
/***************************************************************************
 * example.php
 * Copyright (c) 2007 David Frendin (david.frendin@gmail.com)
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version. See the GNU General Public License
 * for more details.
 *
 ***************************************************************************/

/***************************************************************************
 * Example: Single word
 * This example will do a more advanced spell-check of a single word, and if the word
 * is wrongly spelled - suggest alterations ("did you mean <word>?")
 *
 ***************************************************************************/

/* ___[ Below is example code ]_____________________ */
require_once('mysql4.php'); //from phpbb2
require_once('lib_dictionary.php');

define('DICTIONARY_TABLE', 'dictionary');

//connect to db
$db = new sql_db('localhost', 'username', 'password', 'table', false);
if(!
$db->db_connect_id)
{
    die(
"Could not connect to the database");
}

$dict = new dictclass();


//since we want to test the speed of the script, we use microtime
//call microtime a few times - since the first load of microtime requires extra processing
$t1 = microtime(true);
$t2 = microtime(true);
$t1 = microtime(true);
$t2 = microtime(true);
 

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//Step 1 - Show user what we will be doing
$t1 = microtime(true);
$word = "retireed"; //what word are we going to check?
$correct = "retired"; //the correct word? (this just goes to the page output, it isnt really used)
$metap = metaphone($correct);
echo
"Looking for word: <b>$word</b> (correct in this case is: $correct [$metap])<br>";


//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//Step 2 - Correct the word

if ($dict->does_word_exist($word) == -1) //step 1 - does the word exist?
{
   
$dict->load_dictionary($word, 1); //step 2 - find dictionary words similar to $word
   
if ($dict->is_loaded == false)
    {
        echo
"> Im sorry, but i have no clue what <i>$word</i> might be..<p>";
    }
    else
    {
       
$suggestions = $dict->checkhighest($word); //step 3 - sort suggestions on what the correct word might be
       
echo "Maybe you ment: \"".$suggestions[0]['word']."\"? (alt. ".$suggestions[1]['word'].", ".$suggestions[2]['word'].")<p>";
    }
}
else
{
    echo
"The word is correctly spelled<p>";
}


//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//Step 3 - Show user some statistics

$t2 = microtime(true);
echo
"It took me <b>".sprintf('%.1f', ($t2 - $t1)*100 ) . "ms</b> (".sprintf('%.2f', ($t2 - $t1) )."s) to complete<br>";
echo
"I compared your word with and sorted from ".count($dict->dictionary)." dictionary words (from 34 831 words in total)<br>";
echo
"I am to ".sprintf('%.1f',$suggestions[0]['p'])."% sure that this was the word you were looking for";
die();

/* ___[ End of example code ]_____________________ */
?>