【问题标题】:How to index pages to MySQL for my custom PHP search engine [closed]如何为我的自定义 PHP 搜索引擎将页面索引到 MySQL [关闭]
【发布时间】:2012-10-20 02:15:00
【问题描述】:

我有一个简单的 PHP 脚本,可以在 MySQL 数据库表中搜索请求的关键字。但是,我正在尝试制作一个给定 URL 的 PHP 脚本,该脚本将导入该页面并获取“内容”ID 中的所有内容。这可能吗?如果不是我愿意使用 JavaScript/jQuery。

提前致谢:)

如果您需要更多说明,请告诉我。

【问题讨论】:

  • 就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、参考资料或特定专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您认为这个问题可以改进并可能重新打开,请参阅常见问题解答以获得指导。

标签: php javascript mysql search-engine


【解决方案1】:

您可能会发现此扩展很有用: http://www.php.net/manual/en/book.dom.php

下面的sn-p会返回id="content"的元素的内容:

  $url = 'http://www.example.com/';

  $doc = new DomDocument;
  $doc->load($url);

  $content_element = $doc->getElementById('content');
  $contents = $doc->saveXML($content_element); 

【讨论】:

  • 我尝试了上面的代码,但是在运行脚本时收到以下错误 ----- 警告:DOMDocument::load() [domdocument.load]: I/O warning : failed to load外部实体
  • 我编辑了我的答案。试一试。
  • 我尝试了新代码,但得到了一整页的错误(我将它们复制到 JSfiddle jsfiddle.net/Y3f23)。同样在我的数据库中,内容的条目仅替换为“”。有什么想法吗?
【解决方案2】:

是的,这是可能的,我建议也许使用 cURL。

然后你可以输入一个 URL,它会抓取页面。

<?php

$ch = curl_init('http://finance.google.com/finance');

curl_setopt($ch,CURLOPT_HEADER,0); 

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); // Give us the page source

$cr = curl_exec($ch);

preg_match_all('/href="()"/i',$cr,$pm,PREG_SET_ORDER);

print_r($pm);

foreach($pm as $pv) echo $pv[1] . "\r\n";

?>

您将要编辑该预匹配以确保您只获得所需的内容,然后您可以将其拆分并插入到数据库中。

请注意,这不是很有效的带宽。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多