PHP Conference Nagoya 2025

pspell_new

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

pspell_newCargar un nuevo diccionario

Descripción

pspell_new(
    string $language,
    string $spelling = ?,
    string $jargon = ?,
    string $encoding = ?,
    int $mode = 0
): int

pspell_new() abre un nuevo diccionario y devuelve el identificador de vínculo de diccionario para usarlo en otras funciones pspell.

Para más información y ejemplos, verifique el sitio web de pspell del manual en línea:» http://aspell.net/.

Parámetros

language

El parámetro language es el código de lenguaje que consiste en el código de lenguaje ISO 639 de dos letras y un código de país ISO 3166 de dos letras opcional después de un guión o guión de subrayado.

spelling

El parámetro spelling es la ortografía solicitada para lenguajes con más de una ortografía, como el inglés. Valores conocidos son 'american', 'british', y 'canadian'.

jargon

El parámetro jargon contiene información extra para distinguir dos listas de palabras diferentes que tienen el mismo lenguaje y parámetros de ortografía.

encoding

El parámetro encoding es la codificación que se espera que tengan esas palabras. Los valores válidos son 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. Este parámetro no está en gran parte comprobado, por lo que, tenga cuidado al usarlo.

mode

El parámetro mode es el modo en el que trabajará el corrector ortográfico. Hay varios modos disponibles:

  • PSPELL_FAST - Modo rápido (menor númeo de sugerencias)
  • PSPELL_NORMAL - Modo normal (más sugerencias)
  • PSPELL_BAD_SPELLERS - Modo lento (un montón de sugerencias)
  • PSPELL_RUN_TOGETHER - Considerar palabras unidas como compuestos legales. Es decir, "elgao" será un compuesto legal, aunque debería haber un espacio entre las dos palabras. Cambiar esta configuración solo afecta a los resultados devueltos por pspell_check(); pspell_suggest() seguirá devolviendo sugerencias.
El modo es una máscara de bits construida a partir de diferentes constantes antes listadas. Sin embargo, PSPELL_FAST, PSPELL_NORMAL y PSPELL_BAD_SPELLERS son mutuamente exclusivas, por lo que debería seleccionar únicamente una de ellas.

Valores devueltos

Devuelve el identificador de vínculo de diccionario en caso de éxito o false en caso de error.

Ejemplos

Ejemplo #1 pspell_new()

<?php
$pspell_link
= pspell_new("en", "", "", "",
(
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