| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Sanja v.2 05.03.2005 12:46
Держите прототип, можете сами довести до ума.@REM @REM #################################################################### @REM # # @REM # bat-файл - "прокладка" между parser и ispell # @REM # # @REM #################################################################### @REM @ECHO OFF @ECHO Content-type: text/plain @ECHO. @ECHO. SETLOCAL @REM Обратите внимание, что используются имена файлов в формате 8.3 SET ISPELLDICTDIR=C:\4F3E~1\GFK_FO~1\DE27~1\LOCALH~1\HTML\ETC\ISPELL %ISPELLDICTDIR%\ispell.exe -a -B -d russian < %1 ENDLOCAL ERASE /Q /F %1затем создаёте в корневой папке ispell.html такого содержания:
@main[]
#
# Это чтобы страница не попадала в кэш браузера, а каждый раз
# запрашивалась бы с сайта заново:
#
$response:cache-control[ $.value[0]]
$response:pragma[ $.value[no-cache]]
#
# А тут, собственно, текст самой страницы, выдаваемый браузеру:
#
$result[<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<title>Тест ispell</title>
</head>
<body>
<h1>Тест ispell</h1>
# Получаем значение формы:
$message[^taint[optimized-html][$form:message]]
# Если оно задано, выполняем проверку грамматики:
^if(def $message){
# Сохраняем поле формы в текстовый файл:
$random[${request:document-root}etc/ispell/temp/ispell_temp_file_^math:uid64[].txt]
^message.save[$random]
# Не забываем заменить unix-слэши на windows:
$windows_slashes[^table::create{from to
/ \}]
# Вызываем ispell.exe и скармливаем ему наш файл:
$ispelled[^file::cgi[C:\4F3E~1\GFK_FO~1\DE27~1\LOCALH~1\html\etc\ispell\run_from_webpage.bat;;"^random.replace[$windows_slashes]"]]
$tbl_message_ispell[^table::create{lin
$ispelled.text}]
# Таблица для хранения слов с ошибками и вариантами:
$tbl_suggestions[^table::create{word suggestions}]
^tbl_message_ispell.menu{
# <i>$tbl_message_ispell.lin</i> <br>
^if( ^tbl_message_ispell.lin.left(1) eq "*" || ^tbl_message_ispell.lin.left(1) eq "@"){}{
$dummy[
^tbl_message_ispell.lin.match[& (.+) (\d+) (\d+): (.+)][]{^tbl_suggestions.append{$match.1 $match.4}}
^tbl_message_ispell.lin.match[# (.+) (\d+)][]{^tbl_suggestions.append{$match.1 ?}}
]
}
}
<pre>$message</pre>
^tbl_suggestions.menu{
<i>$tbl_suggestions.word ------> $tbl_suggestions.suggestions</i>
}[<br>]
<p><a href="./ispell.html">another test</a>
}{
<form action="./ispell.html" method="post">
<textarea name="message" rows="7" cols="50"></textarea>
<input type=submit>
</form>
}
</body>
</html>
] Не забудьте отредактировать путь к bat-файлу в коде (ОБЯЗАН быть в формате 8.3)