用PHP构建的搜索栏是否也可以搜索静态网页?

时间:2014-11-25 07:40:21

标签: php search-box

我希望我的网站有一个搜索栏,我的网站是在核心PHP中创建的。

我网站的某些部分有静态页面,有些部分有动态页面。

  1. 我的开发人员说不建议定制 PHP中的搜索栏可以在静态页面上工作,就像它一样 太慢,因为它会进行文件夹内搜索。按他的说法 cutomised搜索栏最适合仅动态页面,和 因此我应该实施Google API。

  2. 为什么我对构建Google API搜索框不感兴趣?因为我的开发人员无法自定义它的设计,标准框没有与我的网站设计混合。

  3. 关于如何做任何一点的任何建议或建议。

4 个答案:

答案 0 :(得分:2)

如果在数据库中保存静态页面,工作会更容易

答案 1 :(得分:1)

  1. 他说得对,真的很慢。但是使用正确的缓存系统可以捕获它。

  2. 谷歌搜索栏可以像这样轻微定制:http://www.elitepvpers.com/forum/ 但我真的给你一些很棒的功能和一个轻微的谷歌提升

答案 2 :(得分:0)

就像Jawlon Rodriguez所说,你需要在数据库中为静态内容创建表,将所有文本和HTML,CSS,JS内容保存在表中并将其取出。更好更快。

答案 3 :(得分:0)

为什么不让客户信任他们的开发者?他绝对正确。

  1. 通过静态页面进行动态搜索确实需要通过文件系统进行搜索,这种搜索速度很慢(可以通过缓存来防止)。

  2. 谷歌搜索栏不是真正可定制的,并不是因为"他无法做到这一点",而是因为它仅受谷歌的限制。你用他们的产品?你得到他们的品牌。它就这么简单。

  3. PHP让您有能力创建动态网站。你只需要使用它。如果您将内容存储在数据库中,您将获得全文搜索的优势。

  4. 如果您有一个死的简单网站,请考虑使用静态内容设置XML(或您喜欢的任何格式),并将其与实际页面的URL相关联。例如,这可能是这样的:

  5. XML文件

    <?xml version="1.0"?>
    <pages>
        <page>
            <url>http://google.com</url>
            <title>Some title</title>
            <content>
                The quick brown fox jumps over the lazy dog
            </content>
        </page>
    
        <page>
            <url>http://yahoo.com</url>
            <title>Ohai Catz</title>
            <content>
                The quick Cat kitten cat cat
            </content>
        </page>
    </pages>
    

    示例PHP

    <?php
    
    // String to search for
    $searchString = 'Cat';
    
    $xml = simplexml_load_file('staticpages.xml');
    
    $pageMatches = [];
    
    foreach( $xml->page AS $page )
    {
        // Check if the keyword exists in either the title or the content 
        if( stristr($page->content, $searchString) !== false || stristr($page->title, $searchString) !== false )
        {
            $pageMatches[] = $page;
        }
    }
    ?>
    
    <?php echo $searchString ?> has been found on the following pages: <br>
    
    <?php foreach( $pageMatches AS $match ): ?>
        <a href="<?php echo $match->url ?>"><?php echo $match->url ?></a><br>
    <?php endforeach ?>
    

    <强>输出

    Cat has been found on the following pages: 
    http://yahoo.com
    

    这种方法的优点:

    • 没有数据库
    • 通过小幅调整,您可以从XML中显示您网站的内容,因此您拥有数据的中心来源
    • 您可以向XML添加标签或关键字等附加信息,以使搜索更加精确

    现在大劣势会立即取消此方法的有效搜索资格:

    • 您需要实施搜索算法。

    我用stristr()模拟了它。如果您希望使用可用结果进行搜索,则需要投入大量精力和精力。也许你会在互联网上偶然发现一些算法。但搜索算法本身就是一门科学。谷歌不是一家价值数十亿美元的公司。牢记这一点