Hej.
Napisałem niedawno klasę do sprawdzania, czy ktoś nie strzela byków w swoim tekście.
Mam cichą nadzieję, że przyczynię się tym do podwyższenia poziomu treści pisanych w naszym pięknym języku, a zwłaszcza w internecie. Wszak nie każdy ma Firefoxa z korektą pisowni

.
Klasa korzysta ze słownika ortograficznego PWN dostępnego w internecie na
http://so.pwn.pl/, dlatego może być dość powolna przy sprawdzaniu bardzo długich tekstów. Natomiast z tymi krótszymi poradzi sobie szybciej

.
Kod klasy:
<?php
/**
* Klasa służąca do korekty ortograficznej
* korzystająca z internetowego słownika ortograficznego PWN (http://so.pwn.pl/)
*/
class korektaOrtograficzna
{
/**
* tekst do sprawdzenia
*/
private $text;
/**
* tablica z wyrazami posiadającymi błędy ortograficzne
*/
public $mistakeArray = array();
/**
* sprawdzony tekst z zaznaczonymi błędami
*/
public $markedText;
/**
* konstruktor
* uruchamia odpowiednie metody
* @param string text tekst do korekty
* @return void
*/
public function __construct($text)
{
$this->text = $text;
$this->checkText();
}
/**
* łączy się ze słownikiem ortograficznym PWN
* i sprawdza czy wyraz jest poprawny
* @param string $word
* @return bool
*/
private function isCorrectWord($word)
{
return (bool
)!strstr($content,'Nie znaleziono haseł spełniających podany warunek.'); }
/**
* przetwarza podany tekst na tablicę z wyrazami,
* usuwa ewentualne znaki interpunkcyjne i znaczniki HTML
* @param void
* @return array
*/
private function text2array()
{
}
/**
* dokonuje korekty podanego tekstu,
* przekazuje niepoprawne wyrazy do tablicy z błędami
* oraz wyróżnia niepoprawne wyrazy
* i przekazuje zmodyfikowany tekst do odpowiedniej zmiennej
* @param void
* @return void
*/
private function checkText()
{
$textArray = $this->text2array();
$mistakeArrayMarked = array();
foreach($textArray as $word)
{
if(!$this->isCorrectWord($word))
{
$this->mistakeArray[] = $word;
$mistakeArrayMarked[] = '<span style="color:red; font-weight:bold;">'.$word.'</span>';
}
}
$this->markedText = str_replace($this->mistakeArray,$mistakeArrayMarked,$this->text); }
}
?>
Przykład użycia:
<?php
$tekstDoSprawdzenia = 'Szedł Jasió przes las i zgubił czerfony pas.';
$objKorektaOrtograficzna = new korektaOrtograficzna($tekstDoSprawdzenia);
echo $objKorektaOrtograficzna->markedText; // sprawdzony tekst z wyróżnionymi błędami
echo 'Liczba znalezionych błędów: '.count($objKorektaOrtograficzna->mistakeArray);
print_r($objKorektaOrtograficzna->mistakeArray); // wyświetlenie tablicy ze znalezionymi błędami
?>
Ten post edytował Speedy 21.09.2007, 22:30:37
Sygnatura niezgodna z regulaminem.