我正在为我的项目开发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()
?
答案 0 :(得分:12)
他们当然是不同的
因此,如果你只想要检索页面的html内容,请使用file_get_contents
否则如果需要解析PHP代码,请使用include();
注意:如果您想要检索网站上托管的网页内容,则应使用本地路径而不是资源的网络路径,即:
file_get_contents('/home/user/site/file.html');
file_get_contents('http://example.com/file.html');
答案 1 :(得分:2)
如果您要将自己的本地文件作为模板的一部分加载,请使用require
或include
。当然,您可以使用require_once
或include_once
,但不要将file_get_contents
用于本地文件。
这与表现没有任何关系,而是与目的有关。在模板依赖项中动态加载不存在file_get_contents
。除非你需要在展示之前解析他们的内容,或者他们在其他领域,这是非常不可能的。
答案 2 :(得分:0)
所以,代码应该是
include('cat.php');
答案 3 :(得分:-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.