PHP Handbuch
Zurück |  | Nach vorne

# udm_load_ispell_data

(PHP 4 >= 4.0.5)

udm_load_ispell_data -- Lade ISpell-Daten

## Beschreibung

``int udm_load_ispell_data` (int agent, int var, string val1, string val2, int flag)`

udm_load_ispell_data() lädt ISpell-Daten. Gibt `TRUE` bei Erfolg, `FALSE` bei einem Fehler zurück.

`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, das die ISpell-Daten aus einer SQL-Datenbank gelesen werden sollen. In diesem Fall werden `val1` und `val2` ignoriert und sollten leer gelassen werden. Der Parameter `flag` sollte `1` sein.

  > Anmerkung: 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, daß 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, wird `FALSE` zurückgegeben, Fehler und Fehlercode sind in diesem Fall über udm_error() und udm_errno() verfügbar.

  Beispiel:

      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:

      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;
           }

  > Anmerkung: `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.

      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;
            }

  > Anmerkung: `flag` hat nur beim letzten Aufruf den Wert`1`.

- 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.

  > Anmerkung: Diese Funktion ist seit mnoGoSearch 3.1.12 verfügbar.

  Beispiel:

      if (! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_SERVER,'','',1)) {
               printf("Error loading ispell data from server<br>\n");
               exit;
              }

Zurück | Zum Anfang | Nach vorne
udm_get_res_param | Nach oben | udm_set_agent_param