(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)
udm_load_ispell_data — Lade ISpell-Daten
$agent
, int $var
, string $val1
, string $val2
, int $flag
)
udm_load_ispell_data() lädt
ispell-Daten. Gibt bei Erfolg TRUE
zurück. Im Fehlerfall wird FALSE
zurückgegeben.
agent
- Zeiger auf einen Agenten, erhalten nach
einem Aufruf von udm_alloc_agent().
var
- Parameter, der die Quelle der ISpell-Daten
angibt. Kann folgende Werte annehmen.
Nachdem diese Funktion aufgerufen wurde, sollte nicht vergessen werden, mittels udm_free_ispell_data() den durch ISpell belegten Speicher wieder freizugeben, auch wenn UDM_ISPELL_TYPE_SERVER verwendet wird.
Der schnellste Modus ist UDM_ISPELL_TYPE_SERVER. UDM_ISPELL_TYPE_TEXT ist langsamer, und UDM_ISPELL_TYPE_DB ist der langsamste. Dies gilt zumindest für mnoGoSearch 3.1.10 - 3.1.11, es ist jedoch geplant, den DB-Modus in zukünftigen Versionen schneller als den TEXT-Modus zu machen.
val1
und val2
ignoriert
und sollten leer gelassen werden. Der Parameter
flag
sollte 1 sein.
Hinweis:
Der Parameter
flag
gibt an, dass die ISpell-Daten nach dem Laden sortiert werden sollen, dies ist für ein korrektes Arbeiten von ISpell nötig. Werden die ISpell-Daten aus Dateien gelesen, kann es vorkommen, dass mehrere Aufrufe von udm_load_ispell_data() vorkommen, was es wenig Effektiv macht, die Daten nach jedem Aufruf zu sortieren. Der Datenbank-Modus lädt jedoch alle Daten auf einmal, in diesem Fall sollte der Wert also 1 betragen. Sollte ein Fehler auftreten, wirdFALSE
zurückgegeben, Fehler und Fehlercode sind in diesem Fall über udm_error() und udm_errno() verfügbar.
Beispiel #1 udm_load_ispell_data() Beispiel
<?php
if (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_DB,'','',1)) {
printf("Error #%d: '%s'\n",udm_errno($udm),udm_error($udm));
exit;
}
?>
UDM_ISPELL_TYPE_AFFIX - Gibt an, dass die ISpell-Daten aus einer Datei
geladen werden sollen und initiiert das Laden der Anhangsdaten. In diesem
Fall gibt der Parameter val1
den zweibuchstabigen
Sprachcode an, für den die Anhänge geladen werden sollen,
val2
gibt den Dateipfad an. Wird kein absoluter
Pfad angeben, werden die Dateien nicht in UDM_CONF_DIR, sondern in im zum
aktuellen Pfad relativen gesucht. Kann die Datei nicht geladen werden,
gibt die Funktion FALSE
zurück, und eine Fehlermeldung wird ausgegeben.
Die Fehlercodes können nicht über udm_error() oder
udm_errno() ausgelesen werden. Zur Erlärung des
Parameters flag
schauen Sie bitte bei
UDM_ISPELL_TYPE_DB nach.
Beispiel #2 udm_load_ispell_data() Beispiel
<?php
if ((! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_AFFIX,'en','/opt/ispell/en.aff',0)) ||
(! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_AFFIX,'ru','/opt/ispell/ru.aff',0)) ||
(! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SPELL,'en','/opt/ispell/en.dict',0)) ||
(! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SPELL,'ru','/opt/ispell/ru.dict',1))) {
exit;
}
?>
Hinweis:
flag
hat nur beim letzten Aufruf den Wert 1.
UDM_ISPELL_TYPE_SPELL - Gibt an, dass die ISpell-Daten aus einer Datei
gelesen werden sollen, und initiiert das Laden des ISpell-Wörterbuches.
In diesem Fall gibt der Parameter val1
den
zweibuchstabigen Sprachcode an, für den die Anhänge geladen werden
sollen, val2
gibt den Dateipfad an. Wird kein
absoluter Pfad angeben, werden die Dateien nicht in UDM_CONF_DIR,
sondern in im zum aktuellen Pfad relativen gesucht. Kann die Datei nicht
geladen werden, gibt die Funktion FALSE
zurück, und eine Fehlermeldung
wird ausgegeben. Die Fehlercodes können nicht über
udm_error() oder udm_errno()
ausgelesen werden. Zur Erklärung des Parameters
flag
schauen Sie bitte bei
UDM_ISPELL_TYPE_DB nach.
<?php
if ((! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_AFFIX,'en','/opt/ispell/en.aff',0)) ||
(! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_AFFIX,'ru','/opt/ispell/ru.aff',0)) ||
(! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SPELL,'en','/opt/ispell/en.dict',0)) ||
(! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SPELL,'ru','/opt/ispell/ru.dict',1))) {
exit;
}
?>
Hinweis:
flag
hat nur beim letzten Aufruf den Wert1.
UDM_ISPELL_TYPE_SERVER - schaltet den Spell-Server support ein.
val1
gibt den Host an, auf dem der Spell-Server
läuft.. val2
ist noch ohne Funktion, wird in
Zukunft aber den Port des Spell-Servers angeben.
flag
wird nicht benötigt, da die Daten bereits
sortiert im Spell-Server vorliegen.
Der Spell-Server (Spelld) liest die Rechtschreibdaten aus einer seperaten Konfigurationsdatei (Standardmäßig /usr/local/mnogosearch/etc/spelld.conf), sortiert sie und speichert sie im Speicher.
Die Funktion udm_load_ispell_data() in UDM_ISPELL_TYPE_SERVER lädt eigentlich nicht die ISpell-Daten, sondern legt nur die Serveradresse fest. Eigentlich wird dieser Server automatisch von udm_find() benutzt, wenn eine Suche durchgeführt wird. Sollte ein Fehler auftreten, wird keine Fehlermeldung ausgegeben, eine ISpell-Konvertierung kann dann jedoch natürlich auch nicht stattfinden.
Beispiel:Hinweis:
Diese Funktion ist seit mnoGoSearch 3.1.12 verfügbar.
if (! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_SERVER,'','',1)) {
echo "Error loading ispell data from server<br>\n";
exit;
}