检查网址上是否存在pdf文件?

时间:2013-04-04 12:41:45

标签: php curl

<?php
set_time_limit(0);
$url  = 'http://www.some.url/file.pdf';
$path = 'files/file.pdf';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
file_put_contents($path, $data);
?>

这是我用来从给定网址下载特定pdf文件的代码。 如果该URL中有多个文件名称为file1.pdf,file2.pdf等,该怎么办?如何在运行循环时检查,何时结束循环,因为文件的数量有限?

请帮忙!

2 个答案:

答案 0 :(得分:5)

检查404代码:

$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
if($httpCode == 404) {
    /* file NOT found */
}

检查mime类型:

$mimeType = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
if($mimeType == 'application/pdf') {
    /* It IS pdf file */
}

但请注意,mime类型可以是其他类型,但它仍然是PDF文件!另外,请检查您的PDF文件的mime类型:echo以了解您必须查找的内容。我并不确定,if声明中的代码是正确的(仅示例

您可以在curl_get_info()之后立即致电curl_exec()

答案 1 :(得分:0)

pass image link inside file_get_contents();
then check using preg_match();
<?php $link = $image->img1;
$filecontent=file_get_contents($link);
if(preg_match("/^%PDF-1.5/", $filecontent)){
    echo "Valid pdf";
}else{
    echo "In Valid pdf";
}
?>

You can also check: to get last three character of your file

<?php
$img_type = substr($image->img1, -3); ?> 
<?php if(preg_match("/^%PDF-1.5/", $filecontent) || $img_type == 'pdf' ){ }?>