Получение PHP Pspell для возврата исправленного слова в качестве переменной - PullRequest
0 голосов
/ 26 августа 2011

У меня есть этот скрипт:

<?php
ob_start();
$get = $_GET['q'];
$pspell = pspell_new('en','canadian','','utf-8',PSPELL_FAST);

function spellCheckWord($word) {
    global $pspell;
    $autocorrect = TRUE;
    $word = $word[0];  
    if (preg_match('/^[A-Z]*$/',$word)) return $word;
    if (pspell_check($pspell,$word)) return $word;
    if ($autocorrect && $suggestions = pspell_suggest($pspell,$word))
    return '<u>'.current($suggestions).'</u>';
    return '<b>'.$word.'</b>';
};

function spellCheck($string) {
    return preg_replace_callback('/\b\w+\b/','spellCheckWord',$string);
};

$var = ob_get_clean();
echo $get."<br>";
echo $var;
?>

Я хочу, чтобы исправленная строка была помещена в переменную из моей функции.

1 Ответ

0 голосов
/ 26 августа 2011

У вас полное неправильное понимание синтаксиса PHP.возвращение строки из функции НЕ выводит строку.Ни одна из ваших функций не выполняет никакого фактического вывода (echo, printf и т. Д.), Поэтому выходной буфер НИЧЕГО не захватывает.Конечно, в этом скрипте нет ничего, что требовало бы буферизации, поэтому это просто какой-то бесполезный код.

Ваши функции проверки орфографии также НЕ выполняютсяТаким образом, по сути, весь этот скрипт НИЧЕГО не выполняет, кроме вывода параметра _GET.

<?php

$get = $_GET['q'];

function spellCheckWord($word) {
    $pspell = pspell_new('en','canadian','','utf-8',PSPELL_FAST);
    ...
}

function spellCheck($string) {
    return preg_replace_callback('/\b\w+\b/','spellCheckWord',$string);
}
echo $get, "<br>";
echo spellCheck($word);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...