DropIn was developed using javascript technology too. Please enable javascript to get the website running properly.
Javascript not detected.
×
Hash Me!
Your *phpes*
INT
ARRAY
STRING
VALIDATION
NET
DEBUG
watch_ifdebug
[DEBUG]
2024-10-20
13:51:21
#title: watch_ifdebug
#desc: watch_ifdebug code time assessment
#tags: debug cron start stop watch
#cat:
DEBUG
define('DEBUG', true);
define('PHP_BR', "<br>");
//define('DEBUG_WATCH_START', 0);
//define('DEBUG_WATCH_REPORT_ENTRY1', 0);
//...
//define('DEBUG_WATCH_REPORT_ENTRY15', 0);
//define('DEBUG_WATCH_END', 0);
/*
* Start the debug watch
*
* @param boolean $debug_var a debug value, if true the echo will be executed
* @return void
*/
function startwatch_ifdebug(bool $debug_var) {
if (!DEBUG || !$debug_var) {
return;
}
if (!defined("DEBUG_WATCH_START")) {
define('DEBUG_WATCH_START', hrtime(true));
}
}
/*
* Pause the debug watch
*
* @param boolean $debug_var a debug value, if true the echo will be executed
* @return void
*/
function pausewatch_ifdebug(bool $debug_var, bool $echo = false) {
if (!DEBUG || !$debug_var) {
return;
}
if (!defined("DEBUG_WATCH_START")) {
die("You need to start the watch!");
}
for($i=1;$i<=15;$i++) {
if (!defined("DEBUG_WATCH_REPORT_ENTRY".$i)) {
define("DEBUG_WATCH_REPORT_ENTRY".$i, round((hrtime(true) - DEBUG_WATCH_START)/1e+6,4));
break;
}
}
if ($echo) {
switch($i) {
case 1:
echo("First pause at: " . DEBUG_WATCH_REPORT_ENTRY1 . PHP_BR);
break;
case 2:
echo("Second pause at: " . DEBUG_WATCH_REPORT_ENTRY2 . PHP_BR);
break;
case 3:
echo("Third pause at: " . DEBUG_WATCH_REPORT_ENTRY3 . PHP_BR);
break;
case 4:
echo("Fourth pause at: " . DEBUG_WATCH_REPORT_ENTRY4 . PHP_BR);
break;
case 5:
echo("Fifth pause at: " . DEBUG_WATCH_REPORT_ENTRY5 . PHP_BR);
break;
case 6:
echo("Sixth pause at: " . DEBUG_WATCH_REPORT_ENTRY6 . PHP_BR);
break;
case 7:
echo("Seventh pause at: " . DEBUG_WATCH_REPORT_ENTRY7 . PHP_BR);
break;
case 8:
echo("Eighth pause at: " . DEBUG_WATCH_REPORT_ENTRY8 . PHP_BR);
break;
case 9:
echo("Nineth pause at: " . DEBUG_WATCH_REPORT_ENTRY9 . PHP_BR);
break;
case 10:
echo("Tenth pause at: " . DEBUG_WATCH_REPORT_ENTRY10 . PHP_BR);
break;
case 11:
echo("Eleventh pause at: " . DEBUG_WATCH_REPORT_ENTRY11 . PHP_BR);
break;
case 12:
echo("Twelveth pause at: " . DEBUG_WATCH_REPORT_ENTRY12 . PHP_BR);
break;
case 13:
echo("Thirteenth pause at: " . DEBUG_WATCH_REPORT_ENTRY13 . PHP_BR);
break;
case 14:
echo("Fourteenth pause at: " . DEBUG_WATCH_REPORT_ENTRY14 . PHP_BR);
break;
case 15:
echo("Fifteenth pause at: " . DEBUG_WATCH_REPORT_ENTRY15 . PHP_BR);
break;
}
}
}
/*
* Stop the debug watch
*
* @param boolean $debug_var a debug value, if true the echo will be executed
* @return void
*/
function stopwatch_ifdebug(bool $debug_var) {
if (!DEBUG || !$debug_var) {
return;
}
if (!defined("DEBUG_WATCH_START")) {
die("You need to start the watch first!");
}
for($i=1;$i<=15;$i++) {
if (defined("DEBUG_WATCH_REPORT_ENTRY".$i)) {
if ($i===1) {
echo("Watch final report:" . PHP_BR);
}
switch($i) {
case 1:
echo("First pause at: " . DEBUG_WATCH_REPORT_ENTRY1 . PHP_BR);
break;
case 2:
echo("Second pause at: " . DEBUG_WATCH_REPORT_ENTRY2 . PHP_BR);
break;
case 3:
echo("Third pause at: " . DEBUG_WATCH_REPORT_ENTRY3 . PHP_BR);
break;
case 4:
echo("Fourth pause at: " . DEBUG_WATCH_REPORT_ENTRY4 . PHP_BR);
break;
case 5:
echo("Fifth pause at: " . DEBUG_WATCH_REPORT_ENTRY5 . PHP_BR);
break;
case 6:
echo("Sixth pause at: " . DEBUG_WATCH_REPORT_ENTRY6 . PHP_BR);
break;
case 7:
echo("Seventh pause at: " . DEBUG_WATCH_REPORT_ENTRY7 . PHP_BR);
break;
case 8:
echo("Eighth pause at: " . DEBUG_WATCH_REPORT_ENTRY8 . PHP_BR);
break;
case 9:
echo("Nineth pause at: " . DEBUG_WATCH_REPORT_ENTRY9 . PHP_BR);
break;
case 10:
echo("Tenth pause at: " . DEBUG_WATCH_REPORT_ENTRY10 . PHP_BR);
break;
case 11:
echo("Eleventh pause at: " . DEBUG_WATCH_REPORT_ENTRY11 . PHP_BR);
break;
case 12:
echo("Twelveth pause at: " . DEBUG_WATCH_REPORT_ENTRY12 . PHP_BR);
break;
case 13:
echo("Thirteenth pause at: " . DEBUG_WATCH_REPORT_ENTRY13 . PHP_BR);
break;
case 14:
echo("Fourteenth pause at: " . DEBUG_WATCH_REPORT_ENTRY14 . PHP_BR);
break;
case 15:
echo("Fifteenth pause at: " . DEBUG_WATCH_REPORT_ENTRY15 . PHP_BR);
break;
}
} else {
break;
}
}
if (!defined("DEBUG_WATCH_END")) {
define("DEBUG_WATCH_END", round((hrtime(true) - DEBUG_WATCH_START)/1e+6,4));
}
echo("Final stop at: " . DEBUG_WATCH_END . PHP_BR);
}
//Usage
startwatch_ifdebug(true);
// Sleep for a while
usleep(100);
pausewatch_ifdebug(true);
// Sleep for an other while
usleep(100);
stopwatch_ifdebug(true);
var_dump_ifdebug
[DEBUG]
2024-10-20
13:50:50
#title: var_dump_ifdebug
#desc: Replacement for var_dump with debug check
#tags: debug dump var_dump replacement
#cat:
DEBUG
/**
* Replacement for var_dump with debug check
*
* @param boolean $debug_var a debug value, if true the var_dump will be executed
* @param list $args a var argument list
* @return void
* author 5mode.com
*/
function var_dump_ifdebug(bool $debug_var, ...$args): void
{
if (!DEBUG || !$debug_var) {
return;
}
foreach($args as $arg) {
var_dump($arg);
}
}
summary_ifdebug
[DEBUG]
2024-10-20
13:50:22
#title: summary_ifdebug
#desc: Show some code summary
#tags: debug code summary
#cat:
DEBUG
/*
* Show some code summary
*
* @param boolean $debug_var a debug value, if true the echo will be executed
* @return void
* @author 5mode.com
*/
define('DEBUG', true);
define('PHP_BR', "<br>");
function summary_ifdebug(bool $debug_var, string $scriptPath) {
if (!DEBUG || !$debug_var) {
return;
}
$a = file($scriptPath);
$linen = count($a);
$author="";
$authorKey = array_search_substr("* @author", $a, false, true);
if ($authorKey) {
$s = $a[$authorKey];
$author = ltrim($s, "* @author");
}
$copyrights="";
$crKey = array_search_substr("* @copyrights", $a, false, true);
if ($crKey) {
$s = $a[$crKey];
$copyrights = ltrim($s, "* @copyrights");
}
echo("Written code: $linen lines" . PHP_BR);
echo($author!==""?HTMLencode($author).PHP_BR:"");
echo($copyrights!==""?HTMLencode("Copyrights $copyrights").PHP_BR:"");
}
str_wordipos
[STRING]
2024-10-20
13:49:53
#title: str_wordipos
#desc: Finds the position of a word in the given phrase
#tags: string word position
#cat:
STRING
/**
* Finds the position of a word in the given phrase
*
* @param string $phrase the phrase being searched
* @param string $word the searched word
* @param int $offset the position to start the search from
* @return mixed the position of the word, otherwise false
* @author 5mode.com
*/
function str_wordipos(string $phrase, string $word, int $offset = 0)
{
if ($offset<0) {
$offset=0;
}
$word = strtolower($word);
$phrase = strtolower($phrase);
$aWords = explode(" ", $phrase);
$max = count($aWords) - 1;
$i = $offset;
while ($i <= $max) {
$word2 = $aWords[$i];
if ($word === $word2) {
return $i + 1;
}
$i++;
}
return false;
}
str_word_length
[STRING]
2024-10-20
13:49:28
#title: str_word_length
#desc: Short words by the given length
#tags: short phrase words
#cat:
STRING
/**
* Short words by the given length
*
* @param string $phrase the phrase being parsed
* @param int $length the word length to set
* @return string the resulting phrase
* @author 5mode.com
*/
function str_word_length(string $phrase, int $length): string
{
$aWords = explode(" ", $phrase);
foreach($aWords as &$word) {
$word = mb_substr($word, 0, $length);
}
return implode(" ", $aWords);
}
str_phrase_reverse
[STRING]
2024-10-20
13:48:40
#title: str_phrase_reverse
#desc: Reverse the words in the given phrase
#tags: string phrase reverse
#cat:
STRING
/**
* Reverse the words in the given phrase
*
* @param string $string the phrase to reverse
* @return string the resulting reversed phrase
* @author 5mode.com
*/
function str_phrase_reverse(string $string): string
{
settype($aWords, "array");
$aWords = explode(" ", $string);
$aWords = array_reverse($aWords);
return implode(" ", $aWords);
}
rightWord
[STRING]
2024-10-20
13:48:15
#title: rightWord
#desc: Return the right word of the given phrase
#tags: string phrase sentence
#cat:
STRING
/**
* Return the right word of the given phrase
*
* @param string $phrase the phase being processed
* @return string the first word
* @auhtor 5mode.com
*/
function rightWord(?string $phrase): string
{
if (!isset($phrase) || $phrase==="") {
return "";
}
$aWords = explode(" ", $phrase);
return $aWords[count($aWords)-1];
}
right
[STRING]
2024-10-20
13:47:27
#title: right
#desc: Right cut the given string
#tags: right string
#cat:
STRING
/**
* Right cut the given string
*
* @param string $string the string being cut on the right
* @param int $length the length of the substring to return
* @return string the resulting substring
* @author 5mode.com
*/
function right(?string $string, int $length): string
{
if (!isset($string) || $string === "") {
return "";
}
return mb_substr($string, mb_strlen($string) - $length);
}
leftWord
[STRING]
2024-10-20
13:46:58
#title: leftWord
#desc: Return the left word of the given phrase
#tags: string phrase sentence
#cat:
STRING
**
* Return the left word of the given phrase
*
* @param string $phrase the phase being processed
* @return string the first word
* @author 5mode.com
*/
function leftWord(?string $phrase): string
{
if (!isset($phrase) || $phrase==="") {
return "";
}
$aWords = explode(" ", $phrase);
return $aWords[0];
}
left
[STRING]
2024-10-20
13:46:34
#title: left
#desc: Left cut the given string
#tags: string left cut
#cat:
STRING
/**
* Left cut the given string
*
* @param string $string the string being cut on the left
* @param int $length the length of the substring to return
* @return string the resulting substring
* @author 5mode.com
*/
function left(?string $string, int $length): string
{
if (!isset($string) || $string === "") {
return "";
}
return mb_substr($string, 0, $length);
}
isYoutubeUrl
[VALIDATION]
2024-10-20
13:45:21
#title: isYoutubeUrl
#desc: Check if the given url is a valid Youtube url
#tags: youtube url string
#cat:
VALIDATION
/**
* Check if the given url is a valid Youtube url
*
* Eg:
* http://youtube.com/watch?v=DRrwr24334
*
* @param string $url the url to check
* @return bool if the url is Youtube url, true/false
* @author 5mode.com
*/
function isYoutubeUrl(string $url): bool
{
$url= strtolower($url);
$pattern1 = "/^http(s)?\:\/\/(www\.)?youtube\.com\/watch\?v\=[\w]+$/";
if (preg_match($pattern1, $url)) {
$retval=true;
} else {
$retval=false;
}
return $retval;
}
isUrl
[VALIDATION]
2024-10-20
13:45:08
#title: isUrl
#desc: Check if the given url is a valid domain url
#tags: net url validation
#cat:
VALIDATION
/**
* Check if the given url is a valid domain url
*
* @param string $url the url to check
* @return bool if the url is a valid domain url, true/false
* author 5mode.com
*/
function isUrl(string $url): bool
{
$url= strtolower($url);
$pattern1 = "/^http(s)?\:\/\/(www\.)?\w+\.\w+$/";
$pattern2 = "/^http(s)?\:\/\/(www\.)?\w+\.\w+.\w+$/";
if (preg_match($pattern1, $url) || preg_match($pattern2, $url)) {
$retval=true;
} else {
$retval=false;
}
return $retval;
}
isSubdomainHost
[NET]
2024-10-20
13:44:44
#title: isSubdomainHost
#desc: Determine if the given host is a subdomain
#tags: net internet subdomain check
#cat:
NET
/**
* Determine if the given host is a subdomain
*
* @param string $subdomain passed by ref, return the subdomain
* @return bool if the domain is a subdomain, true/false
* @author 5mode.com
*/
function isSubdomainHost(string &$subdomain) {
$hostname = str_replace("www.", "", strtolower($_SERVER['HTTP_HOST']));
$ipos = mb_stripos($hostname, ".");
$subdomain = left($hostname, $ipos);
$isSubdomain = true;
if ($subdomain==="5mode") {
$isSubdomain = false;
}
return $isSubdomain;
}
isLatinLang
[VALIDATION]
2024-10-20
13:44:18
#title: isLatinLang
#desc: Test if a word is of a latin language
#tags: string validation latin western language
#cat:
VALIDATION
**
* Test if a word is of a latin language
*
* @param string$word the word to test
* @return boolif $word is of a latin language, true/false
* @author 5mode.com
*/
function isLatinLang(string $word): bool
{
$isNonLatinLang = preg_match("/^[\w-]+[\x{31C0}-\x{31EF}\x{3300}-\x{33FF}\x{3400}-\x{4DBF}\x{4E00}-\x{9FFF}\x{F900}-\x{FAFF}\x{FE30}-\x{FE4F}]+$/u", $word) ||
preg_match("/^[\x{31C0}-\x{31EF}\x{3300}-\x{33FF}\x{3400}-\x{4DBF}\x{4E00}-\x{9FFF}\x{F900}-\x{FAFF}\x{FE30}-\x{FE4F}]+$/u", $word) ||
preg_match("/^[\x{31C0}-\x{31EF}\x{3300}-\x{33FF}\x{3400}-\x{4DBF}\x{4E00}-\x{9FFF}\x{F900}-\x{FAFF}\x{FE30}-\x{FE4F}]+[\w-]+$/u", $word) ||
preg_match("/^[\w-]+[\x{31C0}-\x{31EF}\x{3300}-\x{33FF}\x{3400}-\x{4DBF}\x{4E00}-\x{9FFF}\x{F900}-\x{FAFF}\x{FE30}-\x{FE4F}]+[\w-]+$/u", $word);
return !$isNonLatinLang;
}
grabHostingIPs
[NET]
2024-10-20
13:43:49
#title: grabHostingIPs
#desc: Retrieve the hosting ip for the given domain
#tags: hosting ip DNS_A net network internet
#cat:
NET
/**
* Retrieve the hosting ip for the given domain
*
* @param string $targetDomain the domain to check
* @return array the related DNS_A records
* @author 5mode.com
*/
function grabHostingIPs(string $targetDomain)
{
$ret = [];
$a = dns_get_record($targetDomain, DNS_A);
if ($a === false) {
} else
$ret = $a;
}
return $ret;
}
grabHeaders
[NET]
2024-10-20
13:42:16
#title: grabHeaders
#desc: Retrieve headers of a website
#tags: server response headers net network internet
#cat:
NET
/**
* Retrieve headers of a website
*
* @param string $targetDomain the domain to check
* @return array the related response headers
* @author 5mode.com
*/
function grabHeaders(string $targetDomain)
{
$ret = [];
$a = get_headers("http://" . $targetDomain);
if ($a === false) {
} else
$ret = $a;
}
return $ret;
}
getResource
[INT]
2024-10-20
13:41:58
#title: getResource
#desc: Get resources translated
#tags: resource translated int
#cat:
INT
/**
* Get resources translated
*
* @param string $resource the string to get translated
* @param string $destLocale the destination locale
* @param string $localeKey the locale key
* @return string the translated resource
* @author 5mode.com
*/
$LOCALE = [
'it-IT' => [
'/index.php' => [
'ping' => "pong",
]
],
'en-US' => [
'/index.php' => [
'ping' => "pong",
]
]
]
function getResource(string $resource, string $destLocale = "en-US", string $localeKey = "/".SCRIPT_FILENAME): string
{
global $LOCALE;
if ($destLocale === "en-US") {
return $resource;
}
if (($LOCALE[$destLocale][$localeKey]['ping']??"")=="") {
return $resource;
}
if (($LOCALE[$destLocale][$localeKey][$resource]??"")=="") {
return $string;
}
return $LOCALE[$destLocale][$localeKey][$resource];
}
enableLinks
[STRING]
2024-10-20
13:41:28
#title: enableLinks
#desc: Enable links in the given text
#tags: string links transformation
#cat:
STRING
/**
* Enable links in the given text
*
* @param string $text the text being parsed for links
* @return string the text with links enabled
* @author 5mode.com
*/
function enableLinks(string $text): string
{
return preg_replace("/(https?:\/\/)([\da-z\.-]+)\.([a-z\.]{2,8})(\/?[\da-zA-Z\-\?\/\&\#\=]+)?/i", "<a href='\\0' target=\"_blank\">\\0</a>", $text);
}
enableEmoticons
[STRING]
2024-10-20
13:40:57
#title: enableEmoticons
#desc: Enable emoticons in the given text
#tags: string emoticons transformation
#cat:
STRING
/**
* Enable emoticons in the given text
*
* @param string $text the text being parsed for emoticons
* @return string the text with the emoticons enabled
* @author 5mode.com
*/
function enableEmoticons(string $text): string
{
$emot = [
'[:-)]' => "🙂",
'[:-p]' => "🤑",
'[:c)]' => "😀",
'[;-)]' => "😉",
'[:-J]' => "😏",
'[;-P]' => "😜",
'[:-/]' => "😕",
'[@-)]' => "😓",
'[B-)]' => "😎",
'[=]]' => '😃',
'[=)]' => "😄",
'[*-)]' => "😍"
];
return str_ireplace(array_keys($emot),array_values($emot), $text);
}
enableEmails
[STRING]
2024-10-20
13:40:01
#title: enableEmails
#desc: Enable the email address in the given text
#tags: string email transformation
#cat:
STRING
/**
* Enable the email address of the given text
*
* @param string $text the text being parsed for emails
* @return string the text with email enabled
* @author 5mode.com
*/
function enableEmails(string $text, bool $masked = false): string
{
$callable_masked = function($aResults) {
$result = implode("", $aResults);
return "<a href='mailto:$result'>" . mb_strrichr($result, "@", true) . "@.." . mb_strrichr($result, ".", false) . "</a>";
};
$callable_unmasked = function($aResults) {
$result = implode("", $aResults);
return "<a href='mailto:$result'>$result</a>";
};
$regexPattern = "/(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}/i";
if ($masked) {
$callable = $callable_masked;
} else {
$callable = $callable_unmasked;
}
return preg_replace_callback($regexPattern, $callable, $text);
}
echo_ifdebug
[DEBUG]
2024-10-20
13:39:15
#title: echo_ifdebug
#desc: Replacement for echo with debug check
#tags: debug echo replacement
#cat:
DEBUG
**
* Replacement for echo with debug check
*
* @param boolean $debug_var a debug value, if true the echo will be executed
* @param list $args a var argument list
* @return void
* @author 5mode.com
*/
function echo_ifdebug(bool $debug_var, ...$args): void
{
if (!DEBUG || !$debug_var) {
return;
}
foreach($args as $arg) {
echo $arg;
}
}
array_search_substr
[ARRAY]
2024-10-20
13:37:38
#title: array_search_substr
#desc: Searches the array for a given value substring
#tags: string array search substring
#cat:
ARRAY
/**
* Searches the array for a given substring and returns the corresponding key if successful otherwise null
*
* @param mixed $needle the string to search for
* @param array $array the array being searched
* @param bool $case if the search should happen in a case sensitive fashion, true/false
* @param bool $atStart if the string should appear at the beginning of the value, true/false
* @return mixed the key containing the string, otherwise null
* @author 5mode.com
*/
function array_search_substr(string $needle, &$array, bool $case = false, bool $atStart = false)
{
$retval = null;
if (!$case) {
$needle = strtolower($needle);
}
foreach ($array as $key => $value) {
if (!$case) {
$value = strtolower($value);
}
$_res = false;
if ($atStart) {
$value = trim($value);
if (left($value, strlen($needle)) === $needle) {
$_res = true;
}
} else {
if (mb_stripos($value, $needle) === false) {
} else {
$_res = true;
}
}
if ($_res) {
$retval = $key;
break;
}
}
return $retval;
}
HTMLencode
[STRING]
2024-10-20
13:33:24
#title: HTMLencode
#desc: Encode any HTML entity in the given string
#tags: string html encode transformation
#cat:
STRING
/**
* Encode any HTML entity in the given string
*
* @param string $s the string to encode
* @param bool $withBR keep the BR tag, true/false
* @return string the string encoded
* @author 5mode.com
*/
public static function HTMLencode(?string $s, bool $withBR = false): string
{
if (!isset($s)) {
return "";
}
$s = str_ireplace("'", "'", $s);
$s = str_ireplace(""", "\"", $s);
$s = str_ireplace("\", chr(10), $s);
$s = htmlspecialchars($s, ENT_QUOTES |ENT_IGNORE | ENT_HTML5, "UTF-8");
if ($withBR) {
$s = str_ireplace(chr(10), "<br>", $s);
}
return $s;
}
Button #1
×