PHP Conference Nagoya 2025

pspell_new

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_newLädt ein neues Wörterbuch

Beschreibung

pspell_new(
    string $language,
    string $spelling = "",
    string $jargon = "",
    string $encoding = "",
    int $mode = 0
): PSpell\Dictionary|false

pspell_new() öffnet ein neues Wörterbuch und gibt eine PSpell\Dictionary-Instanz für die Verwendung in anderen pspell-Funktionen zurück.

Weitere Informationen und Beispiele sind im Online-Handbuch der pspell-Webseite zu finden: » http://aspell.net/.

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 derselben Sprache und denselben 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 bei dessen Verwendung Vorsicht geboten ist.

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 Bitmaske, die sich aus verschiedenden der oben aufgelisteten Konstanten zusammensetzt. PSPELL_FAST, PSPELL_NORMAL und PSPELL_BAD_SPELLERS schließen sich allerdings gegenseitig aus, weshalb nur eine davon ausgewählt werden sollte.

Rückgabewerte

Gibt bei Erfolg eine PSpell\Dictionary-Instanz zurück. Bei einem Fehler wird false zurückgegeben.

Changelog

Version Beschreibung
8.1.0 Gibt nun eine PSpell\Dictionary-Instanz zurück; vorher wurde eine Ressource zurückgegeben.

Beispiele

Beispiel #1 pspell_new()-Beispiel

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

add a note

User Contributed Notes 2 notes

up
10
wookie
16 years ago
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.
up
1
allan at wagawaga dot dk
16 years ago
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
To Top