Recipe là tập hợp các hàm PHP tiện dụng, mã nguồn tại Recipe
Cài đặt Recipe
Dùng composer cài đặt bằng lệnh:
composer require ngfw/recipe
Hoặc tải về từ composer github.com/ngfw/Recipe
Các hàm Recipe
Dùng composer cài đặt bằng lệnh:
Favicon - lấy favicon của một website
$favIcon = Recipe::getFavicon("http://youtube.com/"); echo $favIcon; // outputs: <img src="https://www.google.com/s2/favicons?domain=youtube.com/" />
QRcode - phát sinh mã QR
$QRcode = Recipe::getQRcode("ngfw Recipe"); echo $QRcode;
getFileExtension - lấy phần mở rộng của file
$ext = Recipe::getFileExtension(filename);
getGravatar - lấy avatar từ Gravatar
$Gravatar = Recipe::getGravatar("gejadze@gmail.com");
createLinkTag - Tạo liên kết (link)
Dạng link đơn giản
$linkTags = Recipe::createLinkTag("google.com"); echo $linkTags; //outputs: <a href="google.com">google.com</a>
Tạo link có title
$linkTags = Recipe::createLinkTag("google.com", "Visit Google"); echo $linkTags; //outputs: <a href="google.com" title="Visit Google" >Visit Google</a>
Tạo link có tiêu đề cùng các thuộc tính HTML khác
$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>
validateEmail - Kiểm tra hợp lệ của email
$isValid = Recipe::validateEmail("user@gmail.com");
validateURL - kiểm tra hợp lệ của một URL
$isValid = Recipe::validateURL("http://github.com/");
Đọc Rss - trả về mảng là các mẩu tin RSS
$rssArray = Recipe::rssReader("https://github.com/ngfw/Recipe/commits/master.atom");
objectToArray - Chuyển một đối tượng thành mảng
$obj = new stdClass; $obj->foo = 'bar'; $obj->baz = 'qux'; $array = Recipe::objectToArray($obj); var_dump($array);
arrayToObject - Chuyển mạng thành đối tượng
$array = array( "foo" => "bar", "baz" => "qux", ); $obj = Recipe::arrayToObject($array);
arrayToString - Chuyển mảng thành chuối
$array = array( "foo" => "bar", "baz" => "qux", ); $string = Recipe::arrayToString($array); echo $string; // outputs: foo="bar" baz="qux"
Chuyển mã màu dạng HEX thành RGB và ngược lại
$rgb = Recipe::hex2rgb("#FFF"); echo $rgb; // outputs: rgb(255, 255, 255) $hex = Recipe::rgb2hex("rgb(123,123,123)"); // outputs: #7b7b7b
Phát sinh password có số ký tự chọn trước generateRandomPassword
$randomPass = Recipe::generateRandomPassword(10); echo $randomPass; // chuỗi password dài 10 ký tự
Mã hóa đơn giản
$decodedString = Recipe::simpleDecode("qcnVhqjKxpuilw=="); echo $decodedString;
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)
Get Google PageRank
$GoogleRank = Recipe::getGooglePageRank("github.com");
echo $GoogleRank;
// outputs: Current google page ranking
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);
WIKI Search
$wiki = Recipe::wikiSearch("Tbilisi");
var_dump($wiki);
// outputs: data from wikipedia
Notification
$notification = Recipe::notification("Test Successful");
echo $notification;
Auto Embed
$string = "Checkout Solomun, Boiler Room at https://www.youtube.com/watch?v=bk6Xst6euQk";
echo Recipe::autoEmbed($string);
// 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;
Get Referer
Get the referer page (last page visited)
$referrer = Recipe::getReferer();
echo $referer ;
// outputs an url (http://mywebsite.com/page1)
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.