【问题标题】:Can a search bar built in PHP can also search static web pages?PHP内置的搜索栏也可以搜索静态网页吗?
【发布时间】:2015-01-23 03:01:45
【问题描述】:

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

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

  1. 我的开发人员说不建议构建自定义 PHP中的搜索栏可以在静态页面上工作,就像它一样 太慢了,因为它会进行文件夹内搜索。按照他的说法 定制的搜索栏仅在动态页面上效果最佳,并且 因此我应该实现一个 Google API。

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

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

【问题讨论】:

标签: php search-box


【解决方案1】:

如果将静态页面保存在数据库中,工作会更轻松

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:
      1. 他是对的,这真的很慢。但是使用正确的缓存系统是有可能捕捉到这一点的。

      2. Google 搜索栏可以稍微自定义如下:http://www.elitepvpers.com/forum/ 但我真的给了你一些很棒的功能和轻微的谷歌提升

      【讨论】:

        【解决方案4】:

        客户为什么不信任他们的开发人员?他完全正确。

        1. 通过静态页面进行动态搜索确实需要通过文件系统进行搜索,这非常慢(尽管可以通过缓存来阻止)。

        2. Google 搜索栏并不是真正可定制的,这不是因为“他无法做到”,而是因为它只是受到 Google 的限制。你用他们的产品吗?你得到他们的品牌。就这么简单。

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

        4. 如果您的网站非常简单,请考虑使用静态内容设置 XML(或您喜欢的任何格式)并将其与实际页面的 URL 链接。例如,这可能如下所示:

        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() 模拟了它。如果您想要一个具有可用结果的搜索,您必须投入大量的工作和努力。也许你会偶然发现互联网上的一些算法。但是搜索算法本身就是一门科学。谷歌不是一家价值数十亿美元的公司。记住这一点

        【讨论】:

        • 您好,Thomas,感谢您如此广泛的回复。也不是我不信任我的开发人员,只是我期望必须有一些替代方案来处理这个问题,正如你和其他人所建议的那样。
        猜你喜欢
        • 1970-01-01
        • 2012-01-25
        • 1970-01-01
        • 2010-10-24
        • 1970-01-01
        • 2014-04-17
        • 2011-10-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多