PHP Doku:: Lädt ein neues Wörterbuch - function.pspell-new.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzUnterstützung menschlicher Sprache und ZeichenkodierungPspellPspell Funktionenpspell_new

Ein Service von Reinhard Neidl - Webprogrammierung.

Pspell Funktionen

<<pspell_new_personal

pspell_save_wordlist>>

pspell_new

(PHP 4 >= 4.0.2, PHP 5)

pspell_newLädt ein neues Wörterbuch

Beschreibung

int pspell_new ( string $language [, string $spelling [, string $jargon [, string $encoding [, int $mode = 0 ]]]] )

pspell_new() öffnet ein neues Wörterbuch und gibt die Kennung des Wörterbuch-Links für die Verwendung in anderen pspell-Funktionen zurück.

Schauen Sie sich für weitere Informationen und Beispiele das pspell-Handbuch (auf englisch) auf der Website » http://aspell.net/ an.

Parameter-Liste

language

Der Sprachencode, der aus dem zweibuchstabigen ISO 639-Sprachencode und, nach einem Binde- oder Unterstrich, einem optionalen zweibuchstabigen ISO 3166-Ländercode besteht.

spelling

Die angeforderte Schreibweise für Sprachen mit mehr als einer Schreibweise, wie zum Beispiel Englisch. Bekannte Werte sind 'american', 'british' und 'canadian'.

jargon

Enthält zusätzliche Informationen, um zwischen zwei Wortlisten mit der selben Sprache und den selben Parametern für die Schreibweise zu unterscheiden.

encoding

Die Kodierung, in der die Wörter voraussichtlich sind. Gültige Werte sind 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16' und 'machine unsigned 32'. Dieser Parameter ist weitgehend ungetestet, weshalb Sie bei dessen Verwendung vorsichtig sein sollten.

mode

Der Modus, in dem die Rechtschreibprüfung arbeitet. Es stehen mehrere Modi zur Verfügung:

  • PSPELL_FAST - Schneller Modus (geringste Anzahl Vorschläge)
  • PSPELL_NORMAL - Normaler Modus (mehr Vorschläge)
  • PSPELL_BAD_SPELLERS - Langsamer Modus (viele Vorschläge)
  • PSPELL_RUN_TOGETHER - Betrachtet zusammengesetzte Wörter als erlaubte Verbindungen. Das heißt, "dieSpinne" wäre dann eine erlaubte Verbindung, obwohl ein Leerzeichen zwischen den beiden Wörtern sein müsste. Eine Änderung dieser Einstellung wirkt sich nur auf das Ergebnis aus, das von pspell_check() zurückgegeben wird; pspell_suggest() liefert weiterhin Änderungsvorschläge.
mode ist eine Bitmask, die sich aus verschiedenden der oben aufgelisteten Konstanten zusammensetzt. PSPELL_FAST, PSPELL_NORMAL und PSPELL_BAD_SPELLERS schließen sich allerdings gegenseitig aus, weshalb Sie nur eine davon auswählen sollten.

Rückgabewerte

Gibt bei Erfolg die Kennung eines Wörterbuch-Links zurück. Im Fehlerfall wird FALSE zurückgegeben.

Beispiele

Beispiel #1 pspell_new()-Beispiel

<?php
$pspell_link 
pspell_new("de""""""",
                           (
PSPELL_FAST|PSPELL_RUN_TOGETHER));
?>


2 BenutzerBeiträge:
- Beiträge aktualisieren...
wookie
29.09.2008 20:52
Just as a small tip, I noticed that when you call pspell_new multiple times, php does not free memory usage when the resource is destroyed, but only when your entire script has completely finished. So if you create a pspell_link resource and you intend to use it again somewhere else, instead of calling pspell_new again, keep track of your original pspell_link resource instantiation, and use it again, your script will run much more efficiently.

I was switching between 16 dictionaries by just calling a new pspell_new everytime, my memory usage on the server grew until i hit a failure/php core dump. :-/ So i stored each pspell resource in an array keyed by language, and checked if the resource existed first, before creating one if needed.

I hope that helps someone.
allan at wagawaga dot dk
21.08.2008 14:00
I think the language and spelling parameters differs on different PHP versions and/or aspell/UNIX distributions.

My PHP 5.2.6 Debian ignores the spelling parameter.

Instead:

For Americans use en_US as language.
For British use en_GB (not en_UK)
For Canadian use en_CA



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)