<?php
//scan "uploads" folder and display them accordingly
$scan = scandir('uploads');
foreach($scan as $file)
{
if (is_image("uploads/$file"))
{ ?>
<p><?php echo "this is an image"; ?></p>
<?php
}
if (is_pdf("uploads/$file"))
{ ?>
<p><?php echo "this is an PDF file"; ?></p>
<?php
}
if (is_html("uploads/$file"))
{ ?>
<p><?php echo "this is an HTML file"; ?></p>
<?php
}}
?>
Я хочу отобразить файл как тип файла. Если файл является изображением, то это изображение, если файл PDF, то файл PDF.
Пожалуйста, помогите мне с этим кодом. Пожалуйста, пожалуйста
Вы можете сделать простой str_pos()
/ substr()
определить, содержит ли строка расширение .pdf или .html или .png / .jpg.
Вот пример кода:
if (substr($filename, -4) == '.jpg') {
echo "Jpeg!";
}
Просто сделайте другие переключатели для разных типов файлов, и вы золотой. В идеале, передать все файлы одной функции и иметь всю логику, содержащуюся там.
я хотел бы использовать DirectoryIterator
и его методы, как это:
$scan = "uploads";
$dir = new DirectoryIterator($scan);
foreach ($dir as $file) {
if (!$file->isDot()) {
$ext = $file->getExtension();
switch ($ext) {
case "img":
case "png":
case "gif":
$text = "This is an image";
break;
case "html":
$text = "This is HTML";
break;
case "pdf":
$text = "This is PDF";
break;
default:
$text = "";
}
echo $text;
}
}
Вам не нужно полагаться на расширение файла:
$fi = finfo_open(FILEINFO_MIME_TYPE);
foreach(scandir('uploads') as $file) {
echo finfo_file($fi, $file);
}
Или получить расширение:
echo pathinfo($file, PATHINFO_EXTENSION);