Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Entwicklung: So implementieren Sie Anti-Hotlinking- und Wasserzeichenfunktionen

PHP-Entwicklung: So implementieren Sie Anti-Hotlinking- und Wasserzeichenfunktionen

WBOY
WBOYOriginal
2023-09-20 16:48:27957Durchsuche

PHP-Entwicklung: So implementieren Sie Anti-Hotlinking- und Wasserzeichenfunktionen

PHP-Entwicklung: Für die Implementierung von Anti-Hotlinking- und Wasserzeichen-Funktionen sind spezifische Codebeispiele erforderlich

Einführung:
Im Internetzeitalter sind Bild-Anti-Hotlinking- und Wasserzeichen-Funktionen sehr wichtig Diebstahl Ihrer Bildressourcen und gleichzeitiger Schutz Ihres Bildurheberrechts. In diesem Artikel wird die Verwendung der PHP-Sprache zur Implementierung von Anti-Leeching- und Wasserzeichenfunktionen vorgestellt und spezifische Codebeispiele bereitgestellt.

1. Implementierung der Anti-Hotlinking-Funktion:
Die Anti-Hotlinking-Funktion bezieht sich auf das direkte Zitieren Ihrer Bildressourcen auf anderen Websites. Um dies zu verhindern, können wir serverseitig Urteile fällen und nur bestimmten Anfragequellen den Zugriff auf Bilder erlauben.

Das Folgende ist ein Codebeispiel, bei dem PHP zur Implementierung der Anti-Hotlinking-Funktion verwendet wird:

<?php
$referer = $_SERVER['HTTP_REFERER']; // 获取请求来源
$allowed_domains = array('www.example.com', 'subdomain.example.com'); // 定义允许的请求来源域名列表

$allowed = false;
foreach ($allowed_domains as $domain) {
    if (strpos($referer, $domain) !== false) {
        $allowed = true;
        break;
    }
}

if (!$allowed) {
    // 如果请求来源不在允许的域名列表中,则返回403 Forbidden状态码
    header('HTTP/1.1 403 Forbidden');
    exit;
}

// 允许请求来源访问图片
// 这里是输出图片的代码
?>

Im obigen Code erhalten wir zunächst die Quellseite der Anfrage über $_SERVER['HTTP_REFERER']. Anschließend definieren wir die Liste der zulässigen Domänennamen $allowed_domains, die entsprechend der tatsächlichen Situation geändert werden kann. Als nächstes verwenden wir eine Schleife, um zu prüfen, ob die Anforderungsquelle in der Liste der zulässigen Domänen enthalten ist, und wenn ja, setzen wir die Variable $allowed auf true. Wenn $allowed schließlich „false“ ist, wird der Statuscode 403 Forbidden zurückgegeben, der angibt, dass der Zugriff verweigert wurde.

2. Implementierung der Wasserzeichenfunktion:
Die Wasserzeichenfunktion bezieht sich auf das Hinzufügen einiger Identifikationsinformationen zum Bild, um das Urheberrecht und die Quelle des Bildes zu schützen. Wir können die GD-Bibliothek von PHP verwenden, um die Bildwasserzeichenfunktion zu implementieren.

Das Folgende ist ein Codebeispiel für die Verwendung von PHP zur Implementierung der Bildwasserzeichenfunktion:

<?php
$source_image = 'path/to/source/image.jpg'; // 原始图片路径
$watermark_image = 'path/to/watermark/image.png'; // 水印图片路径
$save_path = 'path/to/save/image.jpg'; // 保存图片路径

$source = imagecreatefromjpeg($source_image);
$watermark = imagecreatefrompng($watermark_image);

$source_width = imagesx($source);
$source_height = imagesy($source);

$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);

$offset_x = ($source_width - $watermark_width) / 2; // 水印位置居中
$offset_y = ($source_height - $watermark_height) / 2;

imagecopy($source, $watermark, $offset_x, $offset_y, 0, 0, $watermark_width, $watermark_height); // 合并图片

imagejpeg($source, $save_path); // 保存图片

imagedestroy($source);
imagedestroy($watermark);
?>

Im obigen Code verwenden wir zunächst die Funktionen imagecreatefromjpeg() und imagecreatefrompng(), um die Ressourcen des Originalbilds und des Wasserzeichenbilds zu erstellen jeweils. Anschließend erhalten wir über die Funktionen imagesx() und imagesy() die Breiten- und Höheninformationen des Originalbildes und des Wasserzeichenbildes, um die Position des Wasserzeichens anzupassen.

Als nächstes berechnen wir die Position des Wasserzeichens, hier platzieren wir das Wasserzeichen in der Mitte des Originalbildes. Verwenden Sie dann die Funktion imagecopy(), um das Wasserzeichenbild mit dem Originalbild zusammenzuführen.

Schließlich verwenden wir die Funktion imagejpeg(), um das zusammengeführte Bild im angegebenen Pfad zu speichern. Um Serverressourcen zu sparen, rufen Sie nach dem Speichern des Bildes unbedingt die Funktion imagedestroy() auf, um die Ressourcen des Originalbilds und des Wasserzeichenbilds zu zerstören.

Fazit:
Dieser Artikel stellt die Verwendung der PHP-Sprache zum Implementieren von Anti-Leeching- und Wasserzeichenfunktionen vor und bietet spezifische Codebeispiele. Durch die Implementierung dieser Funktionen können Sie Ihre Bildressourcen vor Diebstahl schützen und Ihr Bildurheberrecht schützen. Ich hoffe, dieser Artikel ist hilfreich für Sie.

Das obige ist der detaillierte Inhalt vonPHP-Entwicklung: So implementieren Sie Anti-Hotlinking- und Wasserzeichenfunktionen. 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