udm_load_ispell_data
(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)
udm_load_ispell_data — Lade ISpell-Daten
Beschreibung
$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.
-
UDM_ISPELL_TYPE_DB - Gibt an, dass die ISpell-Daten aus einer
SQL-Datenbank gelesen werden sollen. In diesem Fall werden
val1undval2ignoriert und sollten leer gelassen werden. Der Parameterflagsollte 1 sein.Hinweis:
Der Parameter
flaggibt 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, wirdFALSEzurü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
val1den zweibuchstabigen Sprachcode an, für den die Anhänge geladen werden sollen,val2gibt 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 FunktionFALSEzurück, und eine Fehlermeldung wird ausgegeben. Die Fehlercodes können nicht über udm_error() oder udm_errno() ausgelesen werden. Zur Erlärung des Parametersflagschauen 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:
flaghat 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
val1den zweibuchstabigen Sprachcode an, für den die Anhänge geladen werden sollen,val2gibt 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 FunktionFALSEzurück, und eine Fehlermeldung wird ausgegeben. Die Fehlercodes können nicht über udm_error() oder udm_errno() ausgelesen werden. Zur Erklärung des Parametersflagschauen 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:
flaghat nur beim letzten Aufruf den Wert1. -
UDM_ISPELL_TYPE_SERVER - schaltet den Spell-Server support ein.
val1gibt den Host an, auf dem der Spell-Server läuft..val2ist noch ohne Funktion, wird in Zukunft aber den Port des Spell-Servers angeben.flagwird 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;
}