Update to CodeIgniter 3.19
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
@@ -54,10 +54,10 @@ if ( ! function_exists('create_captcha'))
|
||||
/**
|
||||
* Create CAPTCHA
|
||||
*
|
||||
* @param array $data data for the CAPTCHA
|
||||
* @param string $img_path path to create the image in
|
||||
* @param string $img_url URL to the CAPTCHA image folder
|
||||
* @param string $font_path server path to font
|
||||
* @param array $data Data for the CAPTCHA
|
||||
* @param string $img_path Path to create the image in (deprecated)
|
||||
* @param string $img_url URL to the CAPTCHA image folder (deprecated)
|
||||
* @param string $font_path Server path to font (deprecated)
|
||||
* @return string
|
||||
*/
|
||||
function create_captcha($data = '', $img_path = '', $img_url = '', $font_path = '')
|
||||
@@ -110,7 +110,8 @@ if ( ! function_exists('create_captcha'))
|
||||
$current_dir = @opendir($img_path);
|
||||
while ($filename = @readdir($current_dir))
|
||||
{
|
||||
if (substr($filename, -4) === '.jpg' && (str_replace('.jpg', '', $filename) + $expiration) < $now)
|
||||
if (in_array(substr($filename, -4), array('.jpg', '.png'))
|
||||
&& (str_replace(array('.jpg', '.png'), '', $filename) + $expiration) < $now)
|
||||
{
|
||||
@unlink($img_path.$filename);
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
@@ -67,7 +67,7 @@ if ( ! function_exists('set_cookie'))
|
||||
* @param bool true makes the cookie accessible via http(s) only (no javascript)
|
||||
* @return void
|
||||
*/
|
||||
function set_cookie($name, $value = '', $expire = '', $domain = '', $path = '/', $prefix = '', $secure = FALSE, $httponly = FALSE)
|
||||
function set_cookie($name, $value = '', $expire = '', $domain = '', $path = '/', $prefix = '', $secure = NULL, $httponly = NULL)
|
||||
{
|
||||
// Set the config file options
|
||||
get_instance()->input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure, $httponly);
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
@@ -496,6 +496,7 @@ if ( ! function_exists('nice_date'))
|
||||
* Turns many "reasonably-date-like" strings into something
|
||||
* that is actually useful. This only works for dates after unix epoch.
|
||||
*
|
||||
* @deprecated 3.1.3 Use DateTime::createFromFormat($input_format, $input)->format($output_format);
|
||||
* @param string The terribly formatted date-like string
|
||||
* @param string Date format to return (same as php date function)
|
||||
* @return string
|
||||
@@ -529,9 +530,9 @@ if ( ! function_exists('nice_date'))
|
||||
}
|
||||
|
||||
// Date Like: YYYYMMDD
|
||||
if (preg_match('/^(\d{2})\d{2}(\d{4})$/i', $bad_date, $matches))
|
||||
if (preg_match('/^\d{8}$/i', $bad_date, $matches))
|
||||
{
|
||||
return date($format, strtotime($matches[1].'/01/'.$matches[2]));
|
||||
return DateTime::createFromFormat('Ymd', $bad_date)->format($format);
|
||||
}
|
||||
|
||||
// Date Like: MM-DD-YYYY __or__ M-D-YYYY (or anything in between)
|
||||
@@ -707,87 +708,32 @@ if ( ! function_exists('date_range'))
|
||||
|
||||
$range = array();
|
||||
|
||||
/* NOTE: Even though the DateTime object has many useful features, it appears that
|
||||
* it doesn't always handle properly timezones, when timestamps are passed
|
||||
* directly to its constructor. Neither of the following gave proper results:
|
||||
*
|
||||
* new DateTime('<timestamp>')
|
||||
* new DateTime('<timestamp>', '<timezone>')
|
||||
*
|
||||
* --- available in PHP 5.3:
|
||||
*
|
||||
* DateTime::createFromFormat('<format>', '<timestamp>')
|
||||
* DateTime::createFromFormat('<format>', '<timestamp>', '<timezone')
|
||||
*
|
||||
* ... so we'll have to set the timestamp after the object is instantiated.
|
||||
* Furthermore, in PHP 5.3 we can use DateTime::setTimestamp() to do that and
|
||||
* given that we have UNIX timestamps - we should use it.
|
||||
*/
|
||||
$from = new DateTime();
|
||||
$from->setTimestamp($unix_start);
|
||||
|
||||
if (is_php('5.3'))
|
||||
{
|
||||
$from->setTimestamp($unix_start);
|
||||
if ($is_unix)
|
||||
{
|
||||
$arg = new DateTime();
|
||||
$arg->setTimestamp($mixed);
|
||||
}
|
||||
else
|
||||
{
|
||||
$arg = (int) $mixed;
|
||||
}
|
||||
|
||||
$period = new DatePeriod($from, new DateInterval('P1D'), $arg);
|
||||
foreach ($period as $date)
|
||||
{
|
||||
$range[] = $date->format($format);
|
||||
}
|
||||
|
||||
/* If a period end date was passed to the DatePeriod constructor, it might not
|
||||
* be in our results. Not sure if this is a bug or it's just possible because
|
||||
* the end date might actually be less than 24 hours away from the previously
|
||||
* generated DateTime object, but either way - we have to append it manually.
|
||||
*/
|
||||
if ( ! is_int($arg) && $range[count($range) - 1] !== $arg->format($format))
|
||||
{
|
||||
$range[] = $arg->format($format);
|
||||
}
|
||||
|
||||
return $range;
|
||||
}
|
||||
|
||||
$from->setDate(date('Y', $unix_start), date('n', $unix_start), date('j', $unix_start));
|
||||
$from->setTime(date('G', $unix_start), date('i', $unix_start), date('s', $unix_start));
|
||||
if ($is_unix)
|
||||
{
|
||||
$arg = new DateTime();
|
||||
$arg->setDate(date('Y', $mixed), date('n', $mixed), date('j', $mixed));
|
||||
$arg->setTime(date('G', $mixed), date('i', $mixed), date('s', $mixed));
|
||||
$arg->setTimestamp($mixed);
|
||||
}
|
||||
else
|
||||
{
|
||||
$arg = (int) $mixed;
|
||||
}
|
||||
$range[] = $from->format($format);
|
||||
|
||||
if (is_int($arg)) // Day intervals
|
||||
$period = new DatePeriod($from, new DateInterval('P1D'), $arg);
|
||||
foreach ($period as $date)
|
||||
{
|
||||
do
|
||||
{
|
||||
$from->modify('+1 day');
|
||||
$range[] = $from->format($format);
|
||||
}
|
||||
while (--$arg > 0);
|
||||
$range[] = $date->format($format);
|
||||
}
|
||||
else // end date UNIX timestamp
|
||||
{
|
||||
for ($from->modify('+1 day'), $end_check = $arg->format('Ymd'); $from->format('Ymd') < $end_check; $from->modify('+1 day'))
|
||||
{
|
||||
$range[] = $from->format($format);
|
||||
}
|
||||
|
||||
// Our loop only appended dates prior to our end date
|
||||
/* If a period end date was passed to the DatePeriod constructor, it might not
|
||||
* be in our results. Not sure if this is a bug or it's just possible because
|
||||
* the end date might actually be less than 24 hours away from the previously
|
||||
* generated DateTime object, but either way - we have to append it manually.
|
||||
*/
|
||||
if ( ! is_int($arg) && $range[count($range) - 1] !== $arg->format($format))
|
||||
{
|
||||
$range[] = $arg->format($format);
|
||||
}
|
||||
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
@@ -138,13 +138,15 @@ if ( ! function_exists('delete_files'))
|
||||
{
|
||||
if ($filename !== '.' && $filename !== '..')
|
||||
{
|
||||
if (is_dir($path.DIRECTORY_SEPARATOR.$filename) && $filename[0] !== '.')
|
||||
$filepath = $path.DIRECTORY_SEPARATOR.$filename;
|
||||
|
||||
if (is_dir($filepath) && $filename[0] !== '.' && ! is_link($filepath))
|
||||
{
|
||||
delete_files($path.DIRECTORY_SEPARATOR.$filename, $del_dir, $htdocs, $_level + 1);
|
||||
delete_files($filepath, $del_dir, $htdocs, $_level + 1);
|
||||
}
|
||||
elseif ($htdocs !== TRUE OR ! preg_match('/^(\.htaccess|index\.(html|htm|php)|web\.config)$/i', $filename))
|
||||
{
|
||||
@unlink($path.DIRECTORY_SEPARATOR.$filename);
|
||||
@unlink($filepath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
@@ -90,20 +90,49 @@ if ( ! function_exists('form_open'))
|
||||
|
||||
$form = '<form action="'.$action.'"'.$attributes.">\n";
|
||||
|
||||
// Add CSRF field if enabled, but leave it out for GET requests and requests to external websites
|
||||
if ($CI->config->item('csrf_protection') === TRUE && strpos($action, $CI->config->base_url()) !== FALSE && ! stripos($form, 'method="get"'))
|
||||
{
|
||||
$hidden[$CI->security->get_csrf_token_name()] = $CI->security->get_csrf_hash();
|
||||
}
|
||||
|
||||
if (is_array($hidden))
|
||||
{
|
||||
foreach ($hidden as $name => $value)
|
||||
{
|
||||
$form .= '<input type="hidden" name="'.$name.'" value="'.html_escape($value).'" style="display:none;" />'."\n";
|
||||
$form .= '<input type="hidden" name="'.$name.'" value="'.html_escape($value).'" />'."\n";
|
||||
}
|
||||
}
|
||||
|
||||
// Add CSRF field if enabled, but leave it out for GET requests and requests to external websites
|
||||
if ($CI->config->item('csrf_protection') === TRUE && strpos($action, $CI->config->base_url()) !== FALSE && ! stripos($form, 'method="get"'))
|
||||
{
|
||||
// Prepend/append random-length "white noise" around the CSRF
|
||||
// token input, as a form of protection against BREACH attacks
|
||||
if (FALSE !== ($noise = $CI->security->get_random_bytes(1)))
|
||||
{
|
||||
list(, $noise) = unpack('c', $noise);
|
||||
}
|
||||
else
|
||||
{
|
||||
$noise = mt_rand(-128, 127);
|
||||
}
|
||||
|
||||
// Prepend if $noise has a negative value, append if positive, do nothing for zero
|
||||
$prepend = $append = '';
|
||||
if ($noise < 0)
|
||||
{
|
||||
$prepend = str_repeat(" ", abs($noise));
|
||||
}
|
||||
elseif ($noise > 0)
|
||||
{
|
||||
$append = str_repeat(" ", $noise);
|
||||
}
|
||||
|
||||
$form .= sprintf(
|
||||
'%s<input type="hidden" name="%s" value="%s" />%s%s',
|
||||
$prepend,
|
||||
$CI->security->get_csrf_token_name(),
|
||||
$CI->security->get_csrf_hash(),
|
||||
$append,
|
||||
"\n"
|
||||
);
|
||||
}
|
||||
|
||||
return $form;
|
||||
}
|
||||
}
|
||||
@@ -568,7 +597,7 @@ if ( ! function_exists('form_label'))
|
||||
*
|
||||
* @param string The text to appear onscreen
|
||||
* @param string The id the label applies to
|
||||
* @param string Additional attributes
|
||||
* @param mixed Additional attributes
|
||||
* @return string
|
||||
*/
|
||||
function form_label($label_text = '', $id = '', $attributes = array())
|
||||
@@ -581,13 +610,7 @@ if ( ! function_exists('form_label'))
|
||||
$label .= ' for="'.$id.'"';
|
||||
}
|
||||
|
||||
if (is_array($attributes) && count($attributes) > 0)
|
||||
{
|
||||
foreach ($attributes as $key => $val)
|
||||
{
|
||||
$label .= ' '.$key.'="'.$val.'"';
|
||||
}
|
||||
}
|
||||
$label .= _attributes_to_string($attributes);
|
||||
|
||||
return $label.'>'.$label_text.'</label>';
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
@@ -192,7 +192,7 @@ if ( ! function_exists('img'))
|
||||
|
||||
foreach ($src as $k => $v)
|
||||
{
|
||||
if ($k === 'src' && ! preg_match('#^([a-z]+:)?//#i', $v))
|
||||
if ($k === 'src' && ! preg_match('#^(data:[a-z,;])|(([a-z]+:)?(?<!data:)//)#i', $v))
|
||||
{
|
||||
if ($index_page === TRUE)
|
||||
{
|
||||
@@ -200,7 +200,7 @@ if ( ! function_exists('img'))
|
||||
}
|
||||
else
|
||||
{
|
||||
$img .= ' src="'.get_instance()->config->slash_item('base_url').$v.'"';
|
||||
$img .= ' src="'.get_instance()->config->base_url($v).'"';
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -292,7 +292,7 @@ if ( ! function_exists('link_tag'))
|
||||
}
|
||||
else
|
||||
{
|
||||
$link .= 'href="'.$CI->config->slash_item('base_url').$v.'" ';
|
||||
$link .= 'href="'.$CI->config->base_url($v).'" ';
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -313,7 +313,7 @@ if ( ! function_exists('link_tag'))
|
||||
}
|
||||
else
|
||||
{
|
||||
$link .= 'href="'.$CI->config->slash_item('base_url').$href.'" ';
|
||||
$link .= 'href="'.$CI->config->base_url($href).'" ';
|
||||
}
|
||||
|
||||
$link .= 'rel="'.$rel.'" type="'.$type.'" ';
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
@@ -95,6 +95,7 @@ if ( ! function_exists('singular'))
|
||||
'/(s)tatuses$/' => '\1\2tatus',
|
||||
'/(c)hildren$/' => '\1\2hild',
|
||||
'/(n)ews$/' => '\1\2ews',
|
||||
'/(quiz)zes$/' => '\1',
|
||||
'/([^us])s$/' => '\1'
|
||||
);
|
||||
|
||||
@@ -238,8 +239,37 @@ if ( ! function_exists('is_countable'))
|
||||
return ! in_array(
|
||||
strtolower($word),
|
||||
array(
|
||||
'equipment', 'information', 'rice', 'money',
|
||||
'species', 'series', 'fish', 'meta'
|
||||
'audio',
|
||||
'bison',
|
||||
'chassis',
|
||||
'compensation',
|
||||
'coreopsis',
|
||||
'data',
|
||||
'deer',
|
||||
'education',
|
||||
'emoji',
|
||||
'equipment',
|
||||
'fish',
|
||||
'furniture',
|
||||
'gold',
|
||||
'information',
|
||||
'knowledge',
|
||||
'love',
|
||||
'rain',
|
||||
'money',
|
||||
'moose',
|
||||
'nutrition',
|
||||
'offspring',
|
||||
'plankton',
|
||||
'pokemon',
|
||||
'police',
|
||||
'rice',
|
||||
'series',
|
||||
'sheep',
|
||||
'species',
|
||||
'swine',
|
||||
'traffic',
|
||||
'wheat'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
@@ -61,7 +61,7 @@ if ( ! function_exists('set_realpath'))
|
||||
function set_realpath($path, $check_existance = FALSE)
|
||||
{
|
||||
// Security check to make sure the path is NOT a URL. No remote file inclusion!
|
||||
if (preg_match('#^(http:\/\/|https:\/\/|www\.|ftp)#i', $path) OR filter_var($path, FILTER_VALIDATE_IP) === $path )
|
||||
if (preg_match('#^(http:\/\/|https:\/\/|www\.|ftp|php:\/\/)#i', $path) OR filter_var($path, FILTER_VALIDATE_IP) === $path)
|
||||
{
|
||||
show_error('The path you submitted must be a local server path, not a URL');
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
@@ -195,9 +195,7 @@ if ( ! function_exists('reduce_multiples'))
|
||||
if ( ! function_exists('random_string'))
|
||||
{
|
||||
/**
|
||||
* Create a Random String
|
||||
*
|
||||
* Useful for generating passwords or hashes.
|
||||
* Create a "Random" String
|
||||
*
|
||||
* @param string type of random string. basic, alpha, alnum, numeric, nozero, unique, md5, encrypt and sha1
|
||||
* @param int number of characters
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
@@ -102,7 +102,7 @@ if ( ! function_exists('character_limiter'))
|
||||
}
|
||||
|
||||
// a bit complicated, but faster than preg_replace with \s+
|
||||
$str = preg_replace('/ {2,}/', ' ', str_replace(array("\r", "\n", "\t", "\x0B", "\x0C"), ' ', $str));
|
||||
$str = preg_replace('/ {2,}/', ' ', str_replace(array("\r", "\n", "\t", "\v", "\f"), ' ', $str));
|
||||
|
||||
if (mb_strlen($str) <= $n)
|
||||
{
|
||||
@@ -138,7 +138,10 @@ if ( ! function_exists('ascii_to_entities'))
|
||||
function ascii_to_entities($str)
|
||||
{
|
||||
$out = '';
|
||||
for ($i = 0, $s = strlen($str) - 1, $count = 1, $temp = array(); $i <= $s; $i++)
|
||||
$length = defined('MB_OVERLOAD_STRING')
|
||||
? mb_strlen($str, '8bit') - 1
|
||||
: strlen($str) - 1;
|
||||
for ($i = 0, $count = 1, $temp = array(); $i <= $length; $i++)
|
||||
{
|
||||
$ordinal = ord($str[$i]);
|
||||
|
||||
@@ -176,7 +179,7 @@ if ( ! function_exists('ascii_to_entities'))
|
||||
$temp = array();
|
||||
}
|
||||
// If this is the last iteration, just output whatever we have
|
||||
elseif ($i === $s)
|
||||
elseif ($i === $length)
|
||||
{
|
||||
$out .= '&#'.implode(';', $temp).';';
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
@@ -393,10 +393,10 @@ if ( ! function_exists('auto_link'))
|
||||
function auto_link($str, $type = 'both', $popup = FALSE)
|
||||
{
|
||||
// Find and replace any URLs.
|
||||
if ($type !== 'email' && preg_match_all('#(\w*://|www\.)[^\s()<>;]+\w#i', $str, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER))
|
||||
if ($type !== 'email' && preg_match_all('#(\w*://|www\.)[a-z0-9]+(-+[a-z0-9]+)*(\.[a-z0-9]+(-+[a-z0-9]+)*)+(/([^\s()<>;]+\w)?/?)?#i', $str, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER))
|
||||
{
|
||||
// Set our target HTML if using popup links.
|
||||
$target = ($popup) ? ' target="_blank"' : '';
|
||||
$target = ($popup) ? ' target="_blank" rel="noopener"' : '';
|
||||
|
||||
// We process the links in reverse order (last -> first) so that
|
||||
// the returned string offsets from preg_match_all() are not
|
||||
|
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2016, British Columbia Institute of Technology
|
||||
* Copyright (c) 2014 - 2018, British Columbia Institute of Technology
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -29,7 +29,7 @@
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/)
|
||||
* @license http://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
|
Reference in New Issue
Block a user