2

我正在使用这个 PHP 元素向我的搜索引擎添加拼写建议。到目前为止,它成功了一半。

问题是当我单击要填充搜索框并执行另一个查询的建议时。

我已经尝试过很多次编辑代码,但似乎对这个问题视而不见。

<?php 

error_reporting(0); 

if ($_POST['query']) { 
    $query = ($_POST['query']);
    $q_words = explode (" ", $query);
    $loop_count = 0;
    $q_count = count($q_words);
    $s_count = 0;
    $ss_count = 0;
    echo ('<h4>Did you mean ....?</h4>');
    while ($loop_count <= $q_count ) {
        $query = 'http://www.dictionaryapi.com/api/v1/references/collegiate/xml/'.$q_words[$loop_count].'?key=XXXXXXXXXXXXX85a'; $xml = new SimpleXMLIterator(file_get_contents($query));

        foreach ($xml -> suggestion as $suggestion[$s_count]) {
            $s_count++;
        }

        if ($s_count > 1) {
            while ($ss_count <=$s_count) {
                echo '<a href = "Wedn.php?query='.$q_words[$loop_count-1].' '.$suggestion[$ss_count].'">'.$q_words[$loop_count-1].' '.$suggestion[$ss_count].'</a><br>';
                $ss_count++; 
            }
        }

        $loop_count++; 
    } 
}
?>

我收到以下错误消息:

注意:未定义的偏移量:第 23 行 /home/msc2012/04665236/public_html/WEB-INF/bootstrap/rewrite.php 中的 -1

注意:未定义的偏移量:第 25 行 /home/msc2012/04665236/public_html/WEB-INF/bootstrap/rewrite.php 中的 -1

4

2 回答 2

0

在你的第一个循环中,你试图得到$q_words[-1]$loop_count = 0所以$q_words[$loop_count-1]=>$q_words[-1]

$loop_count = 0;
...
while ($loop_count <= $q_count ) {
    ...
    if ($s_count > 1) {
        while ($ss_count <=$s_count) {
            echo '<a href = "Wedn.php?query='.$q_words[$loop_count-1].' '.$suggestion[$ss_count].'">'.$q_words[$loop_count-1].' '.$suggestion[$ss_count].'</a><br>';
                                                      ^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^
            $ss_count++; 
        }
    }

    $loop_count++; 
} 

我想你想把这两个都改成$q_words[$loop_count]

于 2013-07-27T15:08:12.703 回答
0

您的链接“Href”网址在其查询中不能有空格

echo '<a href = "Wedn.php?query='.$q_words[$loop_count-1].'_'.$suggestion[$ss_count].'">'
             .$q_words[$loop_count-1].' '.$suggestion[$ss_count]
    .'</a><br>';
于 2013-07-27T14:38:49.543 回答