(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)
pspell_check — Проверяет слово
Описание
pspell_check() проверяет орфографию слова.
Возвращаемые значения
Возвращает true, если орфография верна, в противном случае возвращает false.
Список изменений
| Версия | Описание |
|---|---|
| 8.1.0 |
Параметр dictionary теперь ожидает экземпляр PSpellDictionary; ранее ожидался ресурс (resource).
|
Примеры
Пример #1 Пример использования pspell_check()
<?php
$pspell = pspell_new("en");
if (
pspell_check($pspell, "testt")) {
echo "Это верное написание";
} else {
echo "К сожалению, неправильное написание";
}
?>
si at youbeenx dot com ¶
17 years ago
I felt that it would help to expand on batch spell checking using this function. The previously posted example implodes using spaces as the separator for each word. There are however situations in which doing this will not return the desired result. For example, "Hello, I like coding." will return an array with two problems, "Hello," and "coding.", both these words are spelt correctly, but pspell_check() will deem them as spelled incorrectly because a comma or a period is being passed in to the function along with the word. The following example allows you to extract only the words (using regular expressions to ignore grammar such as periods or commas) in to an array and then add in html font tags to highlight all words spelled incorrectly red before returning the string.
<?
Function SpellCheck($string) {
$pspell_link = pspell_new("en");
preg_match_all("/[A-Z']{1,16}/i", $string, $words);
for ($i = 0; $i < count($words[0]); $i++) {
if (!pspell_check($pspell_link, $words[0][$i])) {
$string = str_replace($words[0][$i], "<font color="#FF0000">" . $words[0][$i] . "</font>", $string);
}
}
return $string;
}
?>
digit6 at gmail dot com ¶
5 years ago
A better pattern for splitting the words of a query up is:
preg_match_all('/[^w']/+/', $query, $word)
// $words has the words.
Jcart ¶
17 years ago
<?php//should be using explode instead of implode
//$word = implode(" ", $message);
$word = explode(" ", $message);
foreach($word as $k => $v) {
if (pspell_check($pspell_link, $v)) {
echo "spelled right";
} else {
echo "Sorry, wrong spelling";
};
};?>
chris at candm dot org dot uk ¶
17 years ago
<?php
/*
I had to write these routines to highlight spellings in a WYSIWYG editor.
pspell() barfed at HTML tags and entities, so this code deals with them.
ClearSpell() allows you to clear up the spellchecker mark up afterwards.*/
?>
<html>
<head>
<style>
acronym.spell
{
text-decoration:underline;
color:red;
cursor:help;
}
</style>
</head>
<body>
<?php
$t = "<font color=blue>text herre & some more</font>";
echo "Before:$t";
$t = SpellCheck($t);
echo "<hr>After SpellCheck: $t";
$t = ClearSpell($t);
echo "<hr>After ClearSpell: $t";
?>
</body>
</html>
<?phpfunction SpellCheck($text)
{
//depends on fnSpell()
// Extracts text from HTML code. In addition to normal word separators, HTML tags
// and HTML entities also function as word delimiters$pspell_link = pspell_new("en"); //0. Get the dictionary
$strings = explode(">", $text); //1. Split $text on '>' to give us $strings with 0 or 1 HTML tags at the end
$nStrings = count($strings);
for (
$cStrings=0; $cStrings < $nStrings; $cStrings++)
{
$string = $strings[$cStrings]; //2. For each string from 1if ($string =='')
continue;$temp = explode('<', $string); //2.1 Split $string from $strings on '>' to give us a $tag and $cdata
$tag = $temp[1];
$cdata = $temp[0];$subCdatas = explode(";", $cdata); //2.2 Split &cdata on ';' to give $subcdatas with 0 or 1 HTML entities on the end
$nSubCdatas = count($subCdatas); //2.3 For each $subCdata from $subcdatas in 2.2for ($cSubCdatas = 0; $cSubCdatas < $nSubCdatas; $cSubCdatas++)
{
$subCdata = $subCdatas[$cSubCdatas];
if (
$subCdata == '')
continue;$temp = explode('&', $subCdata); //2.3.1 Split the $subCdata on '&' to give us a $subCdataEntity and a $subCdataWithNoEntities
$subCdataEntity = $temp[1];
$subCdataWithNoEntities = $temp[0];
$subCdataWithNoEntities = fnSpell($pspell_link, $subCdataWithNoEntities); //2.3.2 Spellcheck the $cdataWithNoEntitiesif (!$subCdataEntity ) //2.3.3 Put the $subCdataEntity, a '&' and the $cdataWithNoEntities back into the $subCdata from 2.2
$subCdata = $subCdataWithNoEntities;
else
$subCdata = $subCdataWithNoEntities. '&' . $subCdataEntity . ';' ;$subCdatas[$cSubCdatas] = $subCdata; //2.3.4 Put the $subCdata back into the array of $subCdatas
}$cdata = implode("", $subCdatas); //2.4 Implode the array of $subCdatas back into the $cdataif ($tag) //2.5 Put the $tag , '>' and $cdata back into $string
$string = $cdata . '<' . $tag . '>';
else
$string = $cdata;$strings[$cStrings] = $string; //2.6 Put $string back in its place in $strings
}$text = implode('', $strings); //3 Implode the $strings back into $text
return $text;
}
function
fnSpell($pspell_link, $string)
{preg_match_all("/[A-Z']{1,16}/i", $string, $words);
for (
$i = 0; $i < count($words[0]); $i++)
{
$currentword = $words[0][$i];
if (!
pspell_check($pspell_link, $currentword))
{
$wordarray = pspell_suggest($pspell_link, $currentword);
$words = implode(', ', $wordarray);
$suggest = "<acronym class='spell' title='$words'>$currentword</acronym class='spell'>";
$string = str_replace($currentword, $suggest, $string);
}
}
return
$string;
}
function
ClearSpell($text)
{
$strings = explode(">", $text);
$nStrings = count($strings);
for (
$cStrings=0; $cStrings < $nStrings; $cStrings++)
{
$string = $strings[$cStrings];
if (
$string =='')
continue;$temp = explode('<', $string);
$tag = $temp[1];
$cdata = $temp[0];
if (
strstr($tag, 'acronym') && strstr($tag, "class='spell'") )
$string = $cdata;
else
$string = $cdata . '<' . $tag . '>';$strings[$cStrings] = $string;
}$text = implode('', $strings);
return $text;
}
?>
За последние 24 часа нас посетили 8759 программистов и 837 роботов. Сейчас ищут 312 программистов …
-
Народ, человеки, коллеги и прочие пацаки.
У меня уже цак в носу дрыгается от нервов, кто нибудь делал проверку орфографии?
Или пользовал Hunspell | Aspell с php?
Али есть еще какие либы? -

- С нами с:
- 2 июл 2011
- Сообщения:
- 4.074
- Симпатии:
- 7
Re: Проверка орфографии
Вот были такие темы, как проверка слов по словорю, найдите тут было =)))
Если вы хотите чтобы прям было в идеале и правильно не удастся, по любому это придется расписать =))) -
Re: Проверка орфографии
вся беда в том, что заказчик странный )
да, со своими словарями это все понятно, но нужно прям идеальное решение, пока давлю на то, что не стоит городить свой костыль когда, все основные браузеры поддерживают проверку орфографии в наше время
-

- С нами с:
- 7 апр 2011
- Сообщения:
- 2.523
- Симпатии:
- 2
Re: Проверка орфографиии за это он готов платить миллионы?..
-
Хе, вопрос решен, если долго читать маны, то просветления случаются

Решение таково:
1) ставим aspell и словари
2) цепляем к php pspell
3) проверяем:-
$word = iconv(«utf-8», «koi8-r», «прювет»);
-
$pspell_link = pspell_new («ru»);
-
if (!pspell_check ($pspell_link, $word)) {
-
echo «Ошибка в слове<br />Возможные значения:»;
-
$sugg = pspell_suggest($pspell_link, $word);
-
echo iconv(«koi8-r», «utf-8», $sug).«<br />»;
5) profit
набросал модуль для Kohana https://github.com/Keleth/spellchek
-
Функция проверки орфографии на PHP (на входе проверяемый текст, на выходе список слов с ошибками):
function spell_check ( $str ){
$str = stripSlashes($str);
$tocheck = strtr($str, "n", ' ');
$tocheck = escapeShellCmd($tocheck);
exec("echo $tocheck | /usr/bin/ispell -d russian -l", $warnings);
sort($warnings);
$sp_prev = '';
$sp_errors = '';
while (list($sp_key, $sp_val) = each($warnings)) {
if ($sp_val != $sp_prev) {
$sp_errors = $sp_errors . "<a
href="/vhq/info_spell.php3?spell=" . urlencode($sp_val) . ""
target=_blank>$sp_val</a>, ";
}
$sp_prev = $sp_val;
}
return $sp_errors;
}
Оставлять комментарии могут только зарегистрированные пользователи.
Если вы не являетесь зарегистрированным пользователем, то вам необходимо зарегистрироваться.
Регистрация бесплатна. Если вы уже зарегистрированы на CodeNet, то вам необходимо
ввести логин и пароль в верхней (Alt-U) части страницы.
Источник: http://feedproxy.google.com/~r/codenet/read/~3/vr0cwlezWi4/spellcheck.php
Комментарии
Статьи по теме
-

Команды Linux
В данной статье приведена краткая информация о командах Linux. Хочу заметить, что приведенные здесь команды не привязаны к определенному д…
2013-10-04
-

-

Перечисление сетевых интерфейсов
Автор: Konstantin MalahovИсточник: www.varkon.bizВ процессе работы твоей программы нередко надо получить список сетевых адресов доступных на данном к…
2013-10-04
-

-

-

-

-

-

-

-

JQuery слайдер
Автор: mike7 февраля 2013 года Последнее время большую популярность приобрели движущиеся горизонтальные панели, известные также как «Слай�…
2013-02-13
-

-

-

-

Функция проверки орфографии на PHP |
2012-09-13 08:44:40 | 2012-09-13 08:44:40 |
|
Программирование |

|
Функция проверки орфографии на PHP (на входе проверяемый текст, на выходе список слов с ошибками): function spell_check ( $str ){ $str = stripSlashes($str); $tocheck = strtr($str, n, ); $tocheck = |
РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |

Поделиться статьей:
|
Акция: Закажи любой сайт до окончания акции и получи скидку + подбор семантического ядра + поисковую оптимизацию сайта Это позволит Вам получать еще больше трафика и соответственно клиентов из Интернета! Заказать разработку сайта по акции |
Узнайте подробности акции у менеджеров компании по телефонам: 8-924-200-7194 г.Хабаровск 8-800-550-9899 Бесплатно по России (с 2:30 до 11:30 по Мск) |
Продающие сайты «под ключ»!
Наши сайты зарабытывают вам деньги. Landing-page. Эффективные продающие сайты точно в срок и под ключ! Всего от 14700 рублей
Подробнее…
Интернет-магазины «под ключ»!
Эффективные и удобные инструменты торговли (электронной торговли) «под ключ». Продают, даже когда вы спите! Всего от 33800 рублей
Подробнее…
Комплексный интернет-маркетинг и продвижение сайтов
Максимальную эффективность дает не какой-то конкретный метод, а их комбинация. Комбинация таких методов и называется комплексным интернет-маркетингом. Всего от 5000 рублей в месяц
Подробнее…
Реклама в Yandex и Google
Контекстная реклама нацелена лишь на тех пользователей, которые непосредственно заинтересованы в рекламе Ваших услуг или товаров. Всего от 5000 рублей в месяц
Подробнее…
Social media marketing (SMM) — продвижение в социальных медиа
Реклама в Однокласcниках и на Mail.ru Создание, ведение и раскрутка групп и реклама ВКонтакте и Facebook. Всего от 5000 рублей в месяц
Подробнее…
Приглашаем к сотрудничеству рекламные агентства и веб-студии!
Внимание Акция! Приглашаем к сотрудничеству рекламные агентства и различные веб-студии России! Индивидуальные и взаимовыгодные условия сотрудничества.
Подробнее…
Ускоренная разработка любого сайта от 5 дней!
Внимание Акция! Ускоренная разработка любого сайта! Ваш сайт будет готов за 5-10 дней. Вы можете заказать разработку любого сайта «под ключ» за 5-10 рабочих дней, с доплатой всего 30% от его стоимости!
Подробнее…
Ждем новых друзей!
Внимание Акция! Ждем новых друзей! Скидка 10% на услуги по созданию и(или) обслуживанию вашего сайта при переходе к нам от другого разработчика.
Подробнее…
Приведи друга и получи скидку!
Внимание Акция! Приведи друга и получи скидку! Скидка 10% на услуги по созданию и(или) обслуживанию вашего сайта, если клиент заказавший наши услуги, пришел по Вашей рекомендации.
Подробнее…
Макеты страниц
Во всех популярных текстовых редакторах встраиваются функции поиска и исправления ошибок. Уверены, вы уже успели ощутить данный сервис на себе — это очень приятно и удобно в использовании. Допустим, вам периодически необходимо обновлять Web-pecypc новостями, можно воспользоваться функциями проверки ошибок, просто подключив соответствующие библиотеки, словари и необходимые файлы для этого. Думаем, не стоит объяснять вам, на что это может повлиять. Прежде всего, если аудитория вашего ресурса состоит из серьезных людей, т. е. потенциальных клиентов вашей фирмы или же каких-либо научных сотрудников и т. д., то вопрос о грамотном написании новостей или каких-либо объявлений вообще дол -жен отсутствовать. Серьезные фирмы — это прежде всего серьезное отношение к делу, а ваш Web-ресурс будет лицом вашего предприятия. Пожалуй, не каждому директору хотелось бы иметь Web-ресурс с ошибками. Для этого и были созданы в РНР функции контроля синтаксиса. В этой главе будут рассмотрены следующие вопросы:
• функции ispell, aspell и pspell;
• создание конфигурации;
• вызов файлов контроля синтаксиса;
• списки слов проверки орфографии и принципы работы с ними;
• функции непосредственной проверки орфографии;
• функция игнорирования слов определенной длины.