Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich das Bildformat überprüfen, wenn ich Remote-Bilder mit PHP speichere?

Wie kann ich das Bildformat überprüfen, wenn ich Remote-Bilder mit PHP speichere?

WBOY
WBOYOriginal
2023-07-12 13:33:061700Durchsuche

Wie überprüfe ich das Bildformat beim Speichern von Remote-Bildern mit PHP?

Während der Entwicklung müssen wir manchmal Bilder lokal auf dem Remote-Server speichern, z. B. um von Benutzern hochgeladene Bilder zu speichern oder Bilder von Webseiten abzurufen. Um sicherzustellen, dass das gespeicherte Bildformat korrekt ist, müssen wir das Format des Remote-Bildes überprüfen. In diesem Artikel wird die Implementierung der Remote-Bildformatüberprüfung in PHP vorgestellt und entsprechende Codebeispiele bereitgestellt.

1. Ermitteln Sie das Format des Remote-Images

Um das Format des Remote-Images zu überprüfen, müssen Sie zunächst die Dateierweiterung des Remote-Images ermitteln. Sie können die PHP-Funktion getimagesize() verwenden, um Remote-Bildinformationen abzurufen, einschließlich der Breite, Höhe, des MIME-Typs usw. des Bildes. Nachdem wir den MIME-Typ erhalten haben, können wir die Dateierweiterung daraus extrahieren. getimagesize()函数来获取远程图片的信息,其中包括图片的宽度、高度、MIME类型等。在获取到MIME类型之后,我们可以从中提取出文件的扩展名。

以下是一个示例代码,用于获取远程图片的文件扩展名:

function getRemoteImageExtension($imageUrl){
    $imageInfo = getimagesize($imageUrl);
    $mime = $imageInfo['mime'];
  
    $extensions = [
        'image/jpeg' => 'jpg',
        'image/png' => 'png',
        'image/gif' => 'gif',
        // 其它图片格式
    ];
  
    $extension = $extensions[$mime] ?? '';
  
    return $extension;
}

// 调用示例
$imageUrl = 'https://example.com/image.jpg';
$extension = getRemoteImageExtension($imageUrl);
echo $extension;  // 输出:jpg

在示例代码中,使用了getimagesize()函数来获取远程图片的信息,然后通过数组的方式定义了不同类型图片的扩展名,最后从中获取到所需的扩展名。

二、校验远程图片的格式

在获取到远程图片的文件扩展名后,就可以进行校验了。可以将获取到的扩展名与允许的图片格式进行对比,判断远程图片是否符合要求。

以下是一个示例代码,用于校验远程图片的格式:

function validateRemoteImage($imageUrl){
    $extension = getRemoteImageExtension($imageUrl);
  
    $allowedExtensions = ['jpg', 'png', 'gif'];
  
    if(in_array($extension, $allowedExtensions)){
        return true;
    } else {
        return false;
    }
}

// 调用示例
$imageUrl = 'https://example.com/image.jpg';
if(validateRemoteImage($imageUrl)){
    echo '远程图片格式正确';
} else {
    echo '远程图片格式不正确';
}

在示例代码中,使用了in_array()

Das Folgende ist ein Beispielcode zum Abrufen der Dateierweiterung eines Remote-Bildes:

rrreee

Im Beispielcode wird die Funktion getimagesize() verwendet, um die Informationen des Remote-Bildes abzurufen, und dann durch das Array Die Methode definiert die Erweiterungen verschiedener Bildtypen und erhält schließlich die erforderlichen Erweiterungen daraus. 🎜🎜2. Überprüfen Sie das Format des Remote-Images🎜🎜Nachdem Sie die Dateierweiterung des Remote-Images erhalten haben, können Sie es überprüfen. Sie können die erhaltene Erweiterung mit den zulässigen Bildformaten vergleichen, um festzustellen, ob das Remote-Image die Anforderungen erfüllt. 🎜🎜Das Folgende ist ein Beispielcode zum Überprüfen des Formats von Remote-Bildern: 🎜rrreee🎜Im Beispielcode wird die Funktion in_array() verwendet, um zu bestimmen, ob die erhaltene Erweiterung zu den zulässigen Erweiterungen gehört. im Namensarray. Wenn es darunter ist, geben Sie „true“ zurück, was angibt, dass das Remote-Bildformat korrekt ist; andernfalls geben Sie „false“ zurück, was angibt, dass das Remote-Bildformat falsch ist. 🎜🎜Mit dem obigen Codebeispiel können wir die Remote-Bildformatüberprüfung in PHP implementieren. Wenn Sie ein Remote-Image speichern, ermitteln Sie zunächst die Dateierweiterung des Remote-Images und ermitteln Sie dann, ob es die Anforderungen erfüllt. Dadurch kann weitgehend vermieden werden, dass entfernte Bilder im falschen Format gespeichert werden. 🎜

Das obige ist der detaillierte Inhalt vonWie kann ich das Bildformat überprüfen, wenn ich Remote-Bilder mit PHP speichere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn