我需要在多个远程服务器上找到文件名_template
。
该文件将具有以下两种扩展名之一:
_template.htm
要么
_template.php
我可以在远程服务器上找到一个使用cURL的文件,这个文件很简单,但无法解决如何查找其中一个的问题。
代码处于循环中,它会搜索此文件的大约20个不同的网站,如果它发现它只需要说:找到它如果它找不到任何需要说明的两个文件:无找到。
我目前的代码不起作用,知道为什么它不起作用感谢我们想知道我怎么能让它工作:(这是一个循环)
$template_file = glob("/_template.{htm,php}", GLOB_BRACE);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $client_link.$template_file);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
$data = curl_exec($ch);
curl_close($ch);
preg_match_all("/HTTP\/1\.[1|0]\s(\d{3})/",$data,$matches);
$code = end($matches[1]);
if(!$data)
{
echo "No Files Found<br>";
}
else
{
if($code == 200)
{
$filefound = 'Found'.$template_file;
}
elseif($code == 404)
{
$filefound = '404 File not Found';
}
}
答案 0 :(得分:1)
问题在于glob
函数 - 该函数匹配本地文件系统上的路径。添加print_r($template_file);' after the
glob`,您会发现它与任何内容都不匹配(或者只匹配本地系统上的内容)。
您需要做的是逐个构建网址:
foreach(array("htm", "php") as $ext)
{
// build the URL string
$url = "http://example.com/_template." . $ext;
// now do whatever you need to with the URL...
}