udm_hash32
udm_open_stored
mnoGoSearch Funktionen
PHP Manual

# 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

bool udm_load_ispell_data ( resource `$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 `FALSE`.

`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 `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, wird `FALSE` 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.

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

  Beispiel:
  `if (! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_SERVER,'','',1)) {
  echo "Error loading ispell data from server&lt;br&gt;\n";
  exit;
  }`

udm_hash32
udm_open_stored
mnoGoSearch Funktionen
PHP Manual