2016-03-30 132 views
1

我正在寻找一种方法来查看本地服务器上是否存在文件。如果函数存在,我通常会使用,但在这种情况下,它不是一个选项。 我的问题是我怎么能得到2号返回true。检查服务器上是否存在php文件

1.Returns真:

$acf_funcs = $_SERVER['DOCUMENT_ROOT'] . '/wp-content/themes/vac3/acf/page_meta/functions.php'; 
var_dump(file_exists($acf_funcs)); 

2.Returns假:

$acf_funcs = 'http://vac3:8888/wp-content/themes/vac3/acf/page_meta/functions.php'; 
var_dump(file_exists($acf_funcs)); 
+3

'file_exists'只会检查文件是否存在LOCALLY ...所以,除非你有一个名为'http:'的目录'它将返回false ..你需要在本地寻找......这就是为什么# 1将返回true,#2不会。 – Zak

+0

你放弃了还是什么? – AbraCadaver

回答

2

要检查本地服务器文件系统,您需要从URL中获取路径组件:

var_dump(file_exists($_SERVER['DOCUMENT_ROOT'] . parse_url($acf_funcs, PHP_URL_PATH))); 

在上述:

parse_url($acf_funcs, PHP_URL_PATH) 

返回:/wp-content/themes/vac3/acf/page_meta/functions.php和预未决$_SERVER['DOCUMENT_ROOT']产生相同的作为第一个例子。

但是,这不会检查文件是否通过http://vac3:8888可用。

2

不能使用file_exists - 你需要使用get_headers

$headers = get_headers('http://vac3:8888/wp-content/themes/vac3/acf/page_meta/functions.php', 1); 
$file_found = stristr($headers[0], '200'); 
相关问题