VorwortSo bestimmt PHP, ob eine Datei ein Bild ist: 1. Verwenden Sie die Funktion getimagesize, um die Bildinformationen abzurufen, und treffen Sie dann eine Beurteilung. 2. Lesen Sie die ersten 2 Bytes des Bildes und treffen Sie dann eine Beurteilung die exif_imagetype-Funktion zur Beurteilung. 🔜 Über die Funktion habe ich nach relevanten Informationen gesucht und mehrere Methoden gefunden, darunter die Verwendung der Funktion getimagesize zum Abrufen von Bildinformationen und das anschließende Urteilen oder Lesen der ersten 2 Bytes des Bildes.
Wenn wir im Webdesign ein Bild benötigen, erhalten wir normalerweise den Dateinamen eines Bildes. Anhand des Dateinamens lässt sich nicht erkennen, ob es sich bei der Datei um eine Bilddatei handelt. Manche Leute denken vielleicht, dass sie anhand des Suffixnamens urteilen können. Vergessen Sie nicht, dass der Dateisuffixname nach Belieben geändert werden kann. Darüber hinaus werden Dateiformate unter Linux-Systemen nicht durch Suffixe unterschieden. Wenn Sie naiv glauben, dass Sie Bilder anhand von Suffixnamen unterscheiden können, wissen Sie beim Auftreten eines Fehlers möglicherweise nicht einmal, wo der Fehler liegt. Wenn beispielsweise eine nervige Person eine Textdatei in „background.jpg“ ändert und sie Ihnen zur Verwendung überlässt, denken Sie möglicherweise einfach, dass das Bild beschädigt ist, erwarten aber niemals, dass es sich nur um eine Textdatei handelt.
Um unnötige Probleme zu vermeiden, sollten Sie beim Erstellen eines Bildes richtig beurteilen, ob es sich bei der Datei tatsächlich um eine Bilddatei handelt. Drei Beurteilungsmethoden sind hier zusammengefasst. Freunde in Not können gemeinsam einen Blick darauf werfen. Methode 1
Verwenden Sie die Funktion getimagesize, um die Bildinformationen abzurufen, und fällen Sie dann eine Beurteilung: <?php # Script -- isimg.php
/* Author @ Huoty
* Date @ 2015-11-24 16:59:26
* Brief @
*/
function isImage($filename)
{
$types = '.gif|.jpeg|.png|.bmp'; //定义检查的图片类型
if(file_exists($filename))
{
if (($info = @getimagesize($filename))
return 0;
$ext = image_type_to_extension($info['2']);
return stripos($types,$ext);
}
else
{
return false;
}
}
if(isImage('isimg.txt')!==false)
{
echo isImage('1.jpg');
echo '是图片';
}
else
{
echo '不是图片';
}
?>
Methode 2
Lesen Sie die ersten 2 Bytes des Bildes und beurteilen Sie dann, ob es sich um ein Bild handelt:
<?php # Script -- isimg2.php /* Author @ Huoty * Date @ 2015-11-25 16:42:38 * Brief @ */ //判断上传的是不是图片 function isImg($fileName) { $file = fopen($fileName, "rb"); $bin = fread($file, 2); // 只读2字节 fclose($file); $strInfo = @unpack("C2chars", $bin); $typeCode = intval($strInfo['chars1'].$strInfo['chars2']); $fileType = ''; if($typeCode == 255216 /*jpg*/ || $typeCode == 7173 /*gif*/ || $typeCode == 13780 /*png*/) { return $typeCode; } else { // echo '"仅允许上传jpg/jpeg/gif/png格式的图片!'; return false; } } if (isImg("1.jpg")) { echo "是图片"; } else { echo "不是图片"; } ?>
Methode 3
Die letzte Methode besteht darin, die Funktion exif_imagetype zu verwenden, mit der der Typ eines Bildes bestimmt wird. Diese Methode ist einfacher. Lesen Sie die ersten Bytes eines Bildes und überprüfen Sie seine Signatur. Gibt eine entsprechende Konstante zurück, wenn eine passende Signatur gefunden wird, andernfalls wird FALSE zurückgegeben. Der Rückgabewert ist derselbe wie der Wert an Index 2 im von getimagesize() zurückgegebenen Array, diese Funktion ist jedoch viel schneller.
Die Rückgabewertkonstante dieser Funktion ist wie folgt definiert:
1 IMAGETYPE_GIF 2 IMAGETYPE_JPEG 3 IMAGETYPE_PNG 4 IMAGETYPE_SWF 5 IMAGETYPE_PSD 6 IMAGETYPE_BMP 7 IMAGETYPE_TIFF_II(Intel 字节顺序) 8 IMAGETYPE_TIFF_MM(Motorola 字节顺序) 9 IMAGETYPE_JPC 10 IMAGETYPE_JP2 11 IMAGETYPE_JPX 12 IMAGETYPE_JB2 13 IMAGETYPE_SWC 14 IMAGETYPE_IFF 15 IMAGETYPE_WBMP 16 IMAGETYPE_XBM
Beispiel:
<?php # Script -- isimg3.php /* Author @ Huoty * Date @ 2015-11-25 16:53:04 * Brief @ */ $mimetype = exif_imagetype("1.jpg"); if ($mimetype == IMAGETYPE_GIF || $mimetype == IMAGETYPE_JPEG || $mimetype == IMAGETYPE_PNG || $mimetype == IMAGETYPE_BMP) { echo "是图片"; } ?>
Das obige ist der detaillierte Inhalt vonSo ermitteln Sie in PHP, ob eine Datei ein Bild ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Der Artikel vergleicht Säure- und Basisdatenbankmodelle, wobei die Eigenschaften und angemessene Anwendungsfälle beschrieben werden. Säure priorisiert die Datenintegrität und -konsistenz, geeignet für finanzielle und E-Commerce-Anwendungen, während sich die Basis auf die Verfügbarkeit konzentriert und

In dem Artikel wird das Sicherung von PHP -Dateien -Uploads erläutert, um Schwachstellen wie die Code -Injektion zu verhindern. Es konzentriert sich auf die Dateitypvalidierung, den sicheren Speicher und die Fehlerbehandlung, um die Anwendungssicherheit zu verbessern.

In Artikel werden Best Practices für die Validierung der PHP-Eingabe erörtert, um die Sicherheit zu verbessern und sich auf Techniken wie die Verwendung integrierter Funktionen, den Whitelist-Ansatz und die serverseitige Validierung zu konzentrieren.

In dem Artikel werden Strategien zur Implementierung der API-Rate in PHP erörtert, einschließlich Algorithmen wie Token-Bucket und Leaky Bucket sowie Bibliotheken wie Symfony/Rate-Limiter. Es deckt auch die Überwachung, die dynamischen Einstellungsgeschwindigkeiten und die Hand ab

Der Artikel beschreibt die Vorteile der Verwendung von Password_hash und Passage_verify in PHP zum Sichern von Passwörtern. Das Hauptargument besteht

In dem Artikel werden OWASP Top 10 Schwachstellen in PHP- und Minderungsstrategien erörtert. Zu den wichtigsten Problemen gehören die Injektion, die kaputte Authentifizierung und XSS mit empfohlenen Tools zur Überwachung und Sicherung von PHP -Anwendungen.

In dem Artikel werden Strategien erörtert, um XSS-Angriffe in PHP zu verhindern, sich auf die Eingabe von Eingaben, die Ausgabecodierung und die Verwendung von Bibliotheken und Frameworks für Sicherheitsförderungen zu konzentrieren.

In dem Artikel wird die Verwendung von Schnittstellen und abstrakten Klassen in PHP erörtert und konzentriert sich darauf, wann sie jeweils verwendet werden sollen. Schnittstellen definieren einen Vertrag ohne Implementierung, der für nicht verwandte Klassen und multiple Vererbung geeignet ist. Abstrakte Klassen liefern eine gemeinsame Funktion


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft