| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411 | <?php/** * Convert HTML characters to entities. * * The encoding specified in the application configuration file will be used. * * @param  string  $value * @return string */function e($value){	return Laravel\HTML::entities($value);}/** * Retrieve a language line. * * @param  string  $key * @param  array   $replacements * @param  string  $language * @return string */function __($key, $replacements = array(), $language = null){	return Laravel\Lang::line($key, $replacements, $language);}/** * Get an item from an array using "dot" notation. * * <code> *		// Get the $array['user']['name'] value from the array *		$name = array_get($array, 'user.name'); * *		// Return a default from if the specified item doesn't exist *		$name = array_get($array, 'user.name', 'Taylor'); * </code> * * @param  array   $array * @param  string  $key * @param  mixed   $default * @return mixed */function array_get($array, $key, $default = null){	if (is_null($key)) return $array;	// To retrieve the array item using dot syntax, we'll iterate through	// each segment in the key and look for that value. If it exists, we	// will return it, otherwise we will set the depth of the array and	// look for the next segment.	foreach (explode('.', $key) as $segment)	{		if ( ! is_array($array) or ! array_key_exists($segment, $array))		{			return value($default);		}		$array = $array[$segment];	}	return $array;}/** * Set an array item to a given value using "dot" notation. * * If no key is given to the method, the entire array will be replaced. * * <code> *		// Set the $array['user']['name'] value on the array *		array_set($array, 'user.name', 'Taylor'); * *		// Set the $array['user']['name']['first'] value on the array *		array_set($array, 'user.name.first', 'Michael'); * </code> * * @param  array   $array * @param  string  $key * @param  mixed   $value * @return void */function array_set(&$array, $key, $value){	if (is_null($key)) return $array = $value;	$keys = explode('.', $key);	// This loop allows us to dig down into the array to a dynamic depth by	// setting the array value for each level that we dig into. Once there	// is one key left, we can fall out of the loop and set the value as	// we should be at the proper depth.	while (count($keys) > 1)	{		$key = array_shift($keys);		// If the key doesn't exist at this depth, we will just create an		// empty array to hold the next value, allowing us to create the		// arrays to hold the final value.		if ( ! isset($array[$key]) or ! is_array($array[$key]))		{			$array[$key] = array();		}		$array =& $array[$key];	}	$array[array_shift($keys)] = $value;}/** * Remove an array item from a given array using "dot" notation. * * <code> *		// Remove the $array['user']['name'] item from the array *		array_forget($array, 'user.name'); * *		// Remove the $array['user']['name']['first'] item from the array *		array_forget($array, 'user.name.first'); * </code> * * @param  array   $array * @param  string  $key * @return void */function array_forget(&$array, $key){	$keys = explode('.', $key);	// This loop functions very similarly to the loop in the "set" method.	// We will iterate over the keys, setting the array value to the new	// depth at each iteration. Once there is only one key left, we will	// be at the proper depth in the array.	while (count($keys) > 1)	{		$key = array_shift($keys);		// Since this method is supposed to remove a value from the array,		// if a value higher up in the chain doesn't exist, there is no		// need to keep digging into the array, since it is impossible		// for the final value to even exist.		if ( ! isset($array[$key]) or ! is_array($array[$key]))		{			return;		}		$array =& $array[$key];	}	unset($array[array_shift($keys)]);}/** * Return the first element in an array which passes a given truth test. * * <code> *		// Return the first array element that equals "Taylor" *		$value = array_first($array, function($k, $v) {return $v == 'Taylor';}); * *		// Return a default value if no matching element is found *		$value = array_first($array, function($k, $v) {return $v == 'Taylor'}, 'Default'); * </code> * * @param  array    $array * @param  Closure  $callback * @param  mixed    $default * @return mixed */function array_first($array, $callback, $default = null){	foreach ($array as $key => $value)	{		if (call_user_func($callback, $key, $value)) return $value;	}	return value($default);}/** * Recursively remove slashes from array keys and values. * * @param  array  $array * @return array */function array_strip_slashes($array){	$result = array();	foreach($array as $key => $value)	{		$key = stripslashes($key);		// If the value is an array, we will just recurse back into the		// function to keep stripping the slashes out of the array,		// otherwise we will set the stripped value.		if (is_array($value))		{			$result[$key] = array_strip_slashes($value);		}		else		{			$result[$key] = stripslashes($value);		}	}	return $result;}/** * Divide an array into two arrays. One with keys and the other with values. * * @param  array  $array * @return array */function array_divide($array){	return array(array_keys($array), array_values($array));}/** * Determine if "Magic Quotes" are enabled on the server. * * @return bool */function magic_quotes(){	return function_exists('get_magic_quotes_gpc') and get_magic_quotes_gpc();}/** * Return the first element of an array. * * This is simply a convenient wrapper around the "reset" method. * * @param  array  $array * @return mixed */function head($array){	return reset($array);}/** * Generate an application URL. * * <code> *		// Create a URL to a location within the application *		$url = path('user/profile'); * *		// Create a HTTPS URL to a location within the application *		$url = path('user/profile', true); * </code> * * @param  string  $url * @param  bool    $https * @return string */function url($url = '', $https = false){	return Laravel\URL::to($url, $https);}/** * Generate an application URL to an asset. * * @param  string  $url * @param  bool    $https * @return string */function asset($url, $https = false){	return Laravel\URL::to_asset($url, $https);}/** * Generate a URL to a controller action. * * <code> *		// Generate a URL to the "index" method of the "user" controller *		$url = action('user@index'); * *		// Generate a URL to http://example.com/user/profile/taylor *		$url = action('user@profile', array('taylor')); * </code> * * @param  string  $action * @param  array   $parameters * @return string */function action($action, $parameters = array()){	return Laravel\URL::to_action($action, $parameters);}/** * Generate a URL from a route name. * * <code> *		// Create a URL to the "profile" named route *		$url = route('profile'); * *		// Create a URL to the "profile" named route with wildcard parameters *		$url = route('profile', array($username)); * </code> * * @param  string  $name * @param  array   $parameters * @return string */function route($name, $parameters = array()){	return Laravel\URL::to_route($name, $parameters);}/** * Determine if a given string begins with a given value. * * @param  string  $haystack * @param  string  $needle * @return bool */function starts_with($haystack, $needle){	return strpos($haystack, $needle) === 0;}/** * Determine if a given string ends with a given value. * * @param  string  $haystack * @param  string  $needle * @return bool */function ends_with($haystack, $needle){	return $needle == substr($haystack, strlen($haystack) - strlen($needle));}/** * Determine if a given string contains a given sub-string. * * @param  string  $haystack * @param  string  $needle * @return bool */function str_contains($haystack, $needle){	return strpos($haystack, $needle) !== false;}/** * Cap a string with a single instance of the given string. * * @param  string  $value * @param  string  $cap * @return string */function str_finish($value, $cap){	return rtrim($value, $cap).$cap;}/** * Get the root namespace of a given class. * * @param  string  $class * @return string */function root_namespace($class){	if (str_contains($class, '\\'))	{		return head(explode('\\', $class));	}}/** * Return the value of the given item. * * If the given item is a Closure the result of the Closure will be returned. * * @param  mixed  $value * @return mixed */function value($value){	return ($value instanceof Closure) ? call_user_func($value) : $value;}/** * Short-cut for constructor method chaining. * * @param  mixed  $object * @return mixed */function with($object){	return $object;}/** * Determine if the current version of PHP is at least the supplied version. * * @param  string  $version * @return bool */function has_php($version){	return version_compare(PHP_VERSION, $version) >= 0;}
 |