1
0
mirror of https://github.com/e107inc/e107.git synced 2025-07-31 20:00:37 +02:00
This commit is contained in:
marj
2009-10-30 23:31:08 +00:00
parent 8d0127e8c9
commit f452ce31e7

View File

@@ -9,9 +9,9 @@
* Text processing and parsing functions * Text processing and parsing functions
* *
* $Source: /cvs_backup/e107_0.8/e107_handlers/e_parse_class.php,v $ * $Source: /cvs_backup/e107_0.8/e107_handlers/e_parse_class.php,v $
* $Revision: 1.76 $ * $Revision: 1.77 $
* $Date: 2009-10-30 22:51:52 $ * $Date: 2009-10-30 23:31:08 $
* $Author: e107steved $ * $Author: marj_nl_fr $
* *
*/ */
if (!defined('e107_INIT')) { exit(); } if (!defined('e107_INIT')) { exit(); }
@@ -23,11 +23,22 @@ define("E_NL", chr(2));
class e_parse class e_parse
{ {
// Flag for global use indicates whether utf-8 character set /**
var $isutf8 = FALSE; * Flag for global use indicates whether utf-8 character set
*
* @var boolean
*/
protected $isutf8 = FALSE;
// Determine how to handle utf-8. 0 = 'do nothing' 1 = 'use mb_string' 2 = emulation /**
var $utfAction; * Determine how to handle utf-8.
* 0 = 'do nothing'
* 1 = 'use mb_string'
* 2 = emulation
*
* @var integer
*/
protected $utfAction;
// Shortcode processor - see __get() // Shortcode processor - see __get()
//var $e_sc; //var $e_sc;
@@ -278,8 +289,8 @@ class e_parse
* Unicode (UTF-8) analogue of standard @link http://php.net/strlen strlen PHP function. * Unicode (UTF-8) analogue of standard @link http://php.net/strlen strlen PHP function.
* Returns the length of the given string. * Returns the length of the given string.
* *
* @param string $str - The UTF-8 encoded string being measured for length. * @param string $str The UTF-8 encoded string being measured for length.
* @return integer - The length (amount of UTF-8 characters) of the string on success, and 0 if the string is empty. * @return integer The length (amount of UTF-8 characters) of the string on success, and 0 if the string is empty.
*/ */
public function uStrLen($str) public function uStrLen($str)
{ {
@@ -300,8 +311,8 @@ class e_parse
* Unicode (UTF-8) analogue of standard @link http://php.net/strtolower strtolower PHP function. * Unicode (UTF-8) analogue of standard @link http://php.net/strtolower strtolower PHP function.
* Make a string lowercase. * Make a string lowercase.
* *
* @param string $str - The UTF-8 encoded string to be lowercased. * @param string $str The UTF-8 encoded string to be lowercased.
* @return string - Specified string with all alphabetic characters converted to lowercase. * @return string Specified string with all alphabetic characters converted to lowercase.
*/ */
public function uStrToLower($str) public function uStrToLower($str)
{ {
@@ -321,8 +332,8 @@ class e_parse
* Unicode (UTF-8) analogue of standard @link http://php.net/strtoupper strtoupper PHP function. * Unicode (UTF-8) analogue of standard @link http://php.net/strtoupper strtoupper PHP function.
* Make a string uppercase. * Make a string uppercase.
* *
* @param string $str - The UTF-8 encoded string to be uppercased. * @param string $str The UTF-8 encoded string to be uppercased.
* @return string - Specified string with all alphabetic characters converted to uppercase. * @return string Specified string with all alphabetic characters converted to uppercase.
*/ */
public function uStrToUpper($str) public function uStrToUpper($str)
{ {
@@ -344,11 +355,11 @@ class e_parse
* Returns the numeric position (offset in amount of UTF-8 characters) * Returns the numeric position (offset in amount of UTF-8 characters)
* of the first occurrence of needle in the haystack string. * of the first occurrence of needle in the haystack string.
* *
* @param string $haystack - The UTF-8 encoded string being searched in. * @param string $haystack The UTF-8 encoded string being searched in.
* @param integer $needle - The UTF-8 encoded string being searched for. * @param integer $needle The UTF-8 encoded string being searched for.
* @param integer $offset [optional] - The optional offset parameter allows you to specify which character in haystack to start searching. * @param integer $offset [optional] The optional offset parameter allows you to specify which character in haystack to start searching.
* The position returned is still relative to the beginning of haystack. * The position returned is still relative to the beginning of haystack.
* @return integer|boolean - Returns the position as an integer. If needle is not found, the function will return boolean FALSE. * @return integer|boolean Returns the position as an integer. If needle is not found, the function will return boolean FALSE.
*/ */
public function uStrPos($haystack, $needle, $offset = 0) public function uStrPos($haystack, $needle, $offset = 0)
{ {
@@ -369,11 +380,11 @@ class e_parse
* Returns the numeric position (offset in amount of UTF-8 characters) * Returns the numeric position (offset in amount of UTF-8 characters)
* of the last occurrence of needle in the haystack string. * of the last occurrence of needle in the haystack string.
* *
* @param string $haystack - The UTF-8 encoded string being searched in. * @param string $haystack The UTF-8 encoded string being searched in.
* @param integer $needle - The UTF-8 encoded string being searched for. * @param integer $needle The UTF-8 encoded string being searched for.
* @param integer $offset [optional] - The optional offset parameter allows you to specify which character in haystack to start searching. * @param integer $offset [optional] - The optional offset parameter allows you to specify which character in haystack to start searching.
* The position returned is still relative to the beginning of haystack. * The position returned is still relative to the beginning of haystack.
* @return integer|boolean - Returns the position as an integer. If needle is not found, the function will return boolean FALSE. * @return integer|boolean Returns the position as an integer. If needle is not found, the function will return boolean FALSE.
*/ */
public function uStrrPos($haystack, $needle, $offset = 0) public function uStrrPos($haystack, $needle, $offset = 0)
{ {
@@ -388,13 +399,26 @@ class e_parse
} }
// May be subtle differences in return values dependent on which routine is used. /**
// native substr() routine can return FALSE. mb_substr and utf8_substr just return an empty string. * Unicode (UTF-8) analogue of standard @link http://php.net/substr substr PHP function.
function uSubStr($str, $start, $length = NULL) * Returns the portion of string specified by the start and length parameters.
*
* NOTE: May be subtle differences in return values dependent on which routine is used.
* Native substr() routine can return FALSE. mb_substr() and utf8_substr() just return an empty string.
*
* @param string $str The UTF-8 encoded string.
* @param integer $start Start of portion to be returned. Position is counted in amount of UTF-8 characters from the beginning of str.
* First character's position is 0. Second character position is 1, and so on.
* @param integer $length [optional] If length is given, the string returned will contain at most length characters beginning from start
* (depending on the length of string). If length is omitted, the rest of string from start will be returned.
* @return string The extracted UTF-8 encoded part of input string.
*/
public function uSubStr($str, $start, $length = NULL)
{ {
switch($this->utfAction) switch($this->utfAction)
{ {
case 0 : return substr($str, $start, $length); case 0:
return substr($str, $start, $length);
case 1: case 1:
if(is_null($length)) if(is_null($length))
{ {
@@ -426,15 +450,20 @@ class e_parse
*/ */
function toDB($data, $nostrip = FALSE, $no_encode = FALSE, $mod = FALSE, $original_author = FALSE)
{
/** /**
* $nostrip: toDB() assumes all data is GPC ($_GET, $_POST, $_COOKIE) unless you indicate otherwise by setting this var to TRUE. * Converts the supplied text (presumed to be from user input) to a format suitable for storing in a database table.
*
* @param string $data
* @param boolean $nostrip [optional] Assumes all data is GPC ($_GET, $_POST, $_COOKIE) unless indicate otherwise by setting this var to TRUE.
* If magic quotes is enabled on the server and you do not tell toDB() that the data is non GPC then slashes will be stripped when they should not be. * If magic quotes is enabled on the server and you do not tell toDB() that the data is non GPC then slashes will be stripped when they should not be.
* $no_encode: This var should nearly always be FALSE. It is used by the save_prefs() function to preserve html content within prefs even when * @param boolean $no_encode [optional] This parameter should nearly always be FALSE. It is used by the save_prefs() function to preserve HTML content within prefs even when
* the save_prefs() function has been called by a non admin user / user without html posting permissions. * the save_prefs() function has been called by a non admin user / user without html posting permissions.
* $mod: the 'no_html' and 'no_php' modifiers blanket prevent html and php posting regardless of posting permissions. (used in logging) * @param boolean $mod [optional] The 'no_html' and 'no_php' modifiers blanket prevent HTML and PHP posting regardless of posting permissions. (used in logging)
* @param boolean $original_author [optional]
* @return string
*/ */
public function toDB($data, $nostrip = FALSE, $no_encode = FALSE, $mod = FALSE, $original_author = FALSE)
{
global $pref; global $pref;
if (is_array($data)) if (is_array($data))
{ {
@@ -738,9 +767,9 @@ class e_parse
/** /**
* Truncate a HTML string to a maximum length $len ­ append the string $more if it was truncated * Truncate a HTML string to a maximum length $len ­ append the string $more if it was truncated
* *
* @param string $text ­ string to process * @param string $text String to process
* @param integer $len ­ length of characters to be truncated * @param integer $len Length of characters to be truncated
* @param string $more ­ string which will be added if truncation * @param string $more String which will be added if truncation
* @return string * @return string
*/ */
public function html_truncate ($text, $len = 200, $more = ' ... ') public function html_truncate ($text, $len = 200, $more = ' ... ')
@@ -904,6 +933,7 @@ class e_parse
/** /**
* Converts the text (presumably retrieved from the database) for HTML output.
* *
* @param string $text * @param string $text
* @param boolean $parseBB [optional] * @param boolean $parseBB [optional]
@@ -912,7 +942,7 @@ class e_parse
* @param boolean $wrap [optional] * @param boolean $wrap [optional]
* @return string * @return string
*/ */
function toHTML($text, $parseBB = FALSE, $modifiers = "", $postID = "", $wrap = FALSE) public function toHTML($text, $parseBB = FALSE, $modifiers = "", $postID = "", $wrap = FALSE)
{ {
if($text == '') if($text == '')
return $text; return $text;
@@ -1361,10 +1391,10 @@ class e_parse
/** /**
* Convert text blocks which are to be embedded within JS * Convert text blocks which are to be embedded within JS
* *
* @param object $stringarray * @param string|array $stringarray
* @return string * @return string
*/ */
function toJS($stringarray) public function toJS($stringarray)
{ {
$search = array("\r\n", "\r", "<br />", "'"); $search = array("\r\n", "\r", "<br />", "'");
$replace = array("\\n", "", "\\n", "\'"); $replace = array("\\n", "", "\\n", "\'");
@@ -1381,8 +1411,8 @@ class e_parse
/** /**
* Convert Text for RSS/XML use. * Convert Text for RSS/XML use.
* *
* @param object $text * @param string $text
* @param object $tags [optional] * @param boolean $tags [optional]
* @return string * @return string
*/ */
function toRss($text, $tags = FALSE) function toRss($text, $tags = FALSE)
@@ -1428,7 +1458,7 @@ class e_parse
* when $mode is "" (default), ALL other e107 constants are replaced * when $mode is "" (default), ALL other e107 constants are replaced
* @return string * @return string
*/ */
function replaceConstants($text, $mode = '', $all = FALSE) public function replaceConstants($text, $mode = '', $all = FALSE)
{ {
if($mode != "") if($mode != "")
{ {
@@ -1540,10 +1570,10 @@ class e_parse
* Create and substitute e107 constants in passed URL * Create and substitute e107 constants in passed URL
* *
* @param string $url * @param string $url
* @param string $mode 0-folders, 1-relative, 2-absolute, 3-full (with domain), 4-absolute & relative (combination of 1,2,3) * @param integer $mode 0-folders, 1-relative, 2-absolute, 3-full (with domain), 4-absolute & relative (combination of 1,2,3)
* @return string * @return string
*/ */
function createConstants($url, $mode = 0) public function createConstants($url, $mode = 0)
{ {
//FIXME - create constants for absolute paths and site URL's //FIXME - create constants for absolute paths and site URL's
$e107 = e107::getInstance(); $e107 = e107::getInstance();