Code Snippets
A collection of code snippets and functions that may come in handy for whatever purposes.
PHP Fix Ampersands
/**
* PHP function to convert all HTML ampersand entities (&) in a string to
* HTML encoded & entity as required for XHTML compliance.
* Can be readily copy/pasted as a WordPress filter.
*
* @param string $text text in which to find and fix ampersands
*
*/
function fix_ampersands($text) {
// don't disturb © { or other entities fix & 'B&O' 'X & Y'
return preg_replace("'&(?![a-zA-Z0-9#]+;)'is","&", $text);
}
PHP Max String Length
/**
* PHP function to trim a string to a maximum length without cutting off words.
* Useful for creating clean excerpts from blobs.
*
* @param string $text text to trim
* @param int $lim maximum length of excerpt
* @param string $delim delimiter to append if excerpt overruns limit. Defaults
* to "..."
*
*/
function substr_words($text, $lim, $delim="…")
{
$len = strlen($text);
if ($len <= $lim) return $text;
// split at first word boundary after $lim chars
preg_match('/(.{' . $lim . '}.*?)\b/', $text, $matches);
// preg above can result in "hello &" without terminal ';'
$text = preg_replace("'(&[a-zA-Z0-9#]+)$'", '$1;', $matches[1]);
$text .= $delim;
return $text;
}
Javascript Cookie Helper
/**
* @class Operations for cookie manipulation
*/
var Cookie = {
set: function(name, value, seconds){
value = encodeURIComponent(value);
if (seconds)
{
var d = new Date();
d.setTime(d.getTime() + (seconds * 1000));
expiry = '; expires=' + d.toGMTString();
}
else
{
expiry = '';
}
document.cookie = name + '=' + value + expiry + '; path=/';
},
get: function(key) {
key = key.replace(/[-[\]{}()*+?.\\^$|,]/g, "\\$&");
var value = document.cookie.match('(?:^|;)\\s*' + key + '=([^;]*)');
return value ? decodeURIComponent(value[1]) : false;
},
unset: function(cookie) {
if (typeof cookie == 'object') this.set(cookie.key, '', -1);
else this.set(cookie, '', -1);
}
};