Skip to content

Instantly share code, notes, and snippets.

View erdum's full-sized avatar

Erdum erdum

View GitHub Profile
@erdum
erdum / check-in-range.php
Created January 23, 2024 14:00
Check two geo-coordinate points are within a specified range
<?php
check_in_distance($lat_a, $long_a, $lat_b, $long_b, $range)
{
$dlat = ($lat_a / (180 / pi())) - ($lat_b / (180 / pi()));
$dlong = ($long_a / (180 / pi())) - ($long_b / (180 / pi()));
$c = pow(sin($dlat / 2), 2) + cos($lat_a);
$c = $c * cos($lat_b) * pow(sin($dlong / 2), 2);
$c = 2 * asin(sqrt($c));
$c = 6371 * $c;
@erdum
erdum / extract-tar.php
Created January 13, 2024 09:27
Extract tar file with PHP
<?php
$tarFile = __DIR__ . '/file.tar';
$extractTo = __DIR__ . '/';
exec("tar -xf $tarFile -C $extractTo", $output, $returnCode);
if ($returnCode === 0) {
echo 'Extraction successful!';
} else {
@erdum
erdum / extract-zip.php
Created January 13, 2024 09:18
Extract zip file with PHP
<?php
$zipFile = __DIR__ . '/web.zip';
$extractTo = __DIR__ . '/';
$zip = new ZipArchive;
if ($zip->open($zipFile) === TRUE) {
$zip->extractTo($extractTo);
$zip->close();
@erdum
erdum / image-preview-uploader.html
Created January 9, 2024 12:59
Image Preview Uploader
<div class="col-span-6">
<!-- <label class="block ml-2 text-sm font-medium text-gray-700"> Photo </label> -->
<div class="mt-1 flex items-center">
<span class="inline-block h-36 w-36 rounded-full overflow-hidden bg-gray-100">
<svg class="h-full w-full text-gray-300" fill="currentColor" viewBox="0 0 24 24">
<path d="M24 20.993V24H0v-2.996A14.977 14.977 0 0112.004 15c4.904 0 9.26 2.354 11.996 5.993zM16.002 8.999a4 4 0 11-8 0 4 4 0 018 0z" />
</svg>
</span>
<img src="" class="hidden h-36 w-36 rounded-full overflow-hidden object-fit">
<button onclick="handleImage(this)" type="button" class="ml-5 bg-white py-2 px-3 border border-gray-300 rounded-md shadow-sm text-sm leading-4 font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">Change</button>
@erdum
erdum / US_States_and_Cities.json
Created December 30, 2023 20:45 — forked from ahmu83/US_States_and_Cities.json
List of US States and Cities in JSON format.
{
"New York": [
"New York",
"Buffalo",
"Rochester",
"Yonkers",
"Syracuse",
"Albany",
"New Rochelle",
"Mount Vernon",
@erdum
erdum / UsaStatesList.js
Created December 30, 2023 20:41
USA States names list in javascript array
const UsaStates = [
'Alabama',
'Alaska',
'Arizona',
'Arkansas',
'California',
'Colorado',
'Connecticut',
'Delaware',
'Florida',
@erdum
erdum / input-formatter.js
Last active December 19, 2023 06:05
Format input field dynamically to add hyphens after specific length of characters
const addHyphens = (inputField) => {
inputField.addEventListener('input', (event) => {
let value = event.target.value.replace(/-/g, '');
let formattedValue = '';
for (let i = 0; i < value.length; i++) {
if (i === 5 || i === 12) {
formattedValue += '-';
}
formattedValue += value[i];
@erdum
erdum / send_json.php
Created December 2, 2023 07:36
Send JSON response in PHP
<?php
function send_json($payload, $status_code = 200)
{
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
is_callable('http_send_status') ? http_send_status($status_code)
: header("HTTP/1.1 $status_code");
return exit(json_encode((object) $payload));
}
@erdum
erdum / working-days.php
Created November 16, 2023 13:08
Get working days in a month
<?php
function get_working_days($year, $month, $last_day = null) {
$total_month_days = date('t', strtotime("$year-$month-01"));
if ($last_day) {
$total_month_days = $last_day;
}
$working_days;
@erdum
erdum / request-tester.php
Created October 3, 2023 08:00
Get insight of the incoming http requests
<?php
$request_payload = !empty($_POST) ? $_POST : array();
$request_payload = empty($_POST) && !empty($_GET) ? $_GET : $request_payload;
$request_payload = isset($_SERVER['CONTENT_TYPE'])
&& $_SERVER['CONTENT_TYPE'] == 'application/json'
? json_decode(file_get_contents('php://input'), true)
: $request_payload;
$request_details = array(