ngfw / recipe
Small Collection of useful PHP functions
Installs: 4 113
Dependents: 0
Suggesters: 0
Security: 0
Stars: 673
Watchers: 44
Forks: 127
Open Issues: 1
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: 5.7.19
README
Collection of PHP Functions
Table of Contents
- 🚀 Quick Start
- Favicon
- QRcode
- File extension
- Gravatar
- Creating Link Tags
- Validate email address
- Validate URL
- RSS Reader
- Object to Array
- Array to Object
- Array to String
- HEX to RGB
- RGB to HEX
- Color Name to HEX
- Generate Random Password
- Simple Encode
- Simple Decode
- Generate Server Specific Hash
- Detect HTTPS
- Detect AJAX
- Check if number is odd
- Check if number is even
- Get Current URL
- Get Client IP
- Detect Mobile
- Get Browser
- Get Client Location
- Number To Word conversion
- Seconds To Text
- Minutes To Text
- Hours To Text
- Shorten String
- CURL
- Shorten URL
- Get Alexa Rank
- Get Tiny URL
- Get Keyword Suggestions From Google
- WIKI Search
- Notification
- Auto Embed
- Make Clickable Links
- 🔧 Debug
- Get Referer
- Compress Page
- Ordinal
- Number Of Days In Month
- pr
- Bytes To Human Readable Size
Quick Start
Run in your terminal:
composer require ngfw/recipe
Create new file and start using the Recipes
<?php require "vendor/autoload.php"; use ngfw\Recipe as Recipe; $suggestion = Recipe::getKeywordSuggestionsFromGoogle("home"); print_r($suggestion); // //Array //( // [0] => home depot // [1] => home goods // [2] => home depot near me // [3] => homes for sale // [4] => homeaway // [5] => homes for rent // [6] => home advisor // [7] => home depot credit card // [8] => home depot coupons // [9] => homeland //)
Favicon
Getting remote website Favicon:
$favIcon = Recipe::getFavicon("http://youtube.com/"); echo $favIcon; // outputs: <img src="https://www.google.com/s2/favicons?domain=youtube.com/" />
Getting remote website Favicon with HTML attributes:
$favIcon = Recipe::getFavicon( "http://youtube.com/", array( "class" => "favImg" ) ); echo $favIcon; //outputs: <img src="https://www.google.com/s2/favicons?domain=youtube.com/" class="favImg" />
QRcode
Generating QR code
$QRcode = Recipe::getQRcode("ngfw Recipe"); echo $QRcode; //outputs: <img src="http://chart.apis.google.com/chart?chs=150x150&cht=qr&chl=ngfw+Recipe" />
Generating QR code and adding HTML attributes:
$QRcode = Recipe::getQRcode( "ngfw Recipe", $width = 350, $height = 350, $attributes = array( "class" => "QRCode" ) ); echo $QRcode; // outputs: <img src="http://chart.apis.google.com/chart?chs=350x350&cht=qr&chl=ngfw+Recipe" class="QRCode" />
File extension
$ext = Recipe::getFileExtension(__FILE__); // replace '__FILE__' with your filename echo $ext; //outputs: php
Gravatar
Getting Gravatar:
$Gravatar = Recipe::getGravatar("gejadze@gmail.com"); echo $Gravatar; // outputs: <img src="http://www.gravatar.com/avatar.php?gravatar_id=9d9d478c3b65d4046a84cf84b4c8bf46&default=mm&size=80&rating=g" width="80px" height="80px" />
Getting Gravatar with HTML attributes:
$Gravatar = Recipe::getGravatar( "gejadze@gmail.com", $size = 200, $default = 'monsterid', $rating = 'x', $attributes = array( "class" => "Gravatar" ) ); echo $Gravatar; //Outputs: <img src="http://www.gravatar.com/avatar.php?gravatar_id=9d9d478c3b65d4046a84cf84b4c8bf46&default=monsterid&size=200&rating=x" width="200px" height="200px" class="Gravatar" />'
Creating Link Tags
Simple Link:
$linkTags = Recipe::createLinkTag("google.com"); echo $linkTags; //outputs: <a href="google.com">google.com</a>
Link with title:
$linkTags = Recipe::createLinkTag("google.com", "Visit Google"); echo $linkTags; //outputs: <a href="google.com" title="Visit Google" >Visit Google</a>
Link with title and HTML attributes:
$linkTags = Recipe::createLinkTag("google.com", "Visit Google", array( "class" => "outgoingLink" )); echo $linkTags; //outputs: <a href="google.com" title="Visit Google" class="outgoingLink">Visit Google</a>
Validate email address
$isValid = Recipe::validateEmail("user@gmail.com"); var_dump($isValid); // outputs: true (bool)
Check for temporary Email addresses:
$isValid = Recipe::validateEmail('user@fakeinbox.com', $tempEmailAllowed = false); var_dump($isValid); // outputs: false (bool)
Validate URL
$isValid = Recipe::validateURL("http://github.com/"); var_dump($isValid); // outputs: true (bool)
RSS Reader
$rssArray = Recipe::rssReader("https://github.com/ngfw/Recipe/commits/master.atom"); var_dump($rssArray); // Outputs feed as an array
Object to Array
$obj = new stdClass; $obj->foo = 'bar'; $obj->baz = 'qux'; $array = Recipe::objectToArray($obj); var_dump($array); // outputs: // array(2) { // ["foo"]=> // string(3) "bar" // ["baz"]=> // string(3) "qux" // }
Array to Object
$array = array( "foo" => "bar", "baz" => "qux", ); $obj = Recipe::arrayToObject($array); // outputs: // object(stdClass)#15 (2) { // ["foo"]=> // string(3) "bar" // ["baz"]=> // string(3) "qux" // }
Array to String
$array = array( "foo" => "bar", "baz" => "qux", ); $string = Recipe::arrayToString($array); echo $string; // outputs: foo="bar" baz="qux"
HEX to RGB
$rgb = Recipe::hex2rgb("#FFF"); echo $rgb; // outputs: rgb(255, 255, 255)
RGB to HEX
$hex = Recipe::rgb2hex("rgb(123,123,123)"); // outputs: #7b7b7b
Color Name to HEX
$hex = Recipe::colorNameToHex('red'); // outputs: #FF0000
Generate Random Password
$randomPass = Recipe::generateRandomPassword(10); echo $randomPass; // outputs: 10 random character string
Simple Encode
$encodedString = Recipe::simpleEncode("php recipe"); echo $encodedString; // outputs: qcnVhqjKxpuilw==
Simple Decode
$decodedString = Recipe::simpleDecode("qcnVhqjKxpuilw=="); echo $decodedString; // outputs: php recipe
Generate Server Specific Hash
$serverHash = Recipe::generateServerSpecificHash(); echo $serverHash; // outputs: d41d8cd98f00b204e9800998ecf8427e
Detect HTTPS
This method checks for $_SERVER['HTTPS']
$isHttps = Recipe::isHttps(); var_dump($isHttps); // outputs: bool
Detect AJAX
This method checks for $_SERVER['HTTP_X_REQUESTED_WITH']
$isAjax = Recipe::isAjax(); var_dump($isAjax); // outputs: bool
Check if number is odd
$isNumberOdd = Recipe::isNumberOdd(5); // outputs: bool
Check if number is even
$isNumberEven = Recipe::isNumberEven(8); var_dump($isNumberEven); // outputs: bool
Get Current URL
$currentURL = Recipe::getCurrentURL(); var_dump($currentURL); // outputs: current Request URL
Get Client IP
$ClientsIP = Recipe::getClientIP(); echo $ClientsIP; //OR // Return Proxy IP if user is behind it //$ClientsIP = Recipe::getClientIP("HTTP_CLIENT_IP"); //'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED', ... // outputs: IP address
Detect Mobile
$isMobile = Recipe::isMobile(); var_dump($isMobile); // outputs: true or false
Get Browser
$Browser = Recipe::getBrowser(); echo $Browser // outputs: Browser Details
Get Client Location
$user_location = Recipe::getClientLocation(); echo $user_location; // outputs: Users Location
Number To Word conversion
$number = "864210"; $number_in_words = Recipe::numberToWord($number); echo $number_in_words; // outputs: eight hundred and sixty-four thousand, two hundred and ten
Seconds To Text
$seconds = "864210"; $number_in_words = Recipe::secondsToText($seconds); echo $number_in_words; // outputs: 1 hour and 10 seconds // Recipe::secondsToText($seconds, $returnAsWords = true); // will return: one hour and ten seconds
Minutes To Text
$minutes = 60 * 24 * 2; $duration = Recipe::minutesToText($minutes); echo $duration; // outputs: 2 days // Recipe::minutesToText($minutes, $returnAsWords = true); // will return: two days
Hours To Text
$hours = 4.2; $duration = Recipe::hoursToText($hours); echo $duration; // outputs: 4 hours and 12 minutes // Recipe::hoursToText($hours, $returnAsWords = true); // will return: four hours and twelve minutes
Shorten String
$string = "The quick brown fox jumps over the lazy dog"; $shortenString = Recipe::shortenString($string, 20); // output: The quick brown f... // Recipe::shortenString($string, 20, $addEllipsis = false); // output: "The quick brown fox ", NOTE last space // Recipe::shortenString($string, 20, $addEllipsis = false, $wordsafe = true); // output: "The quick brown fox", NOTE, will not break in the middle of the word
CURL
Simple GET example:
$data = Recipe::curl("https://api.ipify.org"); var_dump($data); // outputs: Curl'ed Data
POST Example:
$CurlPOST = Recipe::curl("http://jsonplaceholder.typicode.com/posts", $method = "POST", $data = array( "title" => 'foo', "body" => 'bar', "userId" => 1, ));
Custom Headers:
$curlWithHeaders = Recipe::curl("http://jsonplaceholder.typicode.com/posts", $method = "GET", $data = false, $header = array( "Accept" => "application/json", ), $returnInfo = true); // NOTE $returnInfo argument // Result will be returned as an array, $curlWithHeaders={ // info => containing curl information, see curl_getinfo() // contents => Data from URL //}
Basic authentication with CURL:
$curlBasicAuth = Recipe::curl( "http://jsonplaceholder.typicode.com/posts", $method = "GET", $data = false, $header = false, $returnInfo = false, $auth = array( 'username' => 'your_login', 'password' => 'your_password', ) );
Expand Short URL
$shortURL = "https://goo.gl/rvDnMX"; $expandedURL = Recipe::expandShortUrl($shortURL); echo $expendedURL; // outputs: https://github.com/ngfw/Recipe
Get Alexa Rank
$AlexaRank = Recipe::getAlexaRank("github.com"); echo $AlexaRank; // outputs: Current alexa ranking as position number (example: 52)
Shorten URL
$TinyUrl = Recipe::getTinyUrl("https://github.com/ngfw/Recipe"); echo $TinyUrl; // outputs: http://tinyurl.com/h2nchjh
Get Keyword Suggestions From Google
$suggestions = Recipe::getKeywordSuggestionsFromGoogle("Tbilisi, Georgia"); var_dump($suggestions); // outputs: //array(10) { // [0]=> // string(15) "tbilisi georgia" // [1]=> // string(22) "tbilisi georgia hotels" // [2]=> // string(19) "tbilisi georgia map" // [3]=> // string(20) "tbilisi georgia time" // [4]=> // string(23) "tbilisi georgia airport" // [5]=> // string(23) "tbilisi georgia weather" // [6]=> // string(24) "tbilisi georgia language" // [7]=> // string(24) "tbilisi georgia zip code" // [8]=> // string(20) "tbilisi georgia news" // [9]=> // string(28) "tbilisi georgia airport code" //}
WIKI Search
$wiki = Recipe::wikiSearch("Tbilisi"); var_dump($wiki); // outputs: data from wikipedia
Notification
$notification = Recipe::notification("Test Successful"); echo $notification; // outputs: <div style="display: block;padding: 0.5em;border: solid 1px;border-radius: 0.125em;margin-bottom: 1em; border-color: #a6d9f2;color: #0a5276;background-color: #e7f6fd;" role="alert">Test Successful</div> // NOTE: possible notifications types: success, warning, error and info // Type is passed as a second parameter
Auto Embed
$string = "Checkout Solomun, Boiler Room at https://www.youtube.com/watch?v=bk6Xst6euQk"; echo Recipe::autoEmbed($string); // outputs: // Checkout Solomun, Boiler Room at<iframe width="560" height="315" src="https://www.youtube.com/embed/bk6Xst6euQk?feature=oembed" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe> // supported providers are: youtube.com, blip.tv, vimeo.com, dailymotion.com, flickr.com, smugmug.com, hulu.com, revision3.com, wordpress.tv, funnyordie.com, soundcloud.com, slideshare.net and instagram.com
Make Clickable Links
$string = "Check PHP Recipes on https://github.com/ngfw/Recipe"; $clickable = Recipe::makeClickableLinks($string); echo $clickable; // outputs: // Check PHP Recipes on <a href="https://github.com/ngfw/Recipe" >https://github.com/ngfw/Recipe</a>
Debug
var_dump()
alternative
$string = "Test me"; Recipe::debug($string);
Get Referer
Get the referer page (last page visited)
$referrer = Recipe::getReferer(); echo $referer ; // outputs an url (http://mywebsite.com/page1)
Ordinal
for($i=1;$i<=10;$i++){ echo Recipe::ordinal($i); echo ' '; } // outputs 1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th
Number Of Days In Month
$numDays = Recipe::numberOfDaysInMonth(2, 2012); echo $numDays; // outputs: 29
Compress Page
The compressPage()
method will register new function on PHP shutdown, remove white space from output and try to gZip it.
<?php require "vendor/autoload.php"; Recipe::compressPage(); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>HTML Page Title</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> Hello Friend, </body> </html>
will output:
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>HTML Page Title</title><meta name="description" content=""><meta name="viewport" content="width=device-width, initial-scale=1.0"></head><body> Hello Friend,</body></html>
PR
Recipe::pr( array("he","ll","oo") );
will output:
<pre>Array ( [0] => he [1] => ll [2] => oo ) </pre>
Bytes To Human Readable Size
Recipe::bytesToHumanReadableSize( "17179869184" );
will output:
16 GB