这不是一个重复的问题,经过彻底检查。
我想检测 REMOTE SERVER 上是否存在.xml文件(没有FTP)。人们可以拥有任意名称的xml文件,因此我不知道名称只是扩展部分很重要。
我尝试了三种获取文件信息的方法
使用' glob' (我认为只在当地工作)
$finfo = finfo_open(FILEINFO_MIME_TYPE);
foreach (glob("*xml") as $filename)
{
echo finfo_file($finfo, $filename);
if(finfo_file($finfo, $filename) == 'application/xml')
{
++$sitemap;
echo "sitemap exists ";
}
}
if($sitemap == 0)
{
echo "sitemap does not exist";
}
使用headers和pathinfo()(适用于远程文件但需要文件名)
$url = 'http://seo.hfarazm.com';
$fileName = 'ANY_NAME.xml'; // currently sitemap.xml exists
$file = $pathInfo['dirname'].'/'.$fileName;
$file_headers = @get_headers($file);
if($file_headers[0] == 'HTTP/1.1 404 Not Found')
{
if($fileName == "sitemap.xml")
{
echo 'Sitemap does not exist';
$exists = false;
}
else
{
echo 'sitemap exists';
$exists = true;
}
}
但是因为我将要访问许多远程服务器,所以我无法知道目录中远程xml文件的名称。解决方案是什么,以便可以检测到扩展名为.xml的远程服务器上的任何文件名?