Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@bohwaz
bohwaz / cert_expiry_check.php
Last active September 15, 2023 05:41
Check if certificate expiry is in more than 30 days
<?php
$domain = 'mydomain.tld';
if (get_ssl_certificate_expiry($domain) < 30) {
throw new \Exception('Certificate expires in less than 30 days!');
}
function get_ssl_certificate_expiry(string $domain): ?int
{
@bohwaz
bohwaz / pdf2cbz.sh
Last active July 29, 2023 11:08
pd2cbz.sh - Convert a PDF file (eg. a comic) to a CBZ file
#!/bin/bash
which mutool &> /dev/null || (echo "mutool is not installed" && exit 1)
which convert &> /dev/null || (echo "imagemagick is not installed" && exit 1)
which zip &> /dev/null || (echo "zip is not installed" && exit 1)
if [ "$1" = "" ]
then
echo "Usage: $0 File.pdf"
exit
@bohwaz
bohwaz / lcp_download.php
Created June 29, 2023 20:10
Transform LCP/LCPL files to regular EPUB/PDF/ZIP
#!/usr/bin/php
<?php
// Note: this code does not contain any DRM removal, DRM removal is made by https://notabug.org/NewsGuyTor/DeDRM_tools-LCP
//
// Install steps:
// Debian/Ubuntu/Mint: apt install php-cli python3 python3-cryptodome python3-lxml zip unzip
//
// How to use?
// Just run: php lcp_download.php FILE.LCPL PASSWORD
// A new FILE_decrypted.epub will be created in the same directory
@bohwaz
bohwaz / get_ssl_expiry.php
Created September 8, 2022 15:21
PHP function to get number of days before SSL/TLS certificate expiry from a HTTPS URL
<?php
/**
* Return number of days before certificate expiry from a HTTPS URL
* Usage: get_ssl_certificate_expiry('https://www.framasoft.net/')
* => int(45)
* @author bohwaz
*/
function get_ssl_certificate_expiry(string $url): ?int
{
@bohwaz
bohwaz / dns_get_record_from.php
Last active November 21, 2023 07:56
PHP script to retrieve a DNS record from a custom nameserver
<?php
/**
* Make a DNS a request to a custom nameserver, this is similar to dns_get_record, but allows you to query any nameserver
* Usage: dns_get_record_from('ns.server.tld', 'A', 'mydomain.tld');
* => ['42.42.42.42']
* @author bohwaz
*/
function dns_get_record_from(string $server, string $type, string $record): array
{
@bohwaz
bohwaz / save_twitter_thread.php
Last active September 2, 2022 02:20
Save a Twitter thread to static HTML (using Nitter) - Save and run "php save_twitter_thread.php URL FILE.html" - The created file is static, no external dependency, no JS, except images and videos
#!/usr/bin/env php
<?php
/*
This file is part of KD2FW -- <http://dev.kd2.org/>
Copyright (c) 2001-2019 BohwaZ <http://bohwaz.net/>
All rights reserved.
@bohwaz
bohwaz / cavites.php
Created July 4, 2022 12:13
Téléchargement et conversion en GPX de la BDCavité (liste des cavités souterraines du BRGM)
<?php
// Mode d'emploi : créer un répertoire vierge et lancer "php cavites.php"
const JSON_URL = 'https://www.georisques.gouv.fr/webappReport/ws/telechargement/cavites?anneemin=2003';
const PROJECTIONS = [
1 => 'LambertI',
2 => 'LambertII',
3 => 'LambertIII',
@bohwaz
bohwaz / archive_twitter.php
Created January 5, 2022 13:56
Script to scrape and archive a Twitter thread as a static HTML page, using Nitter
#!/usr/bin/env php
<?php
/*
This file is part of KD2FW -- <http://dev.kd2.org/>
Copyright (c) 2001-2019 BohwaZ <http://bohwaz.net/>
All rights reserved.
Index: src/include/lib/Garradin/Membres/Session.php
==================================================================
--- src/include/lib/Garradin/Membres/Session.php
+++ src/include/lib/Garradin/Membres/Session.php
@@ -157,10 +157,21 @@
protected function deleteAllRememberMeSelectors($user_id)
{
return $this->db->delete('membres_sessions', $this->db->where('id_membre', $user_id));
}
@bohwaz
bohwaz / php-8.1-strftime.php
Last active April 12, 2024 09:39
strftime() replacement function for PHP 8.1
<?php
namespace PHP81_BC;
/**
* Locale-formatted strftime using \IntlDateFormatter (PHP 8.1 compatible)
* This provides a cross-platform alternative to strftime() for when it will be removed from PHP.
* Note that output can be slightly different between libc sprintf and this function as it is using ICU.
*
* Usage:
* use function \PHP81_BC\strftime;