0

我想通过在我的文本字段中插入一个单词来搜索整个新闻提要。我不知道该怎么做。这是我的代码,所以你知道我的意思。

<form action="search.php" method="get">
    <tr><th>search: </th><td><input type="text" name="search" value="{$word}"></td></tr>
</form>

如何检查我在搜索栏中插入的单词是否存在于新闻提要中的某处?

我的新闻提要是这样使用的:

    $xml=simplexml_load_file("newsfeed.xml");
    foreach($xml->channel->item as $item) {
        echo '<h1 class="title">' . $item->title . '</h1>';
        echo '<p class="desc">'.$item->description."</p>";
}
4

2 回答 2

1

我认为您可以使用功能strpos

在 haystack 字符串中查找第一次出现 needle 的数字位置。

例子:

$a = 'Long text to look into it.'

if (strpos($a, 'it') !== false)
    echo 'true';

在您的情况下,您可以使用 strpos 在项目标题或项目描述中查找单词:

$a = $_GET['search'];

foreach($xml->channel->item as $item) {
    print_result = 0;  // flag to know if the search is in the feed.

    if (strpos($item->description, $a) !== false){
        print_result = 1;
    } // end if desc

    if (strpos($item->title, $a) !== false){
        print_result = 1;
    } // end if title


    if(print_result == 1){
        echo '<h1 class="title">' . $item->title . '</h1>';
        echo '<p class="desc">'.$item->description."</p>";
    } //end if print results.
} // end foreach
于 2013-09-16T14:17:21.833 回答
0

我会像你现在做的那样做一个 foreach:并为每个新闻项目制作某种相关点。如果它在标题中,那么它更相关,如果它在开头等等。然后您可以将其写入数组并对其进行排序。我希望你的 newsfeed.xml 中有一个类似 id 的东西。

于 2013-09-16T14:16:34.983 回答