在PHP中为动态站点生成Sitemap.xml文件

时间:2012-04-09 06:45:38

标签: php dynamic curl sitemap

如何为所有唯一链接抓取网站并将XML文件创建/写入该相应域的根目录。我想要的东西就像我调用mydomain.com/generatesitemap.php这个文件抓取域中的所有链接并将它们写入文件sitemap.xml。这有可能在PHP中使用cURL吗?

1 个答案:

答案 0 :(得分:0)

这取决于您的网站。如果它是简单的网站 - 那么任务很简单。通过curl或file_get_contents获取您的站点根页面,preg_match所有链接(参见此处,参考http://www.mkyong.com/regular-expressions/how-to-extract-html-links-with-regular-expression/),然后以递归方式获取站点内的所有链接,不处理已经处理完的链接

当JavaScript发挥作用时,任务变得更加复杂。如果导航使用JavaScript数据,则很难获得链接。可能还有其他导航技巧,例如select-combobox作为下拉菜单。

如果您的页面包含查询字符串,则任务可能会更复杂。假设您有目录部分。网址是这样的:

/catalogue
    /catalogue?section=books
    /catalogue?section=papers
    /catalogue?section=magazines

是否是一页?

那个呢?

 /feedback
 /feedback?mode=sent

所以你应该照顾这个案子。

Google搜索中有很多此类抓取工具的示例。比如说:

http://phpcrawl.cuab.de/