Hauptmenü

Werkzeuge

Kategorien

Archiv

Daten zwischen zwei Datumswerten mit PHP im Format YYYY-MM-DD

Erstellt in PHP am 21. Oktober 2023 vom Daschmi

Mit folgender Funktion kann man die Tage zwischen zwei Daten im Format YYYY-MM-DD ermitteln.

/**
 * Gibt einen Array mit Tagen im Format YYYY-MM-DD zurück die zwischen $startDate und $endDate liegen
 *
 * @param string $startDate
 * @param string $endDate
 * @return string[]
 * @throws \Exception
 */
public static function getDatesBetween(string $startDate, string $endDate): array {

	$start = new \DateTime($startDate);
	$end = new \DateTime($endDate);
	$interval = new \DateInterval('P1D');
	$period = new \DatePeriod($start, $interval, $end->modify('+1 day'));

	$arDates = [];

	foreach ($period as $date) $arDates[] = $date->format('Y-m-d');
	
	return $arDates;

}

Bilder bei Upload automatisch auf maximale Auflösung begrenzen mit PHP

Erstellt in PHP am 17. Oktober 2023 vom Daschmi

In der modernen Web-Entwicklung ist das Hochladen von Bildern eine alltägliche Anforderung. Aber wie können wir sicherstellen, dass die hochgeladenen Bilder die richtige Größe haben, um sowohl den Speicherplatz als auch die Ladezeit zu optimieren? In diesem Blog-Beitrag werden wir einen einfachen, aber robusten PHP-Code vorstellen, der nicht nur ein Bild auf den Server lädt, sondern auch seine Abmessungen überprüft und anpasst.

Die Funktion verwendet die PHP-GD-Bibliothek, um die Abmessungen des hochgeladenen Bilds zu erfassen und es bei Bedarf zu skalieren. Falls während des Vorgangs ein Fehler auftritt, fällt die Funktion auf den herkömmlichen move_uploaded_file()-Ansatz zurück, um sicherzustellen, dass der Upload nicht fehlschlägt.

try {
						
	$is = getimagesize($_FILES[$field]['tmp_name']);
	if (!$is) throw new \Exception();
	
	list($width, $height) = $is;
	
	if (!is_numeric($width) || $width <= 0) throw new \Exception();
	if (!is_numeric($height) || $height <= 0) throw new \Exception();
	
	$image = imagecreatefromstring(file_get_contents($_FILES[$field]['tmp_name']));
	if ($image === false) throw new \Exception();
	
	$max_width = 1024; $max_height = 768;
	$ratio = min($max_width / $width, $max_height / $height);
	
	$new_width = $width * $ratio; $new_height = $height * $ratio;
	
	$new_image = imagecreatetruecolor($new_width, $new_height);
	if ($new_image === false) throw new \Exception();
	
	$b = imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
	if ($b === false) throw new \Exception();
	
	$b = imagejpeg($new_image, $path.$filename, 75);
	if ($b === false) throw new \Exception();
	
	imagedestroy($image);
	imagedestroy($new_image);
	
} catch (\Exception $e) {
	
	// Bild alternativ hochladen
	move_uploaded_file($_FILES[$field]['tmp_name'], $path.$filename);
	
}

Auf erste Kindseite leiten, wenn eine Seite Kindseiten hat

Erstellt in PHP, Wordpress am 20. Januar 2023 vom Daschmi

Mit folgendem Code kann man auf die erste Unterseite umleiten, sofern eine Seite Unterseiten hat. Dies ist nützlich wenn z.B. die Oberseite keinen Inhalt aufweist.

function my_template_redirect() {

  if (\is_page()) {

      $subPages = \get_children([
          'post_parent' => \get_the_ID(),
          'post_type'   => 'page',
          'post_status' => 'publish'
      ]);

      if (sizeof($subPages) > 0) {

          \wp_redirect(\get_permalink(array_shift($subPages)->ID)); exit;

      }

  }

}

\add_action('template_redirect', 'my_template_redirect');

DS Youtube – Youtube Videos datenschutzkonform in Webseite einbinden

Erstellt in PHP, Wordpress am 15. Oktober 2022 vom Daschmi

Mit der Bibliothek DSYoutube ist es auf einfache Weise möglich YouTube Videos in eine Webseite einzubinden. Man braucht lediglich die VideoID und muss den Pfad für das Vorschaubild konfigurieren.

Weitere Informationen und Downloads bekommen Sie auf der Demoseite der Bibliothek.

Für WordPress gibt es ein Plugin, mit dem sie die Funktionalität einfach über einen Shortcode z.B.

[ds_youtube]OepAzzGcz4E[/ds_youtube]

nutzen können.

Im Frontend sieht das ganze dann so aus.

Datenschutz ist uns wichtig!

Daher wird dieses Video erst geladen wenn sie der Verwendung des Drittanbieters "YouTube" zustimmen durch den möglicherweise Cookies gesetzt und Nutzerdaten übertragen werden.

Ich bin einmalig damit einverstanden.
DSGVO Script powered by https://daschmi.de.

EXIF Bildrotation mit gd / imagerotate korrigieren

Erstellt in PHP am 12. Oktober 2022 vom Daschmi

Möchte man mittels der GD-Bibliothek die Drehung/Spiegelung von Bildern anhand der EXIF Meta Daten korrigieren kann man folgenden Code verwenden:

$srcImage = @imagecreatefrompng($src_file);

$exif = exif_read_data($src_file);

if ($exif && !empty($exif['Orientation'])) {

  $srcImage = match ($exif['Orientation']) {
    8 => imagerotate($srcImage, 90, 0),
    3 => imagerotate($srcImage, 180, 0),
    6, 5, 7 => magerotate($srcImage, -90, 0)
  };

}