Новости | 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)