我在查找PHP脚本时遇到问题,这样我就可以在远程服务器上获取txt文件的内容,然后输出到变量。将某些东西输出到变量并不困难。这是拾取和读取文件内容的难点。有人有什么想法吗?
我已经搜索了论坛,只能找到一个在本地工作的方法。不太理想,因为目标是遥远的。
目标实际上是,我如何确定远程服务器上是否存在文件并以html格式输出状态。
想法?
答案 0 :(得分:4)
假设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!;
}
答案 1 :(得分:3)
使用此:
$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
答案 2 :(得分:3)
您可以尝试使用此代码:
if (file_exists($path)) {
echo "it exists";
} else {
echo "it does not exist";
}
如您所见,$path
是您文件的路径。当然,您可以编写任何其他内容而不是echo
。
答案 3 :(得分:2)
访问其他服务器上的文件可能非常棘手!如果您可以通过ftp访问该文件,则可以使用ftp来获取文件,例如使用ftp_fget()。
如果您无法通过ssh访问文件系统,则只能检查服务器在请求文件时提供的响应。如果服务器响应错误404,则该文件不存在或由于服务器配置而无法通过http访问。
您可以通过curl查看此内容,有关通过curl获取响应代码的详细说明,请参阅this tutorial。
答案 4 :(得分:0)
我知道这是一个旧线程,但正如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()相比,我知道它非常冗长,但至少到目前为止它还更准确。