我在定位 PHP 脚本以允许我获取远程服务器上的 txt 文件的内容,然后输出到变量时遇到问题。将某些内容输出到变量并不是困难的部分。拾取和读取文件的内容是困难的部分。有人有想法么?
我搜索了论坛,只能找到一种在本地有效的方法。不理想,因为目标很远。
真正的目标是,我如何找出远程服务器上是否存在文件并在 html 中输出状态。
想法?
我在定位 PHP 脚本以允许我获取远程服务器上的 txt 文件的内容,然后输出到变量时遇到问题。将某些内容输出到变量并不是困难的部分。拾取和读取文件的内容是困难的部分。有人有想法么?
我搜索了论坛,只能找到一种在本地有效的方法。不理想,因为目标很远。
真正的目标是,我如何找出远程服务器上是否存在文件并在 html 中输出状态。
想法?
假设您的远程服务器可以通过http
或者ftp
您可以使用file_exists()
:
if (file_exists("http://www.example.com/somefile.txt")) {
echo "Found it!;
}
或者
if (file_exists("ftp:user:password@www.example.com/somefile.txt")) {
echo "Found it!;
}
您可以尝试使用此代码:
if (file_exists($path)) {
echo "it exists";
} else {
echo "it does not exist";
}
如您所见$path
,是文件的路径。当然,您可以编写其他任何内容来代替那些echo
.
用这个:
$url = 'http://php.net';
$file_headers = @get_headers($url);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
echo "URL does not exist";
}
else {
echo "URL exists";
}
来源:http ://www.php.net/manual/en/function.file-exists.php#75064
访问其他服务器上的文件可能非常棘手!如果您可以通过 ftp 访问该文件,则可以使用 ftp 来获取该文件,例如使用ftp_fget()。
如果您无法通过 ssh 访问文件系统,则只能检查服务器在请求文件时给出的响应。如果服务器响应错误 404,则该文件不存在或由于服务器配置而无法通过 http 访问。
可以通过 curl 来查看,通过 curl 获取响应码的详细解释见本教程。
我知道这是一个旧线程,但正如 Lars Ebert 指出的那样,检查远程服务器上是否存在文件可能很棘手,因此使用 cURL 检查服务器响应是我能够在我们的大型旅游网站。每次使用 file_exists() 都会引发错误,但检查“200 OK”已证明非常成功。这是我们用于检查酒店列表页面图像的代码:
$media_url = curl_init("http://pathto/remote_file.png");
curl_setopt($media_url, CURLOPT_RETURNTRANSFER, true);
$media_img = curl_exec($media_url);
$server_response = curl_getinfo($media_url, CURLINFO_HTTP_CODE);
if($server_response != 200){
echo "pathto/graphics/backup_image.png";
}else{
echo "http://pathto/remote_file.png";
}
其中“ http://pathto/remote_file.png ”是我们寻找的远程图像,但我们需要知道它是否真的存在。如果远程图像不存在,我们将显示“pathto/graphics/backup_image.png”。
与 file_exists() 相比,我知道它非常冗长,但至少到目前为止它也更准确。