Created
June 5, 2013 13:26
-
-
Save ssut/5713833 to your computer and use it in GitHub Desktop.
Extension of PHP STL.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Library Extension :: Extension of PHP STL. | |
**/ | |
function kDate($_addHyphen = false) { | |
return date($_addHyphen ? 'Y-m-d' : 'Ymd'); | |
} | |
function kDatetime() { | |
return date('Y-m-d H:i:s'); | |
} | |
// Functions for Array and stdClass. | |
function arrayEncode($_Array) { | |
return base64_encode(json_encode($_Array)); | |
} | |
function arrayDecode($_encodedArray) { | |
return json_decode(base64_decode($_encodedArray), true); | |
} | |
function arrayToObj($_Array) { | |
return json_decode(json_encode($_Array)); | |
} | |
// Functions for String. | |
function kHash($_plainData) { | |
$_codeA = hash('sha512', base64_decode(sha1($_plainData) . md5($_plainData) . base64_encode($_plainData)) . base64_decode(md5($_plainData) . sha1($_plainData) . base64_encode($_plainData))); | |
$_codeB = hash('sha512', base64_encode(sha1($_plainData) . md5($_plainData) . base64_encode($_plainData)) . base64_encode(md5($_plainData) . sha1($_plainData) . base64_encode($_plainData))); | |
return substr($_codeA, strlen($_codeA) / 2, strlen($_codeA) / 2) . substr($_codeA, 0, strlen($_codeA) / 2); | |
} | |
function kFiltering($_Data) { | |
$_filterTags = array('iframe', 'script', 'style', 'meta', 'link', 'title', 'xmp', 'pre'); | |
foreach($_filterTags as $_tagName) { | |
$_Data = preg_replace('/<' . $_tagName . '.*<\/' . $_tagName . '>/is', '', $_Data); | |
} | |
$_Data = kBlank($_Data, true); | |
foreach($_filterTags as $_tagName) { | |
$_Data = preg_replace('/<' . $_tagName . '.*\/?>/i', '', $_Data); | |
} | |
$_Data = preg_replace_callback('/<[a-z]+(.*)>/i', 'kFilteringAttr', $_Data); | |
return kBlank($_Data); | |
} | |
function kFilteringAttr($_Attrs) { | |
return preg_replace('/on([a-z]+)=/i', 'q:$1=', preg_replace('/([a-z]+)=("|\')javascript:/i', '$1=$2_' . substr(kHash(time()), 0, 5) . ':', $_Attrs[0])); | |
} | |
function kName($_normalString) { | |
return ucfirst(strtolower($_normalString)); | |
} | |
function kFormalName($_normalString) { | |
return preg_replace('/[^a-z0-9_]/i', '', strtolower($_normalString)); | |
} | |
function kClassName($_classObj) { | |
return strtolower(get_class($_classObj)); | |
} | |
function kBlank($_normalData, $_splitLine = false) { | |
return preg_replace('/>' . (!$_splitLine ? '\s+' : '') . '</', '>' . ($_splitLine ? chr(10) . chr(13) : '') . '<', preg_replace('/\s{2,}/', ' ', strtr($_normalData, array( | |
chr(9) => '', chr(13) => '', chr(10) => '' | |
)))); | |
} | |
function kRand($_start, $_end) { | |
if(function_exists('mt_rand')) return mt_rand($_start, $_end); | |
else return rand($_start, $_end); | |
} | |
function kRandString() { | |
return substr(chr(kRand(33, 47)) . chr(kRand(58, 64)) . chr(kRand(33, 47)) . chr(kRand(91, 96)) . chr(kRand(123, 126)) . chr(kRand(33, 47)) . chr(kRand(58, 64)) . chr(kRand(33, 47)) . chr(kRand(91, 96)) . chr(kRand(123, 126)), 0, kRand(5, 10)); | |
} | |
function kXml($_Superlative = 'result') { | |
return new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8" ?><' . preg_replace('/[^a-z]/', '', strtolower($_Superlative)) . ' />'); | |
} | |
// Functions for the files or directories. | |
function kRead($_fileAddr) { | |
if(is_file($_fileAddr) && is_readable(dirname($_fileAddr))) { | |
$_fileHwnd = fopen($_fileAddr, 'r'); | |
$_fileCtx = ''; | |
while(!feof($_fileHwnd)) | |
$_fileCtx .= fread($_fileHwnd, 1024); | |
fclose($_fileHwnd); | |
return $_fileCtx; | |
} else { | |
return null; | |
} | |
} | |
function kWrite($_fileAddr, $_fileCtx, $_writeMod = 'w') { | |
if(is_writable(dirname($_fileAddr))) { | |
$_fileHwnd = fopen($_fileAddr, $_writeMod); | |
$_fileResult = fwrite($_fileHwnd, $_fileCtx); | |
fclose($_fileHwnd); | |
return $_fileResult; | |
} else { | |
return null; | |
} | |
} | |
function kAppend($_fileAddr, $_fileCtx) { | |
return kWrite($_fileAddr, $_fileCtx, 'a'); | |
} | |
function kMake($_dirAddr, $_dirPermission = 0707) { | |
if(!is_dir($_dirAddr) && is_writable(dirname($_dirAddr))) { | |
return mkdir($_dirAddr, $_dirPermission); | |
} else { | |
return null; | |
} | |
} | |
function kRemove($_targetName) { | |
if(is_file($_targetName)) { | |
return unlink($_targetName); | |
} else if(is_dir($_targetName)) { | |
foreach(glob($_targetName . '/*') as $_fileName) { | |
if(is_dir($_fileName)) { | |
kRemove($_fileName); | |
} else if(is_file($_fileName)) { | |
unlink($_fileName); | |
} | |
} | |
return rmdir($_targetName); | |
} | |
} | |
function kFileTime($_targetName) { | |
if(is_file($_targetName)) | |
return filemtime($_targetName); | |
else | |
return -1; | |
} | |
function kStrcut($_plainData, $_length, $_check = false, $_tail = '..') { | |
preg_match_all('/[\xEA-\xED][\x80-\xFF]{2}|./', $_plainData, $_Match); | |
$_Matches = $_Match[0]; | |
$_dataLength = strlen($_plainData); | |
$_tailLength = strlen($_tail); | |
$_cMatches = count($_Matches); | |
if ($_dataLength <= $_length) return $_plainData; | |
if (!$_check && $_cMatches <= $_length) return $_plainData; | |
$_Return = array(); | |
$_Count = 0; | |
for ($i = 0; $i < $_length; $i++) { | |
$_Count += ($_check && strlen($_Matches[$i]) > 1) ? 2 : 1; | |
if ($_Count + $_tailLength > $_length) break; | |
$_Return[] = $_Matches[$i]; | |
} | |
return join('', $_Return) . $_tail; | |
} | |
function kURL($_URL = '', $_isSSL = false, $_Opts = array()) { | |
if($_URL == '') return null; | |
$ch = curl_init(); | |
curl_setopt($ch, CURLOPT_HEADER, 0); | |
if($_isSSL) curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); | |
if($_Opts['User-Agent']) curl_setopt($ch, CURLOPT_USERAGENT, $_Opts['User-Agent']); | |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); | |
curl_setopt($ch, CURLOPT_URL, $_URL); | |
$data = curl_exec($ch); | |
curl_close($ch); | |
return $data; | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment