7

我正在为我的项目开发一个 SEO 系统,并且正在用一个页面优化所有链接。

文件摘录.htaccess

RewriteRule ^(.+)$ seo.php [L,QSA]

此 SEO 文件 ( seo.php) 将获取请求的路径并将其解析为我的脚本中的有效 url。

include('cat.php?catid=1')在最后使用seo.php,一切正常,但我想知道哪个更快:include()还是file_get_contents()

当我使用file_get_content('cat.php?catid=1')时,它会显示 PHP 文件的源代码,但是当我使用 时file_get_content('http://localhost/cat.php?catid=1'),它会显示正常页面。

那么,哪个更快:file_get_content()include()

4

4 回答 4

15

他们当然不一样

  • Include 将解析其中的 PHP 代码
  • file_get_contents 将只返回内容

因此,如果您只想检索页面使用的 html 内容,file_get_contents否则如果您需要解析 PHP 代码使用include();

注意:如果您想检索托管在您网站上的页面的内容,您应该使用本地路径而不是资源的 Web 路径,即:

  • 做:file_get_contents('/home/user/site/file.html');
  • 不要:file_get_contents('http://example.com/file.html');
于 2012-05-02T19:16:51.250 回答
2

如果您将自己的本地文件作为模板的一部分加载,请使用requireinclude. 当然你可以使用require_onceor include_once,但不要file_get_contents用于本地文件。

这与性能没有任何关系,它与目的有关。file_get_contents不存在用于动态加载模板依赖项。除非您需要在显示之前解析它们的内容,或者它们位于其他域中,否则这不太可能。

于 2012-05-02T19:17:17.680 回答
0
  1. 这是一个毫无意义的问题。两个都够快。没有必要用不知从何而来的问题来困扰自己。
  2. 包括('cat.php?catid=1'); 永远不会工作
  3. 通过 HTTP 请求调用您自己的代码是错误的。

所以,代码应该是

include('cat.php');
于 2012-05-02T19:54:57.080 回答
-5

更正:您不能使用本地路径file_get_contents

file_get_contents('/home/user/site/file.html');  <-- will never work.

file_get_contents('http://site.com/file.html');  <-- this should work.
于 2012-08-16T22:16:26.503 回答