# enchant Functions

## Introduction

Enchant is the PHP binding for the » Enchant library. Enchant steps in to provide uniformity and conformity on top of all spelling libraries, and implement certain features that may be lacking in any individual provider library. Everything should "just work" for any and every definition of "just working."

Enchat supports the following backends:

- Aspell/Pspell (intends to replace Ispell)

- Ispell (old as sin, could be interpreted as a defacto standard)

- MySpell/Hunspell (an OOo projects, also used by Mozilla)

- Uspell (primarily Yiddish, Hebrew, and Eastern European languages - hosted in AbiWord's CVS under the module "uspell")

- Hspell (Hebrew)

- AppleSpell (Mac OSX)

## Requirements

This version uses the functions of the » Enchant library by Dom Lachowicz. You need Enchant 1.2.4 or later.

## Installation

Information for installing this PECL extension may be found in the manual chapter titled Installation of PECL extensions. Additional information such as new releases, downloads, source files, maintainer information, and a CHANGELOG, can be located here: » http://pecl.php.net/package/enchant.

## Runtime Configuration

This extension has no configuration directives defined in php.ini.

## Resource Types

There are two types of resources in this extension. The first one is the broker (backends manager) and the second is for the dictionary.

## Examples

Example#1 Enchant Usage Example

`<?php
$tag = 'en_US';
$r = enchant_broker_init();
$bprovides = enchant_broker_describe($r);
echo "Current broker provides the following backend(s):\n";
print_r($bprovides);
$dicts = enchant_broker_list_dicts($r);
print_r($dicts);
if (enchant_broker_dict_exists($r,$tag)) {
$d = enchant_broker_request_dict($r, $tag);
$dprovides = enchant_dict_describe($d);
echo "dictionary $tag provides:\n";
$spellerrors = enchant_dict_check($d, "soong");
print_r($dprovides);
echo "found $spellerrors spell errors\n";
if ($spellerrors) {
$suggs = enchant_dict_suggest($d, "soong");
echo "Suggestions for 'soong':";
print_r($suggs);
}
enchant_broker_free_dict($d);
} else {
}
enchant_broker_free($r);
?>`

## Table of Contents

- enchant_broker_describe — Enumerates the Enchant providers
- enchant_broker_dict_exists — Whether a dictionary exists or not. Using non-empty tag
- enchant_broker_free_dict — Free a dictionary resource
- enchant_broker_free — Free the broker resource and its dictionnaries
- enchant_broker_get_error — Returns the last error of the broker
- enchant_broker_init — create a new broker object capable of requesting
- enchant_broker_list_dicts — Returns a list of available dictionaries
- enchant_broker_request_dict — create a new dictionary using a tag
- enchant_broker_request_pwl_dict — creates a dictionary using a PWL file. A PWL file is personal word file one word per line.
- enchant_broker_set_ordering — Declares a preference of dictionaries to use for the language
- enchant_dict_add_to_personal — add a word to personal word list
- enchant_dict_add_to_session — add 'word' to this spell-checking session
- enchant_dict_check — Check whether a word is correctly spelled or not.
- enchant_dict_describe — Describes an individual dictionary
- enchant_dict_get_error — Returns the last error of the current spelling-session
- enchant_dict_is_in_session — whether or not 'word' exists in this spelling-session
- enchant_dict_quick_check — Check the word is correctly spelled and provide suggestions
- enchant_dict_store_replacement — add a correction for a word.
- enchant_dict_suggest — Will return a list of values if any of those pre-conditions are not met.