Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

all MDL-20821 Removed ereg related deprecated functions

  • Loading branch information...
commit 76561f1e4e2c0cfa181804344b501b4e6d56d270 1 parent 4dadad0
Andrew Davis authored
Showing with 1,393 additions and 310 deletions.
  1. +2 −2 admin/fixuserpix.php
  2. +5 −5 admin/mnet/MethodTable.php
  3. +1 −1  admin/uploaduser.php
  4. +1 −1  auth/shibboleth/auth.php
  5. +1 −1  auth/shibboleth/logout.php
  6. +2 −2 calendar/lib.php
  7. +11 −11 enrol/authorize/enrol_form.php
  8. +1 −1  filter/tex/filter.php
  9. +2 −2 lib/adodb/drivers/adodb-sybase.inc.php
  10. +46 −0 lib/adodb/readme_moodle.txt
  11. +1 −1  lib/adodb/session/old/adodb-session-clob.php
  12. +3 −3 lib/bennu/iCalendar_rfc2445.php
  13. +27 −0 lib/bennu/readme_moodle.txt
  14. +2 −2 lib/blocklib.php
  15. +1 −1  lib/deprecatedlib.php
  16. +12 −12 lib/excel/Parser.php
  17. +2 −2 lib/excel/Worksheet.php
  18. +104 −0 lib/excel/readme_moodle.txt
  19. +1 −1  lib/filelib.php
  20. +1 −1  lib/fpdf/font/makefont/makefont.php
  21. +19 −0 lib/fpdf/readme_moodle.txt
  22. +1 −1  lib/geoip/geoip.inc
  23. +19 −0 lib/geoip/readme_moodle.txt
  24. +1 −1  lib/htmlpurifier/HTMLPurifier/AttrDef/Lang.php
  25. +21 −0 lib/htmlpurifier/readme_moodle.txt
  26. +18 −18 lib/moodlelib.php
  27. +7 −3 lib/pclzip/pclzip.lib.php
  28. +51 −1 lib/pclzip/readme_moodle.txt
  29. +100 −0 lib/pear/README_MOODLE.txt
  30. +11 −11 lib/pear/Spreadsheet/Excel/Writer/Parser.php
  31. +11 −0 lib/simpletest/testmoodlelib.php
  32. +273 −0 lib/soap/README_MOODLE.txt
  33. +34 −30 lib/soap/nusoap.php
  34. +26 −0 lib/tcpdf/README_MOODLE.txt
  35. +2 −2 lib/tcpdf/html2pdf.php
  36. +359 −0 lib/typo3/README_MOODLE.txt
  37. +7 −7 lib/typo3/class.t3lib_cs.php
  38. +35 −35 lib/typo3/class.t3lib_div.php
  39. +7 −6 lib/validateurlsyntax.php
  40. +13 −13 lib/weblib.php
  41. +29 −29 lib/wiki_to_markdown.php
  42. +19 −0 lib/xmldb/README_MOODLE.txt
  43. +1 −1  lib/xmldb/classes/XMLDBObject.class.php
  44. +1 −1  login/index.php
  45. +1 −1  login/signup_form.php
  46. +1 −1  mnet/lib.php
  47. +1 −1  mnet/xmlrpc/server.php
  48. +3 −3 mod/chat/chatd.php
  49. +1 −1  mod/lesson/format.php
  50. +1 −1  mod/lesson/reformat.php
  51. +1 −1  mod/scorm/datamodels/aicclib.php
  52. +1 −1  mod/scorm/locallib.php
  53. +1 −1  mod/scorm/player.php
  54. +1 −1  mod/wiki/ewiki/fragments/nuke_mod_wiki_index
  55. +2 −2 mod/wiki/lib.php
  56. +4 −4 pix/smartpix.php
  57. +2 −2 question/format.php
  58. +1 −1  question/format/blackboard_6/format.php
  59. +5 −5 question/format/gift/format.php
  60. +2 −2 question/format/qti2/format.php
  61. +49 −49 question/format/webct/format.php
  62. +2 −2 question/format/xml/format.php
  63. +1 −1  question/type/calculated/edit_calculated_form.php
  64. +11 −11 question/type/calculated/questiontype.php
  65. +3 −3 question/type/datasetdependent/abstractqtype.php
  66. +2 −2 question/type/multianswer/questiontype.php
  67. +1 −1  question/type/numerical/questiontype.php
  68. +3 −3 question/type/random/questiontype.php
  69. +1 −1  search/documents/assignment_document.php
  70. +1 −1  user/editadvanced_form.php
4 admin/fixuserpix.php
View
@@ -252,9 +252,9 @@ function definition_after_data() {
function arguments($argv) {
$_ARG = array();
foreach ($argv as $arg) {
- if (ereg('--?([^=]+)=(.*)',$arg,$reg)) {
+ if (preg_match('/--?([^=]+)=(.*)/',$arg,$reg)) {
$_ARG[$reg[1]] = $reg[2];
- } elseif(ereg('-([a-zA-Z0-9]+)',$arg,$reg)) {
+ } elseif(preg_match('/-([a-zA-Z0-9]+)/',$arg,$reg)) {
$_ARG[$reg[1]] = 'true';
}
}
10 admin/mnet/MethodTable.php
View
@@ -465,15 +465,15 @@ function cleanArguments($args, $commentParams){
$word0 = strtolower($word0);
$word1 = strtolower($word1);
- $wordBase0 = ereg_replace('^[&$]+','',$word0);
- $wordBase1 = ereg_replace('^[&$]+','',$word1);
- $startBase = strtolower(ereg_replace('^[&$]+','',$start));
+ $wordBase0 = preg_replace('/^[&$]+/','',$word0);
+ $wordBase1 = preg_replace('/^[&$]+/','',$word1);
+ $startBase = strtolower(preg_replace('/^[&$]+/','',$start));
if ($wordBase0 == $startBase) {
$type = str_replace(array('(',')'),'', $word1);
} elseif($wordBase1 == $startBase) {
$type = str_replace(array('(',')'),'', $word0);
- } elseif( ereg('(^[&$]+)|(\()([a-z0-9]+)(\)$)', $word0, $regs) ) {
+ } elseif( preg_match('/(^[&$]+)|(\()([a-z0-9]+)(\)$)/', $word0, $regs) ) {
$tail = str_ireplace($word0, '', $end);
$type = $regs[3];
} else {
@@ -535,7 +535,7 @@ function cleanComment($comment){
$comment = str_replace("*/", "", $comment);
$comment = str_replace("*", "", $comment);
$comment = str_replace("\n", "\\n", trim($comment));
- $comment = eregi_replace("[\r\t\n ]+", " ", trim($comment));
+ $comment = preg_replace("/[\r\t\n ]+/i", " ", trim($comment));
$comment = str_replace("\"", "\\\"", $comment);
return $comment;
}
2  admin/uploaduser.php
View
@@ -260,7 +260,7 @@
// normalize username
$user->username = $textlib->strtolower($user->username);
if (empty($CFG->extendedusernamechars)) {
- $user->username = eregi_replace('[^(-\.[:alnum:])]', '', $user->username);
+ $user->username = preg_replace('/[^(-\.[:alnum:])]/i', '', $user->username);
}
if (empty($user->username)) {
$upt->track('status', get_string('missingfield', 'error', 'username'), 'error');
2  auth/shibboleth/auth.php
View
@@ -63,7 +63,7 @@ function user_login($username, $password) {
} else {
// Try to find out using the user's cookie
foreach ($_COOKIE as $name => $value){
- if (eregi('_shibsession_', $name)){
+ if (preg_match('/_shibsession_/i', $name)){
$sessionkey = $value;
}
}
2  auth/shibboleth/logout.php
View
@@ -139,7 +139,7 @@ function LogoutNotification($SessionID){
while (($file = readdir($dh)) !== false) {
// Check if it is a file
if (is_file($dir.'/'.$file)){
- $session_key = ereg_replace('sess_', '', $file);
+ $session_key = preg_replace('/sess_/', '', $file);
// Read session file data
$data = file($dir.'/'.$file);
4 calendar/lib.php
View
@@ -766,8 +766,8 @@ function calendar_top_controls($type, $data) {
$text = get_string('strftimedaydate');
/*
// Regexp hackery to make a link out of the month/year part
- $text = ereg_replace('(%B.+%Y|%Y.+%B|%Y.+%m[^ ]+)', '<a href="'.calendar_get_link_href('view.php?view=month&amp;', 1, $data['m'], $data['y']).'">\\1</a>', $text);
- $text = ereg_replace('(F.+Y|Y.+F|Y.+m[^ ]+)', '<a href="'.calendar_get_link_href('view.php?view=month&amp;', 1, $data['m'], $data['y']).'">\\1</a>', $text);
+ $text = preg_replace('/(%B.+%Y|%Y.+%B|%Y.+%m[^ ]+)/', '<a href="'.calendar_get_link_href('view.php?view=month&amp;', 1, $data['m'], $data['y']).'">\\1</a>', $text);
+ $text = preg_replace('/(F.+Y|Y.+F|Y.+m[^ ]+)/', '<a href="'.calendar_get_link_href('view.php?view=month&amp;', 1, $data['m'], $data['y']).'">\\1</a>', $text);
*/
// Replace with actual values and lose any day leading zero
$text = userdate($time, $text);
22 enrol/authorize/enrol_form.php
View
@@ -246,7 +246,7 @@ function other_method_available($currentmethod)
function validate_aba($aba)
{
- if (ereg("^[0-9]{9}$", $aba)) {
+ if (preg_match("/^[0-9]{9}$/", $aba)) {
$n = 0;
for($i = 0; $i < 9; $i += 3) {
$n += (substr($aba, $i, 1) * 3) + (substr($aba, $i + 1, 1) * 7) + (substr($aba, $i + 2, 1));
@@ -276,45 +276,45 @@ function validate_cc($Num, $Name = "n/a", $Exp = "")
$GoodCard = true;
// Get rid of any non-digits
- $Num = ereg_replace("[^0-9]", "", $Num);
+ $Num = preg_replace("/[^0-9]/", "", $Num);
// Perform card-specific checks, if applicable
switch ($Name)
{
case "mcd" :
- $GoodCard = ereg("^5[1-5].{14}$", $Num);
+ $GoodCard = preg_match("/^5[1-5].{14}$/", $Num);
break;
case "vis" :
- $GoodCard = ereg("^4.{15}$|^4.{12}$", $Num);
+ $GoodCard = preg_match("/^4.{15}$|^4.{12}$/", $Num);
break;
case "amx" :
- $GoodCard = ereg("^3[47].{13}$", $Num);
+ $GoodCard = preg_match("/^3[47].{13}$/", $Num);
break;
case "dsc" :
- $GoodCard = ereg("^6011.{12}$", $Num);
+ $GoodCard = preg_match("/^6011.{12}$/", $Num);
break;
case "dnc" :
- $GoodCard = ereg("^30[0-5].{11}$|^3[68].{12}$", $Num);
+ $GoodCard = preg_match("/^30[0-5].{11}$|^3[68].{12}$/", $Num);
break;
case "jcb" :
- $GoodCard = ereg("^3.{15}$|^2131|1800.{11}$", $Num);
+ $GoodCard = preg_match("/^3.{15}$|^2131|1800.{11}$/", $Num);
break;
case "dlt" :
- $GoodCard = ereg("^4.{15}$", $Num);
+ $GoodCard = preg_match("/^4.{15}$/", $Num);
break;
case "swi" :
- $GoodCard = ereg("^[456].{15}$|^[456].{17,18}$", $Num);
+ $GoodCard = preg_match("/^[456].{15}$|^[456].{17,18}$/", $Num);
break;
case "enr" :
- $GoodCard = ereg("^2014.{11}$|^2149.{11}$", $Num);
+ $GoodCard = preg_match("/^2014.{11}$|^2149.{11}$/", $Num);
break;
}
2  filter/tex/filter.php
View
@@ -146,7 +146,7 @@ function tex_filter ($courseid, $text) {
$texexp = str_replace('</nolink>','',$texexp);
$texexp = str_replace('<span class="nolink">','',$texexp);
$texexp = str_replace('</span>','',$texexp);
- $texexp = eregi_replace("<br[[:space:]]*\/?>", '', $texexp); //dlnsk
+ $texexp = preg_replace("#<br[[:space:]]*\/?>#i", '', $texexp); //dlnsk
$align = "middle";
if (preg_match('/^align=bottom /',$texexp)) {
$align = "text-bottom";
4 lib/adodb/drivers/adodb-sybase.inc.php
View
@@ -376,7 +376,7 @@ function UnixDate($v)
global $ADODB_sybase_mths;
//Dec 30 2000 12:00AM
- if (!ereg( "([A-Za-z]{3})[-/\. ]+([0-9]{1,2})[-/\. ]+([0-9]{4})"
+ if (!preg_match( "#([A-Za-z]{3})[-/\. ]+([0-9]{1,2})[-/\. ]+([0-9]{4})#"
,$v, $rr)) return parent::UnixDate($v);
if ($rr[3] <= TIMESTAMP_FIRST_YEAR) return 0;
@@ -393,7 +393,7 @@ function UnixTimeStamp($v)
global $ADODB_sybase_mths;
//11.02.2001 Toni Tunkkari toni.tunkkari@finebyte.com
//Changed [0-9] to [0-9 ] in day conversion
- if (!ereg( "([A-Za-z]{3})[-/\. ]([0-9 ]{1,2})[-/\. ]([0-9]{4}) +([0-9]{1,2}):([0-9]{1,2}) *([apAP]{0,1})"
+ if (!preg_match( "#([A-Za-z]{3})[-/\. ]([0-9 ]{1,2})[-/\. ]([0-9]{4}) +([0-9]{1,2}):([0-9]{1,2}) *([apAP]{0,1})#"
,$v, $rr)) return parent::UnixTimeStamp($v);
if ($rr[3] <= TIMESTAMP_FIRST_YEAR) return 0;
46 lib/adodb/readme_moodle.txt
View
@@ -30,3 +30,49 @@ Our changes:
skodak, iarenaza, moodler, stronk7
$Id$
+
+
+18 Nov 2009
+Description of modifications to remove ereg related functions deprecated as of php 5.3. Patch below.
+
+Index: drivers/adodb-sybase.inc.php
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/adodb/drivers/adodb-sybase.inc.php,v
+retrieving revision 1.21.6.2
+diff -u -r1.21.6.2 adodb-sybase.inc.php
+--- drivers/adodb-sybase.inc.php 15 Feb 2008 06:04:06 -0000 1.21.6.2
++++ drivers/adodb-sybase.inc.php 18 Nov 2009 06:15:43 -0000
+@@ -376,7 +376,7 @@
+ global $ADODB_sybase_mths;
+
+ //Dec 30 2000 12:00AM
+- if (!ereg( "([A-Za-z]{3})[-/\. ]+([0-9]{1,2})[-/\. ]+([0-9]{4})"
++ if (!preg_match( "#([A-Za-z]{3})[-/\. ]+([0-9]{1,2})[-/\. ]+([0-9]{4})#"
+ ,$v, $rr)) return parent::UnixDate($v);
+
+ if ($rr[3] <= TIMESTAMP_FIRST_YEAR) return 0;
+@@ -393,7 +393,7 @@
+ global $ADODB_sybase_mths;
+ //11.02.2001 Toni Tunkkari toni.tunkkari@finebyte.com
+ //Changed [0-9] to [0-9 ] in day conversion
+- if (!ereg( "([A-Za-z]{3})[-/\. ]([0-9 ]{1,2})[-/\. ]([0-9]{4}) +([0-9]{1,2}):([0-9]{1,2}) *([apAP]{0,1})"
++ if (!preg_match( "#([A-Za-z]{3})[-/\. ]([0-9 ]{1,2})[-/\. ]([0-9]{4}) +([0-9]{1,2}):([0-9]{1,2}) *([apAP]{0,1})#"
+ ,$v, $rr)) return parent::UnixTimeStamp($v);
+ if ($rr[3] <= TIMESTAMP_FIRST_YEAR) return 0;
+
+Index: session/old/adodb-session-clob.php
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/adodb/session/old/Attic/adodb-session-clob.php,v
+retrieving revision 1.5.6.1
+diff -u -r1.5.6.1 adodb-session-clob.php
+--- session/old/adodb-session-clob.php 15 Feb 2008 06:04:08 -0000 1.5.6.1
++++ session/old/adodb-session-clob.php 18 Nov 2009 06:15:43 -0000
+@@ -439,7 +439,7 @@
+ if (0) {
+
+ session_start();
+- session_register('AVAR');
++ session_register('AVAR');//this is deprecated in php 5.3
+ $_SESSION['AVAR'] += 1;
+ ADOConnection::outp( "
+ -- \$_SESSION['AVAR']={$_SESSION['AVAR']}</p>",false);
2  lib/adodb/session/old/adodb-session-clob.php
View
@@ -439,7 +439,7 @@ function adodb_sess_gc($maxlifetime)
if (0) {
session_start();
- session_register('AVAR');
+ session_register('AVAR');//this is deprecated in php 5.3
$_SESSION['AVAR'] += 1;
ADOConnection::outp( "
-- \$_SESSION['AVAR']={$_SESSION['AVAR']}</p>",false);
6 lib/bennu/iCalendar_rfc2445.php
View
@@ -139,13 +139,13 @@ function rfc2445_is_valid_value($value, $type) {
}
if($scheme === 'mailto') {
- $regexp = '^[a-zA-Z0-9]+[_a-zA-Z0-9\-]*(\.[_a-z0-9\-]+)*@(([0-9a-zA-Z\-]+\.)+[a-zA-Z][0-9a-zA-Z\-]+|([0-9]{1,3}\.){3}[0-9]{1,3})$';
+ $regexp = '#^[a-zA-Z0-9]+[_a-zA-Z0-9\-]*(\.[_a-z0-9\-]+)*@(([0-9a-zA-Z\-]+\.)+[a-zA-Z][0-9a-zA-Z\-]+|([0-9]{1,3}\.){3}[0-9]{1,3})$#';
}
else {
- $regexp = '^//(.+(:.*)?@)?(([0-9a-zA-Z\-]+\.)+[a-zA-Z][0-9a-zA-Z\-]+|([0-9]{1,3}\.){3}[0-9]{1,3})(:[0-9]{1,5})?(/.*)?$';
+ $regexp = '#^//(.+(:.*)?@)?(([0-9a-zA-Z\-]+\.)+[a-zA-Z][0-9a-zA-Z\-]+|([0-9]{1,3}\.){3}[0-9]{1,3})(:[0-9]{1,5})?(/.*)?$#';
}
- return ereg($regexp, $remain);
+ return preg_match($regexp, $remain);
break;
case RFC2445_TYPE_BINARY:
27 lib/bennu/readme_moodle.txt
View
@@ -0,0 +1,27 @@
+18 Nov 2009
+Description of modifications to remove ereg related functions deprecated as of php 5.3. Patch below.
+
+Index: iCalendar_rfc2445.php
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/bennu/iCalendar_rfc2445.php,v
+retrieving revision 1.2.10.1
+diff -u -r1.2.10.1 iCalendar_rfc2445.php
+--- iCalendar_rfc2445.php 12 Oct 2009 05:08:02 -0000 1.2.10.1
++++ iCalendar_rfc2445.php 18 Nov 2009 06:19:31 -0000
+@@ -139,13 +139,13 @@
+ }
+
+ if($scheme === 'mailto') {
+- $regexp = '^[a-zA-Z0-9]+[_a-zA-Z0-9\-]*(\.[_a-z0-9\-]+)*@(([0-9a-zA-Z\-]+\.)+[a-zA-Z][0-9a-zA-Z\-]+|([0-9]{1,3}\.){3}[0-9]{1,3})$';
++ $regexp = '#^[a-zA-Z0-9]+[_a-zA-Z0-9\-]*(\.[_a-z0-9\-]+)*@(([0-9a-zA-Z\-]+\.)+[a-zA-Z][0-9a-zA-Z\-]+|([0-9]{1,3}\.){3}[0-9]{1,3})$#';
+ }
+ else {
+- $regexp = '^//(.+(:.*)?@)?(([0-9a-zA-Z\-]+\.)+[a-zA-Z][0-9a-zA-Z\-]+|([0-9]{1,3}\.){3}[0-9]{1,3})(:[0-9]{1,5})?(/.*)?$';
++ $regexp = '#^//(.+(:.*)?@)?(([0-9a-zA-Z\-]+\.)+[a-zA-Z][0-9a-zA-Z\-]+|([0-9]{1,3}\.){3}[0-9]{1,3})(:[0-9]{1,5})?(/.*)?$#';
+ }
+
+- return ereg($regexp, $remain);
++ return preg_match($regexp, $remain);
+ break;
+
+ case RFC2445_TYPE_BINARY:
4 lib/blocklib.php
View
@@ -173,8 +173,8 @@ function blocks_name_allowed_in_format($name, $pageformat) {
$depth = -1;
if ($formats = block_method_result($name, 'applicable_formats')) {
foreach($formats as $format => $allowed) {
- $thisformat = '^'.str_replace('*', '[^-]*', $format).'.*$';
- if(ereg($thisformat, $pageformat)) {
+ $thisformat = '/^'.str_replace('*', '[^-]*', $format).'.*$/';
+ if(preg_match($thisformat, $pageformat)) {
if(($scount = substr_count($format, '-')) > $depth) {
$depth = $scount;
$accept = $allowed;
2  lib/deprecatedlib.php
View
@@ -1001,7 +1001,7 @@ function detect_munged_arguments($string, $allowdots=1) {
if (substr_count($string, '..') > $allowdots) { // Sometimes we allow dots in references
return true;
}
- if (ereg('[\|\`]', $string)) { // check for other bad characters
+ if (preg_match('/[\|\`]/i', $string)) { // check for other bad characters
return true;
}
if (empty($string) or $string == '/') {
24 lib/excel/Parser.php
View
@@ -466,7 +466,7 @@ function _convert($token)
{
return(pack("C", $this->ptg[$token]));
}
- elseif(preg_match("/[A-Z0-9À-Ü\.]+/",$token))
+ elseif(preg_match("/[A-Z0-9�-�\.]+/",$token))
{
return($this->_convert_function($token,$this->_func_args));
}
@@ -723,21 +723,21 @@ function _match($token)
break;
default:
// if it's a reference
- if(eregi("^[A-I]?[A-Z][0-9]+$",$token) and
- !ereg("[0-9]",$this->_lookahead) and
+ if(preg_match("/^[A-I]?[A-Z][0-9]+$/i",$token) and
+ !preg_match("/[0-9]/",$this->_lookahead) and
($this->_lookahead != ':') and ($this->_lookahead != '.'))
{
return($token);
}
// if it's a range (A1:A2)
- elseif(eregi("^[A-I]?[A-Z][0-9]+:[A-I]?[A-Z][0-9]+$",$token) and
- !ereg("[0-9]",$this->_lookahead))
+ elseif(preg_match("/^[A-I]?[A-Z][0-9]+:[A-I]?[A-Z][0-9]+$/i",$token) and
+ !preg_match("/[0-9]/",$this->_lookahead))
{
return($token);
}
// if it's a range (A1..A2)
- elseif(eregi("^[A-I]?[A-Z][0-9]+\.\.[A-I]?[A-Z][0-9]+$",$token) and
- !ereg("[0-9]",$this->_lookahead))
+ elseif(preg_match("/^[A-I]?[A-Z][0-9]+\.\.[A-I]?[A-Z][0-9]+$/i",$token) and
+ !preg_match("/[0-9]/",$this->_lookahead))
{
return($token);
}
@@ -746,7 +746,7 @@ function _match($token)
return($token);
}
// if it's a function call
- elseif(eregi("^[A-Z0-9À-Ü\.]+$",$token) and ($this->_lookahead == "("))
+ elseif(preg_match("/^[A-Z0-9�-�\.]+$/i",$token) and ($this->_lookahead == "("))
{
return($token);
@@ -857,15 +857,15 @@ function _fact()
return($result);
}
// if it's a reference
- if (eregi("^[A-I]?[A-Z][0-9]+$",$this->_current_token))
+ if (preg_match("/^[A-I]?[A-Z][0-9]+$/i",$this->_current_token))
{
$result = $this->_create_tree($this->_current_token, '', '');
$this->_advance();
return($result);
}
// if it's a range
- elseif (eregi("^[A-I]?[A-Z][0-9]+:[A-I]?[A-Z][0-9]+$",$this->_current_token) or
- eregi("^[A-I]?[A-Z][0-9]+\.\.[A-I]?[A-Z][0-9]+$",$this->_current_token))
+ elseif (preg_match("/^[A-I]?[A-Z][0-9]+:[A-I]?[A-Z][0-9]+$/i",$this->_current_token) or
+ preg_match("/^[A-I]?[A-Z][0-9]+\.\.[A-I]?[A-Z][0-9]+$/i",$this->_current_token))
{
$result = $this->_current_token;
$this->_advance();
@@ -878,7 +878,7 @@ function _fact()
return($result);
}
// if it's a function call
- elseif (eregi("^[A-Z0-9À-Ü\.]+$",$this->_current_token))
+ elseif (preg_match("/^[A-Z0-9�-�\.]+$/i",$this->_current_token))
{
$result = $this->_func();
return($result);
4 lib/excel/Worksheet.php
View
@@ -1264,10 +1264,10 @@ function write_formula($row, $col, $formula, $format = 0)
}
// Strip the '=' or '@' sign at the beginning of the formula string
- if (ereg("^=",$formula)) {
+ if (preg_match("/^=/",$formula)) {
$formula = preg_replace("/(^=)/","",$formula);
}
- elseif(ereg("^@",$formula)) {
+ elseif(preg_match("/^@/",$formula)) {
$formula = preg_replace("/(^@)/","",$formula);
}
else {
104 lib/excel/readme_moodle.txt
View
@@ -0,0 +1,104 @@
+18 Nov 2009
+Description of modifications to remove ereg related functions deprecated as of php 5.3. Patch below.
+
+Index: Parser.php
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/excel/Parser.php,v
+retrieving revision 1.1
+diff -u -r1.1 Parser.php
+--- Parser.php 26 Sep 2003 04:18:02 -0000 1.1
++++ Parser.php 18 Nov 2009 06:27:54 -0000
+@@ -466,7 +466,7 @@
+ {
+ return(pack("C", $this->ptg[$token]));
+ }
+- elseif(preg_match("/[A-Z0-9À-Ü\.]+/",$token))
++ elseif(preg_match("/[A-Z0-9ᅵ-ᅵ\.]+/",$token))
+ {
+ return($this->_convert_function($token,$this->_func_args));
+ }
+@@ -723,21 +723,21 @@
+ break;
+ default:
+ // if it's a reference
+- if(eregi("^[A-I]?[A-Z][0-9]+$",$token) and
+- !ereg("[0-9]",$this->_lookahead) and
++ if(preg_match("/^[A-I]?[A-Z][0-9]+$/i",$token) and
++ !preg_match("/[0-9]/",$this->_lookahead) and
+ ($this->_lookahead != ':') and ($this->_lookahead != '.'))
+ {
+ return($token);
+ }
+ // if it's a range (A1:A2)
+- elseif(eregi("^[A-I]?[A-Z][0-9]+:[A-I]?[A-Z][0-9]+$",$token) and
+- !ereg("[0-9]",$this->_lookahead))
++ elseif(preg_match("/^[A-I]?[A-Z][0-9]+:[A-I]?[A-Z][0-9]+$/i",$token) and
++ !preg_match("/[0-9]/",$this->_lookahead))
+ {
+ return($token);
+ }
+ // if it's a range (A1..A2)
+- elseif(eregi("^[A-I]?[A-Z][0-9]+\.\.[A-I]?[A-Z][0-9]+$",$token) and
+- !ereg("[0-9]",$this->_lookahead))
++ elseif(preg_match("/^[A-I]?[A-Z][0-9]+\.\.[A-I]?[A-Z][0-9]+$/i",$token) and
++ !preg_match("/[0-9]/",$this->_lookahead))
+ {
+ return($token);
+ }
+@@ -746,7 +746,7 @@
+ return($token);
+ }
+ // if it's a function call
+- elseif(eregi("^[A-Z0-9À-Ü\.]+$",$token) and ($this->_lookahead == "("))
++ elseif(preg_match("/^[A-Z0-9ᅵ-ᅵ\.]+$/i",$token) and ($this->_lookahead == "("))
+
+ {
+ return($token);
+@@ -857,15 +857,15 @@
+ return($result);
+ }
+ // if it's a reference
+- if (eregi("^[A-I]?[A-Z][0-9]+$",$this->_current_token))
++ if (preg_match("/^[A-I]?[A-Z][0-9]+$/i",$this->_current_token))
+ {
+ $result = $this->_create_tree($this->_current_token, '', '');
+ $this->_advance();
+ return($result);
+ }
+ // if it's a range
+- elseif (eregi("^[A-I]?[A-Z][0-9]+:[A-I]?[A-Z][0-9]+$",$this->_current_token) or
+- eregi("^[A-I]?[A-Z][0-9]+\.\.[A-I]?[A-Z][0-9]+$",$this->_current_token))
++ elseif (preg_match("/^[A-I]?[A-Z][0-9]+:[A-I]?[A-Z][0-9]+$/i",$this->_current_token) or
++ preg_match("/^[A-I]?[A-Z][0-9]+\.\.[A-I]?[A-Z][0-9]+$/i",$this->_current_token))
+ {
+ $result = $this->_current_token;
+ $this->_advance();
+@@ -878,7 +878,7 @@
+ return($result);
+ }
+ // if it's a function call
+- elseif (eregi("^[A-Z0-9À-Ü\.]+$",$this->_current_token))
++ elseif (preg_match("/^[A-Z0-9ᅵ-ᅵ\.]+$/i",$this->_current_token))
+ {
+ $result = $this->_func();
+ return($result);
+Index: Worksheet.php
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/excel/Worksheet.php,v
+retrieving revision 1.1
+diff -u -r1.1 Worksheet.php
+--- Worksheet.php 26 Sep 2003 04:18:02 -0000 1.1
++++ Worksheet.php 18 Nov 2009 06:27:55 -0000
+@@ -1264,10 +1264,10 @@
+ }
+
+ // Strip the '=' or '@' sign at the beginning of the formula string
+- if (ereg("^=",$formula)) {
++ if (preg_match("/^=/",$formula)) {
+ $formula = preg_replace("/(^=)/","",$formula);
+ }
+- elseif(ereg("^@",$formula)) {
++ elseif(preg_match("/^@/",$formula)) {
+ $formula = preg_replace("/(^@)/","",$formula);
+ }
+ else {
2  lib/filelib.php
View
@@ -496,7 +496,7 @@ function mimeinfo($element, $filename) {
$mimeinfo = get_mimetypes_array();
}
- if (eregi('\.([a-z0-9]+)$', $filename, $match)) {
+ if (preg_match('/\.([a-z0-9]+)$/i', $filename, $match)) {
if (isset($mimeinfo[strtolower($match[1])][$element])) {
return $mimeinfo[strtolower($match[1])][$element];
} else {
2  lib/fpdf/font/makefont/makefont.php
View
@@ -171,7 +171,7 @@ function MakeFontDescriptor($fm,$symbolic)
//StemV
if(isset($fm['StdVW']))
$stemv=$fm['StdVW'];
- elseif(isset($fm['Weight']) and eregi('(bold|black)',$fm['Weight']))
+ elseif(isset($fm['Weight']) and preg_match('/(bold|black)/i',$fm['Weight']))
$stemv=120;
else
$stemv=70;
19 lib/fpdf/readme_moodle.txt
View
@@ -0,0 +1,19 @@
+18 Nov 2009
+Description of modifications to remove ereg related functions deprecated as of php 5.3. Patch below.
+
+Index: font/makefont/makefont.php
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/fpdf/font/makefont/Attic/makefont.php,v
+retrieving revision 1.2
+diff -u -r1.2 makefont.php
+--- font/makefont/makefont.php 16 May 2006 06:45:14 -0000 1.2
++++ font/makefont/makefont.php 18 Nov 2009 06:32:46 -0000
+@@ -171,7 +171,7 @@
+ //StemV
+ if(isset($fm['StdVW']))
+ $stemv=$fm['StdVW'];
+- elseif(isset($fm['Weight']) and eregi('(bold|black)',$fm['Weight']))
++ elseif(isset($fm['Weight']) and preg_match('/(bold|black)/i',$fm['Weight']))
+ $stemv=120;
+ else
+ $stemv=70;
2  lib/geoip/geoip.inc
View
@@ -490,7 +490,7 @@ function getdnsattributes ($l,$ip){
$r->nameservers = array("ws1.maxmind.com");
$p = $r->search($l."." . $ip .".s.maxmind.com","TXT","IN");
$str = is_object($p->answer[0])?$p->answer[0]->string():'';
- ereg("\"(.*)\"",$str,$regs);
+ preg_match("/\"(.*)\"/",$str,$regs);
$str = $regs[1];
return $str;
}
19 lib/geoip/readme_moodle.txt
View
@@ -0,0 +1,19 @@
+18 Nov 2009
+Description of modifications to remove ereg related functions deprecated as of php 5.3. Patch below.
+
+Index: geoip.inc
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/geoip/geoip.inc,v
+retrieving revision 1.1.2.2
+diff -u -r1.1.2.2 geoip.inc
+--- geoip.inc 2 Jan 2008 16:49:05 -0000 1.1.2.2
++++ geoip.inc 18 Nov 2009 06:34:59 -0000
+@@ -490,7 +490,7 @@
+ $r->nameservers = array("ws1.maxmind.com");
+ $p = $r->search($l."." . $ip .".s.maxmind.com","TXT","IN");
+ $str = is_object($p->answer[0])?$p->answer[0]->string():'';
+- ereg("\"(.*)\"",$str,$regs);
++ preg_match("/\"(.*)\"/",$str,$regs);
+ $str = $regs[1];
+ return $str;
+ }
2  lib/htmlpurifier/HTMLPurifier/AttrDef/Lang.php
View
@@ -12,7 +12,7 @@ class HTMLPurifier_AttrDef_Lang extends HTMLPurifier_AttrDef
function validate($string, $config, &$context) {
// moodle change - we use special lang strings unfortunatelly
- return ereg_replace('[^0-9a-zA-Z_-]', '', $string);
+ return preg_replace('/[^0-9a-zA-Z_-]/', '', $string);
// moodle change end
$string = trim($string);
21 lib/htmlpurifier/readme_moodle.txt
View
@@ -8,3 +8,24 @@ Changes:
skodak
$Id$
+
+
+18 Nov 2009
+Description of modifications to remove ereg related functions deprecated as of php 5.3. Patch below.
+
+Index: HTMLPurifier/AttrDef/Lang.php
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/htmlpurifier/HTMLPurifier/AttrDef/Lang.php,v
+retrieving revision 1.3
+diff -u -r1.3 Lang.php
+--- HTMLPurifier/AttrDef/Lang.php 25 Sep 2007 14:34:13 -0000 1.3
++++ HTMLPurifier/AttrDef/Lang.php 18 Nov 2009 06:37:14 -0000
+@@ -12,7 +12,7 @@
+ function validate($string, $config, &$context) {
+
+ // moodle change - we use special lang strings unfortunatelly
+- return ereg_replace('[^0-9a-zA-Z_-]', '', $string);
++ return preg_replace('/[^0-9a-zA-Z_-]/', '', $string);
+ // moodle change end
+
+ $string = trim($string);
36 lib/moodlelib.php
View
@@ -418,16 +418,16 @@ function clean_param($param, $type) {
return (float)$param; // Convert to integer
case PARAM_ALPHA: // Remove everything not a-z
- return eregi_replace('[^a-zA-Z]', '', $param);
+ return preg_replace('/[^a-zA-Z]/i', '', $param);
case PARAM_ALPHANUM: // Remove everything not a-zA-Z0-9
- return eregi_replace('[^A-Za-z0-9]', '', $param);
+ return preg_replace('/[^A-Za-z0-9]/i', '', $param);
case PARAM_ALPHAEXT: // Remove everything not a-zA-Z/_-
- return eregi_replace('[^a-zA-Z/_-]', '', $param);
+ return preg_replace('/[^a-zA-Z/_-]/i', '', $param);
case PARAM_SEQUENCE: // Remove everything not 0-9,
- return eregi_replace('[^0-9,]', '', $param);
+ return preg_replace('/[^0-9,]/i', '', $param);
case PARAM_BOOL: // Convert to 1 or 0
$tempstr = strtolower($param);
@@ -447,14 +447,14 @@ function clean_param($param, $type) {
return clean_param(strip_tags($param, '<lang><span>'), PARAM_CLEAN);
case PARAM_SAFEDIR: // Remove everything not a-zA-Z0-9_-
- return eregi_replace('[^a-zA-Z0-9_-]', '', $param);
+ return preg_replace('/[^a-zA-Z0-9_-]/i', '', $param);
case PARAM_CLEANFILE: // allow only safe characters
return clean_filename($param);
case PARAM_FILE: // Strip all suspicious characters from filename
- $param = ereg_replace('[[:cntrl:]]|[<>"`\|\':\\/]', '', $param);
- $param = ereg_replace('\.\.+', '', $param);
+ $param = preg_replace('/[[:cntrl:]]|[\/<>\"`|\':\\\\]/', '', $param);
+ $param = preg_replace('/\.\./', '', $param);//remove double full stops
if($param == '.') {
$param = '';
}
@@ -464,10 +464,10 @@ function clean_param($param, $type) {
$param = str_replace('\\\'', '\'', $param);
$param = str_replace('\\"', '"', $param);
$param = str_replace('\\', '/', $param);
- $param = ereg_replace('[[:cntrl:]]|[<>"`\|\':]', '', $param);
- $param = ereg_replace('\.\.+', '', $param);
- $param = ereg_replace('//+', '/', $param);
- return ereg_replace('/(\./)+', '/', $param);
+ $param = preg_replace('#[[:cntrl:]]|[<>"`\|\':]#', '', $param);
+ $param = preg_replace('#\.\.+#', '', $param);
+ $param = preg_replace('#//+#', '/', $param);
+ return preg_replace('#/(\./)+#', '/', $param);
case PARAM_HOST: // allow FQDN or IPv4 dotted quad
$param = preg_replace('/[^\.\d\w-]/','', $param ); // only allowed chars
@@ -4310,7 +4310,7 @@ function email_to_user($user, $from, $subject, $messagetext, $messagehtml='', $a
}
if ($attachment && $attachname) {
- if (ereg( "\\.\\." ,$attachment )) { // Security check for ".." in dir path
+ if (preg_match( "/\\.\\./" ,$attachment )) { // Security check for ".." in dir path
$mail->AddAddress($supportuser->email, fullname($supportuser, true) );
$mail->AddStringAttachment('Error in attachment. User attempted to attach a filename with a unsafe name.', 'error.txt', '8bit', 'text/plain');
} else {
@@ -4734,7 +4734,7 @@ function make_mod_upload_directory($courseid) {
function make_user_directory($userid, $test=false) {
global $CFG;
- if (is_bool($userid) || $userid < 0 || !ereg('^[0-9]{1,10}$', $userid) || $userid > 2147483647) {
+ if (is_bool($userid) || $userid < 0 || !preg_match('/^[0-9]{1,10}$/', $userid) || $userid > 2147483647) {
if (!$test) {
notify("Given userid was not a valid integer! (" . gettype($userid) . " $userid)");
}
@@ -6823,7 +6823,7 @@ function count_letters($string) {
$textlib = textlib_get_instance();
$string = strip_tags($string); // Tags are out now
- $string = ereg_replace('[[:space:]]*','',$string); //Whitespace are out now
+ $string = preg_replace('/[[:space:]]*/','',$string); //Whitespace are out now
return $textlib->strlen($string);
}
@@ -7736,11 +7736,11 @@ function unzip_cleanfilename ($p_event, &$p_header) {
//This function is used as callback in unzip_file() function
//to clean illegal characters for given platform and to prevent directory traversal.
//Produces the same result as info-zip unzip.
- $p_header['filename'] = ereg_replace('[[:cntrl:]]', '', $p_header['filename']); //strip control chars first!
- $p_header['filename'] = ereg_replace('\.\.+', '', $p_header['filename']); //directory traversal protection
+ $p_header['filename'] = preg_replace('/[[:cntrl:]]/', '', $p_header['filename']); //strip control chars first!
+ $p_header['filename'] = preg_replace('#\.\.+#', '', $p_header['filename']); //directory traversal protection
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
- $p_header['filename'] = ereg_replace('[:*"?<>|]', '_', $p_header['filename']); //replace illegal chars
- $p_header['filename'] = ereg_replace('^([a-zA-Z])_', '\1:', $p_header['filename']); //repair drive letter
+ $p_header['filename'] = preg_replace('/[:*"?<>|]/', '_', $p_header['filename']); //replace illegal chars
+ $p_header['filename'] = preg_replace('/^([a-zA-Z])_/', '\1:', $p_header['filename']); //repair drive letter
} else {
//Add filtering for other systems here
// BSD: none (tested)
10 lib/pclzip/pclzip.lib.php
View
@@ -3245,7 +3245,9 @@ function privExtractByRule(&$p_file_list, $p_path, $p_remove_path, $p_remove_all
}
// ----- Look for extract by ereg rule
- else if ( (isset($p_options[PCLZIP_OPT_BY_EREG]))
+ /*
+ * MDL-20821 ereg is now deprecated
+ else if ( (isset($p_options[PCLZIP_OPT_BY_EREG]))
&& ($p_options[PCLZIP_OPT_BY_EREG] != "")) {
//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract by ereg '".$p_options[PCLZIP_OPT_BY_EREG]."'");
@@ -3253,7 +3255,7 @@ function privExtractByRule(&$p_file_list, $p_path, $p_remove_path, $p_remove_all
//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expression");
$v_extract = true;
}
- }
+ }*/
// ----- Look for extract by preg rule
else if ( (isset($p_options[PCLZIP_OPT_BY_PREG]))
@@ -4684,6 +4686,8 @@ function privDeleteByRule(&$p_result_list, &$p_options)
}
// ----- Look for extract by ereg rule
+ /*
+ * MDL-20821 ereg is now deprecated
else if ( (isset($p_options[PCLZIP_OPT_BY_EREG]))
&& ($p_options[PCLZIP_OPT_BY_EREG] != "")) {
//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract by ereg '".$p_options[PCLZIP_OPT_BY_EREG]."'");
@@ -4692,7 +4696,7 @@ function privDeleteByRule(&$p_result_list, &$p_options)
//--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expression");
$v_found = true;
}
- }
+ }*/
// ----- Look for extract by preg rule
else if ( (isset($p_options[PCLZIP_OPT_BY_PREG]))
52 lib/pclzip/readme_moodle.txt
View
@@ -5,4 +5,54 @@ Changes:
* removed PclZipUtilTranslateWinPath from line 1958 - see MDL-7828
skodak
-$Id$
+$Id$
+
+
+18 Nov 2009
+Description of modifications to remove ereg related functions deprecated as of php 5.3. Patch below.
+
+Index: pclzip.lib.php
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/pclzip/Attic/pclzip.lib.php,v
+retrieving revision 1.15
+diff -u -r1.15 pclzip.lib.php
+--- pclzip.lib.php 28 Mar 2007 07:17:26 -0000 1.15
++++ pclzip.lib.php 18 Nov 2009 06:40:48 -0000
+@@ -3245,7 +3245,9 @@
+ }
+
+ // ----- Look for extract by ereg rule
+- else if ( (isset($p_options[PCLZIP_OPT_BY_EREG]))
++ /*
++ * MDL-20821 ereg is now deprecated
++ else if ( (isset($p_options[PCLZIP_OPT_BY_EREG]))
+ && ($p_options[PCLZIP_OPT_BY_EREG] != "")) {
+ //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract by ereg '".$p_options[PCLZIP_OPT_BY_EREG]."'");
+
+@@ -3253,7 +3255,7 @@
+ //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expression");
+ $v_extract = true;
+ }
+- }
++ }*/
+
+ // ----- Look for extract by preg rule
+ else if ( (isset($p_options[PCLZIP_OPT_BY_PREG]))
+@@ -4684,6 +4686,8 @@
+ }
+
+ // ----- Look for extract by ereg rule
++ /*
++ * MDL-20821 ereg is now deprecated
+ else if ( (isset($p_options[PCLZIP_OPT_BY_EREG]))
+ && ($p_options[PCLZIP_OPT_BY_EREG] != "")) {
+ //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Extract by ereg '".$p_options[PCLZIP_OPT_BY_EREG]."'");
+@@ -4692,7 +4696,7 @@
+ //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Filename match the regular expression");
+ $v_found = true;
+ }
+- }
++ }*/
+
+ // ----- Look for extract by preg rule
+ else if ( (isset($p_options[PCLZIP_OPT_BY_PREG]))
100 lib/pear/README_MOODLE.txt
View
@@ -12,3 +12,103 @@ to a new release within Moodle.
stronk7
$Id$
+
+
+18 Nov 2009
+Description of modifications to remove ereg related functions deprecated as of php 5.3. Patch below.
+
+Index: Spreadsheet/Excel/Writer/Parser.php
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/pear/Spreadsheet/Excel/Writer/Parser.php,v
+retrieving revision 1.2
+diff -u -r1.2 Parser.php
+--- Spreadsheet/Excel/Writer/Parser.php 4 Jan 2006 08:23:42 -0000 1.2
++++ Spreadsheet/Excel/Writer/Parser.php 18 Nov 2009 06:42:45 -0000
+@@ -1206,7 +1206,7 @@
+ default:
+ // if it's a reference
+ if (preg_match('/^\$?[A-Ia-i]?[A-Za-z]\$?[0-9]+$/',$token) and
+- !ereg("[0-9]",$this->_lookahead) and
++ !preg_match("/[0-9]/",$this->_lookahead) and
+ ($this->_lookahead != ':') and ($this->_lookahead != '.') and
+ ($this->_lookahead != '!'))
+ {
+@@ -1214,39 +1214,39 @@
+ }
+ // If it's an external reference (Sheet1!A1 or Sheet1:Sheet2!A1)
+ elseif (preg_match("/^\w+(\:\w+)?\![A-Ia-i]?[A-Za-z][0-9]+$/u",$token) and
+- !ereg("[0-9]",$this->_lookahead) and
++ !preg_match("/[0-9]/",$this->_lookahead) and
+ ($this->_lookahead != ':') and ($this->_lookahead != '.'))
+ {
+ return $token;
+ }
+ // If it's an external reference ('Sheet1'!A1 or 'Sheet1:Sheet2'!A1)
+ elseif (preg_match("/^'[\w -]+(\:[\w -]+)?'\![A-Ia-i]?[A-Za-z][0-9]+$/u",$token) and
+- !ereg("[0-9]",$this->_lookahead) and
++ !preg_match("/[0-9]/",$this->_lookahead) and
+ ($this->_lookahead != ':') and ($this->_lookahead != '.'))
+ {
+ return $token;
+ }
+ // if it's a range (A1:A2)
+ elseif (preg_match("/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+:(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/",$token) and
+- !ereg("[0-9]",$this->_lookahead))
++ !preg_match("/[0-9]/",$this->_lookahead))
+ {
+ return $token;
+ }
+ // if it's a range (A1..A2)
+ elseif (preg_match("/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+\.\.(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/",$token) and
+- !ereg("[0-9]",$this->_lookahead))
++ !preg_match("/[0-9]/",$this->_lookahead))
+ {
+ return $token;
+ }
+ // If it's an external range like Sheet1!A1 or Sheet1:Sheet2!A1:B2
+ elseif (preg_match("/^\w+(\:\w+)?\!([A-Ia-i]?[A-Za-z])?[0-9]+:([A-Ia-i]?[A-Za-z])?[0-9]+$/u",$token) and
+- !ereg("[0-9]",$this->_lookahead))
++ !preg_match("/[0-9]/",$this->_lookahead))
+ {
+ return $token;
+ }
+ // If it's an external range like 'Sheet1'!A1 or 'Sheet1:Sheet2'!A1:B2
+ elseif (preg_match("/^'[\w -]+(\:[\w -]+)?'\!([A-Ia-i]?[A-Za-z])?[0-9]+:([A-Ia-i]?[A-Za-z])?[0-9]+$/u",$token) and
+- !ereg("[0-9]",$this->_lookahead))
++ !preg_match("/[0-9]/",$this->_lookahead))
+ {
+ return $token;
+ }
+@@ -1258,12 +1258,12 @@
+ return $token;
+ }
+ // If it's a string (of maximum 255 characters)
+- elseif (ereg("^\"[^\"]{0,255}\"$",$token))
++ elseif (preg_match("/^\"[^\"]{0,255}\"$/",$token))
+ {
+ return $token;
+ }
+ // if it's a function call
+- elseif (eregi("^[A-Z0-9\xc0-\xdc\.]+$",$token) and ($this->_lookahead == "("))
++ elseif (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/i",$token) and ($this->_lookahead == "("))
+ {
+ return $token;
+ }
+@@ -1363,7 +1363,7 @@
+ function _expression()
+ {
+ // If it's a string return a string node
+- if (ereg("^\"[^\"]{0,255}\"$", $this->_current_token)) {
++ if (preg_match("/^\"[^\"]{0,255}\"$/", $this->_current_token)) {
+ $result = $this->_createTree($this->_current_token, '', '');
+ $this->_advance();
+ return $result;
+@@ -1521,7 +1521,7 @@
+ return $result;
+ }
+ // if it's a function call
+- elseif (eregi("^[A-Z0-9\xc0-\xdc\.]+$",$this->_current_token))
++ elseif (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/i",$this->_current_token))
+ {
+ $result = $this->_func();
+ return $result;
22 lib/pear/Spreadsheet/Excel/Writer/Parser.php
View
@@ -1206,7 +1206,7 @@ function _match($token)
default:
// if it's a reference
if (preg_match('/^\$?[A-Ia-i]?[A-Za-z]\$?[0-9]+$/',$token) and
- !ereg("[0-9]",$this->_lookahead) and
+ !preg_match("/[0-9]/",$this->_lookahead) and
($this->_lookahead != ':') and ($this->_lookahead != '.') and
($this->_lookahead != '!'))
{
@@ -1214,39 +1214,39 @@ function _match($token)
}
// If it's an external reference (Sheet1!A1 or Sheet1:Sheet2!A1)
elseif (preg_match("/^\w+(\:\w+)?\![A-Ia-i]?[A-Za-z][0-9]+$/u",$token) and
- !ereg("[0-9]",$this->_lookahead) and
+ !preg_match("/[0-9]/",$this->_lookahead) and
($this->_lookahead != ':') and ($this->_lookahead != '.'))
{
return $token;
}
// If it's an external reference ('Sheet1'!A1 or 'Sheet1:Sheet2'!A1)
elseif (preg_match("/^'[\w -]+(\:[\w -]+)?'\![A-Ia-i]?[A-Za-z][0-9]+$/u",$token) and
- !ereg("[0-9]",$this->_lookahead) and
+ !preg_match("/[0-9]/",$this->_lookahead) and
($this->_lookahead != ':') and ($this->_lookahead != '.'))
{
return $token;
}
// if it's a range (A1:A2)
elseif (preg_match("/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+:(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/",$token) and
- !ereg("[0-9]",$this->_lookahead))
+ !preg_match("/[0-9]/",$this->_lookahead))
{
return $token;
}
// if it's a range (A1..A2)
elseif (preg_match("/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+\.\.(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/",$token) and
- !ereg("[0-9]",$this->_lookahead))
+ !preg_match("/[0-9]/",$this->_lookahead))
{
return $token;
}
// If it's an external range like Sheet1!A1 or Sheet1:Sheet2!A1:B2
elseif (preg_match("/^\w+(\:\w+)?\!([A-Ia-i]?[A-Za-z])?[0-9]+:([A-Ia-i]?[A-Za-z])?[0-9]+$/u",$token) and
- !ereg("[0-9]",$this->_lookahead))
+ !preg_match("/[0-9]/",$this->_lookahead))
{
return $token;
}
// If it's an external range like 'Sheet1'!A1 or 'Sheet1:Sheet2'!A1:B2
elseif (preg_match("/^'[\w -]+(\:[\w -]+)?'\!([A-Ia-i]?[A-Za-z])?[0-9]+:([A-Ia-i]?[A-Za-z])?[0-9]+$/u",$token) and
- !ereg("[0-9]",$this->_lookahead))
+ !preg_match("/[0-9]/",$this->_lookahead))
{
return $token;
}
@@ -1258,12 +1258,12 @@ function _match($token)
return $token;
}
// If it's a string (of maximum 255 characters)
- elseif (ereg("^\"[^\"]{0,255}\"$",$token))
+ elseif (preg_match("/^\"[^\"]{0,255}\"$/",$token))
{
return $token;
}
// if it's a function call
- elseif (eregi("^[A-Z0-9\xc0-\xdc\.]+$",$token) and ($this->_lookahead == "("))
+ elseif (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/i",$token) and ($this->_lookahead == "("))
{
return $token;
}
@@ -1363,7 +1363,7 @@ function _condition()
function _expression()
{
// If it's a string return a string node
- if (ereg("^\"[^\"]{0,255}\"$", $this->_current_token)) {
+ if (preg_match("/^\"[^\"]{0,255}\"$/", $this->_current_token)) {
$result = $this->_createTree($this->_current_token, '', '');
$this->_advance();
return $result;
@@ -1521,7 +1521,7 @@ function _fact()
return $result;
}
// if it's a function call
- elseif (eregi("^[A-Z0-9\xc0-\xdc\.]+$",$this->_current_token))
+ elseif (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/i",$this->_current_token))
{
$result = $this->_func();
return $result;
11 lib/simpletest/testmoodlelib.php
View
@@ -199,6 +199,17 @@ function test_clean_param()
$this->assertEqual(clean_param($CFG->wwwroot, PARAM_LOCALURL), $CFG->wwwroot);
$this->assertEqual(clean_param('/just/a/path', PARAM_LOCALURL), '/just/a/path');
$this->assertEqual(clean_param('funny:thing', PARAM_LOCALURL), '');
+
+ //test filename param
+ $this->assertEqual(clean_param('correctfile.txt', PARAM_FILE), 'correctfile.txt');
+ $this->assertEqual(clean_param('b\'a<d`\\/fi:l>e.t"x|t', PARAM_FILE), 'badfile.txt');
+ $this->assertEqual(clean_param('../parentdirfile.txt', PARAM_FILE), 'parentdirfile.txt');
+ //The following behaviours have been maintained although they seem a little odd
+ $this->assertEqual(clean_param('funny:thing', PARAM_FILE), 'funnything');
+ $this->assertEqual(clean_param('./currentdirfile.txt', PARAM_FILE), '.currentdirfile.txt');
+ $this->assertEqual(clean_param('c:\temp\windowsfile.txt', PARAM_FILE), 'ctempwindowsfile.txt');
+ $this->assertEqual(clean_param('/home/user/linuxfile.txt', PARAM_FILE), 'homeuserlinuxfile.txt');
+ $this->assertEqual(clean_param('~/myfile.txt', PARAM_FILE), '~myfile.txt');
}
function test_make_user_directory() {
273 lib/soap/README_MOODLE.txt
View
@@ -0,0 +1,273 @@
+18 Nov 2009
+Description of modifications to remove ereg related functions deprecated as of php 5.3. Patch below.
+
+Index: nusoap.php
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/soap/nusoap.php,v
+retrieving revision 1.2
+diff -u -r1.2 nusoap.php
+--- nusoap.php 3 Jan 2007 14:44:42 -0000 1.2
++++ nusoap.php 18 Nov 2009 06:48:29 -0000
+@@ -503,7 +503,7 @@
+ case (is_array($val) || $type):
+ // detect if struct or array
+ $valueType = $this->isArraySimpleOrStruct($val);
+- if($valueType=='arraySimple' || ereg('^ArrayOf',$type)){
++ if($valueType=='arraySimple' || preg_match('/^ArrayOf/',$type)){
+ $i = 0;
+ if(is_array($val) && count($val)> 0){
+ foreach($val as $v){
+@@ -698,7 +698,7 @@
+ */
+ function expandQname($qname){
+ // get element prefix
+- if(strpos($qname,':') && !ereg('^http://',$qname)){
++ if(strpos($qname,':') && !preg_match('#^http://#',$qname)){
+ // get unqualified name
+ $name = substr(strstr($qname,':'),1);
+ // get ns prefix
+@@ -827,6 +827,7 @@
+ $datestr = date('Y-m-d\TH:i:sO',$timestamp);
+ if($utc){
+ $eregStr =
++ '/'.
+ '([0-9]{4})-'. // centuries & years CCYY-
+ '([0-9]{2})-'. // months MM-
+ '([0-9]{2})'. // days DD
+@@ -834,9 +835,10 @@
+ '([0-9]{2}):'. // hours hh:
+ '([0-9]{2}):'. // minutes mm:
+ '([0-9]{2})(\.[0-9]*)?'. // seconds ss.ss...
+- '(Z|[+\-][0-9]{2}:?[0-9]{2})?'; // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's
++ '(Z|[+\-][0-9]{2}:?[0-9]{2})?'. // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's
++ '/';
+
+- if(ereg($eregStr,$datestr,$regs)){
++ if(preg_match($eregStr,$datestr,$regs)){
+ return sprintf('%04d-%02d-%02dT%02d:%02d:%02dZ',$regs[1],$regs[2],$regs[3],$regs[4],$regs[5],$regs[6]);
+ }
+ return false;
+@@ -853,6 +855,7 @@
+ */
+ function iso8601_to_timestamp($datestr){
+ $eregStr =
++ '/'.
+ '([0-9]{4})-'. // centuries & years CCYY-
+ '([0-9]{2})-'. // months MM-
+ '([0-9]{2})'. // days DD
+@@ -860,8 +863,9 @@
+ '([0-9]{2}):'. // hours hh:
+ '([0-9]{2}):'. // minutes mm:
+ '([0-9]{2})(\.[0-9]+)?'. // seconds ss.ss...
+- '(Z|[+\-][0-9]{2}:?[0-9]{2})?'; // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's
+- if(ereg($eregStr,$datestr,$regs)){
++ '(Z|[+\-][0-9]{2}:?[0-9]{2})?'. // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's
++ '/';
++ if(preg_match($eregStr,$datestr,$regs)){
+ // not utc
+ if($regs[8] != 'Z'){
+ $op = substr($regs[8],0,1);
+@@ -1171,7 +1175,7 @@
+ if(count($attrs) > 0){
+ foreach($attrs as $k => $v){
+ // if ns declarations, add to class level array of valid namespaces
+- if(ereg("^xmlns",$k)){
++ if(preg_match("/^xmlns/",$k)){
+ //$this->xdebug("$k: $v");
+ //$this->xdebug('ns_prefix: '.$this->getPrefix($k));
+ if($ns_prefix = substr(strrchr($k,':'),1)){
+@@ -1281,7 +1285,7 @@
+ // minOccurs="0" maxOccurs="unbounded" />
+ // </sequence>
+ // </complexType>
+- if(isset($attrs['base']) && ereg(':Array$',$attrs['base'])){
++ if(isset($attrs['base']) && preg_match('/:Array$/',$attrs['base'])){
+ $this->xdebug('complexType is unusual array');
+ $this->complexTypes[$this->currentComplexType]['phpType'] = 'array';
+ } else {
+@@ -1300,7 +1304,7 @@
+ // minOccurs="0" maxOccurs="unbounded" />
+ // </sequence>
+ // </complexType>
+- if(isset($attrs['base']) && ereg(':Array$',$attrs['base'])){
++ if(isset($attrs['base']) && preg_match('/:Array$/',$attrs['base'])){
+ $this->xdebug('complexType is unusual array');
+ $this->complexTypes[$this->currentComplexType]['phpType'] = 'array';
+ } else {
+@@ -1698,7 +1702,7 @@
+ } elseif(isset($this->attributes[$type])){
+ $this->xdebug("in getTypeDef, found attribute $type");
+ return $this->attributes[$type];
+- } elseif (ereg('_ContainedType$', $type)) {
++ } elseif (preg_match('/_ContainedType$/', $type)) {
+ $this->xdebug("in getTypeDef, have an untyped element $type");
+ $typeDef['typeClass'] = 'simpleType';
+ $typeDef['phpType'] = 'scalar';
+@@ -2041,7 +2045,7 @@
+ function soap_transport_http($url){
+ parent::nusoap_base();
+ $this->setURL($url);
+- ereg('\$Revisio' . 'n: ([^ ]+)', $this->revision, $rev);
++ preg_match('/\$Revisio' . 'n: ([^ ]+)/', $this->revision, $rev);
+ $this->outgoing_headers['User-Agent'] = $this->title.'/'.$this->version.' ('.$rev[1].')';
+ $this->debug('set User-Agent: ' . $this->outgoing_headers['User-Agent']);
+ }
+@@ -2580,7 +2584,7 @@
+ }
+ }
+ // remove 100 header
+- if(isset($lb) && ereg('^HTTP/1.1 100',$data)){
++ if(isset($lb) && preg_match('/^HTTP/1.1 100/',$data)){
+ unset($lb);
+ $data = '';
+ }//
+@@ -2733,7 +2737,7 @@
+ curl_close($this->ch);
+
+ // remove 100 header(s)
+- while (ereg('^HTTP/1.1 100',$data)) {
++ while (preg_match('#^HTTP/1.1 100#',$data)) {
+ if ($pos = strpos($data,"\r\n\r\n")) {
+ $data = ltrim(substr($data,$pos));
+ } elseif($pos = strpos($data,"\n\n") ) {
+@@ -3267,7 +3271,7 @@
+ }
+ $this->debug("In service, query string=$qs");
+
+- if (ereg('wsdl', $qs) ){
++ if (preg_match('/wsdl/', $qs) ){
+ $this->debug("In service, this is a request for WSDL");
+ if($this->externalWSDLURL){
+ if (strpos($this->externalWSDLURL,"://")!==false) { // assume URL
+@@ -3338,7 +3342,7 @@
+ // get the character encoding of the incoming request
+ if(isset($this->headers['content-type']) && strpos($this->headers['content-type'],'=')){
+ $enc = str_replace('"','',substr(strstr($this->headers["content-type"],'='),1));
+- if(eregi('^(ISO-8859-1|US-ASCII|UTF-8)$',$enc)){
++ if(preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)){
+ $this->xml_encoding = strtoupper($enc);
+ } else {
+ $this->xml_encoding = 'US-ASCII';
+@@ -3367,7 +3371,7 @@
+ $enc = substr(strstr($v, '='), 1);
+ $enc = str_replace('"', '', $enc);
+ $enc = str_replace('\\', '', $enc);
+- if (eregi('^(ISO-8859-1|US-ASCII|UTF-8)$', $enc)) {
++ if (preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i', $enc)) {
+ $this->xml_encoding = strtoupper($enc);
+ } else {
+ $this->xml_encoding = 'US-ASCII';
+@@ -3401,7 +3405,7 @@
+ $enc = substr(strstr($v, '='), 1);
+ $enc = str_replace('"', '', $enc);
+ $enc = str_replace('\\', '', $enc);
+- if (eregi('^(ISO-8859-1|US-ASCII|UTF-8)$', $enc)) {
++ if (preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i', $enc)) {
+ $this->xml_encoding = strtoupper($enc);
+ } else {
+ $this->xml_encoding = 'US-ASCII';
+@@ -3730,7 +3734,7 @@
+ $payload .= $this->getDebugAsXMLComment();
+ }
+ $this->outgoing_headers[] = "Server: $this->title Server v$this->version";
+- ereg('\$Revisio' . 'n: ([^ ]+)', $this->revision, $rev);
++ preg_match('/\$Revisio' . 'n: ([^ ]+)/', $this->revision, $rev);
+ $this->outgoing_headers[] = "X-SOAP-Server: $this->title/$this->version (".$rev[1].")";
+ // Let the Web server decide about this
+ //$this->outgoing_headers[] = "Connection: Close\r\n";
+@@ -3818,7 +3822,7 @@
+ if (strpos($headers['content-type'], '=')) {
+ $enc = str_replace('"', '', substr(strstr($headers["content-type"], '='), 1));
+ $this->debug('Got response encoding: ' . $enc);
+- if(eregi('^(ISO-8859-1|US-ASCII|UTF-8)$',$enc)){
++ if(preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)){
+ $this->xml_encoding = strtoupper($enc);
+ } else {
+ $this->xml_encoding = 'US-ASCII';
+@@ -4336,7 +4340,7 @@
+ $this->currentSchema->schemaStartElement($parser, $name, $attrs);
+ $this->appendDebug($this->currentSchema->getDebug());
+ $this->currentSchema->clearDebug();
+- } elseif (ereg('schema$', $name)) {
++ } elseif (preg_match('/schema$/', $name)) {
+ $this->debug('Parsing WSDL schema');
+ // $this->debug("startElement for $name ($attrs[name]). status = $this->status (".$this->getLocalPart($name).")");
+ $this->status = 'schema';
+@@ -4355,7 +4359,7 @@
+ if (count($attrs) > 0) {
+ // register namespace declarations
+ foreach($attrs as $k => $v) {
+- if (ereg("^xmlns", $k)) {
++ if (preg_match("/^xmlns/", $k)) {
+ if ($ns_prefix = substr(strrchr($k, ':'), 1)) {
+ $this->namespaces[$ns_prefix] = $v;
+ } else {
+@@ -4380,7 +4384,7 @@
+ $attrs = array();
+ }
+ // get element prefix, namespace and name
+- if (ereg(':', $name)) {
++ if (preg_match('/:/', $name)) {
+ // get ns prefix
+ $prefix = substr($name, 0, strpos($name, ':'));
+ // get ns
+@@ -4545,7 +4549,7 @@
+ */
+ function end_element($parser, $name){
+ // unset schema status
+- if (/*ereg('types$', $name) ||*/ ereg('schema$', $name)) {
++ if (/*preg_match('/types$/', $name) ||*/ preg_match('/schema$/', $name)) {
+ $this->status = "";
+ $this->appendDebug($this->currentSchema->getDebug());
+ $this->currentSchema->clearDebug();
+@@ -5995,7 +5999,7 @@
+ $key_localpart = $this->getLocalPart($key);
+ // if ns declarations, add to class level array of valid namespaces
+ if($key_prefix == 'xmlns'){
+- if(ereg('^http://www.w3.org/[0-9]{4}/XMLSchema$',$value)){
++ if(preg_match('#^http://www.w3.org/[0-9]{4}/XMLSchema$#',$value)){
+ $this->XMLSchemaVersion = $value;
+ $this->namespaces['xsd'] = $this->XMLSchemaVersion;
+ $this->namespaces['xsi'] = $this->XMLSchemaVersion.'-instance';
+@@ -6031,8 +6035,8 @@
+ [5] length ::= nextDimension* Digit+
+ [6] nextDimension ::= Digit+ ','
+ */
+- $expr = '([A-Za-z0-9_]+):([A-Za-z]+[A-Za-z0-9_]+)\[([0-9]+),?([0-9]*)\]';
+- if(ereg($expr,$value,$regs)){
++ $expr = '/([A-Za-z0-9_]+):([A-Za-z]+[A-Za-z0-9_]+)\[([0-9]+),?([0-9]*)\]';
++ if(preg_match($expr,$value,$regs)){
+ $this->message[$pos]['typePrefix'] = $regs[1];
+ $this->message[$pos]['arrayTypePrefix'] = $regs[1];
+ if (isset($this->namespaces[$regs[1]])) {
+@@ -6758,7 +6762,7 @@
+ // detect transport
+ switch(true){
+ // http(s)
+- case ereg('^http',$this->endpoint):
++ case preg_match('/^http/',$this->endpoint):
+ $this->debug('transporting via HTTP');
+ if($this->persistentConnection == true && is_object($this->persistentConnection)){
+ $http =& $this->persistentConnection;
+@@ -6780,10 +6784,10 @@
+ $http->setEncoding($this->http_encoding);
+ }
+ $this->debug('sending message, length='.strlen($msg));
+- if(ereg('^http:',$this->endpoint)){
++ if(preg_match('/^http:/',$this->endpoint)){
+ //if(strpos($this->endpoint,'http:')){
+ $this->responseData = $http->send($msg,$timeout,$response_timeout,$this->cookies);
+- } elseif(ereg('^https',$this->endpoint)){
++ } elseif(preg_match('/^https/',$this->endpoint)){
+ //} elseif(strpos($this->endpoint,'https:')){
+ //if(phpversion() == '4.3.0-dev'){
+ //$response = $http->send($msg,$timeout,$response_timeout);
+@@ -6841,7 +6845,7 @@
+ if (strpos($headers['content-type'], '=')) {
+ $enc = str_replace('"', '', substr(strstr($headers["content-type"], '='), 1));
+ $this->debug('Got response encoding: ' . $enc);
+- if(eregi('^(ISO-8859-1|US-ASCII|UTF-8)$',$enc)){
++ if(preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)){
+ $this->xml_encoding = strtoupper($enc);
+ } else {
+ $this->xml_encoding = 'US-ASCII';
64 lib/soap/nusoap.php
View
@@ -503,7 +503,7 @@ function serialize_val($val,$name=false,$type=false,$name_ns=false,$type_ns=fals
case (is_array($val) || $type):
// detect if struct or array
$valueType = $this->isArraySimpleOrStruct($val);
- if($valueType=='arraySimple' || ereg('^ArrayOf',$type)){
+ if($valueType=='arraySimple' || preg_match('/^ArrayOf/',$type)){
$i = 0;
if(is_array($val) && count($val)> 0){
foreach($val as $v){
@@ -698,7 +698,7 @@ function contractQname($qname){
*/
function expandQname($qname){
// get element prefix
- if(strpos($qname,':') && !ereg('^http://',$qname)){
+ if(strpos($qname,':') && !preg_match('#^http://#',$qname)){
// get unqualified name
$name = substr(strstr($qname,':'),1);
// get ns prefix
@@ -827,6 +827,7 @@ function timestamp_to_iso8601($timestamp,$utc=true){
$datestr = date('Y-m-d\TH:i:sO',$timestamp);
if($utc){
$eregStr =
+ '/'.
'([0-9]{4})-'. // centuries & years CCYY-
'([0-9]{2})-'. // months MM-
'([0-9]{2})'. // days DD
@@ -834,9 +835,10 @@ function timestamp_to_iso8601($timestamp,$utc=true){
'([0-9]{2}):'. // hours hh:
'([0-9]{2}):'. // minutes mm:
'([0-9]{2})(\.[0-9]*)?'. // seconds ss.ss...
- '(Z|[+\-][0-9]{2}:?[0-9]{2})?'; // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's
+ '(Z|[+\-][0-9]{2}:?[0-9]{2})?'. // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's
+ '/';
- if(ereg($eregStr,$datestr,$regs)){
+ if(preg_match($eregStr,$datestr,$regs)){
return sprintf('%04d-%02d-%02dT%02d:%02d:%02dZ',$regs[1],$regs[2],$regs[3],$regs[4],$regs[5],$regs[6]);
}
return false;
@@ -853,6 +855,7 @@ function timestamp_to_iso8601($timestamp,$utc=true){
*/
function iso8601_to_timestamp($datestr){
$eregStr =
+ '/'.
'([0-9]{4})-'. // centuries & years CCYY-
'([0-9]{2})-'. // months MM-
'([0-9]{2})'. // days DD
@@ -860,8 +863,9 @@ function iso8601_to_timestamp($datestr){
'([0-9]{2}):'. // hours hh:
'([0-9]{2}):'. // minutes mm:
'([0-9]{2})(\.[0-9]+)?'. // seconds ss.ss...
- '(Z|[+\-][0-9]{2}:?[0-9]{2})?'; // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's
- if(ereg($eregStr,$datestr,$regs)){
+ '(Z|[+\-][0-9]{2}:?[0-9]{2})?'. // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's
+ '/';
+ if(preg_match($eregStr,$datestr,$regs)){
// not utc
if($regs[8] != 'Z'){
$op = substr($regs[8],0,1);
@@ -1171,7 +1175,7 @@ function schemaStartElement($parser, $name, $attrs) {
if(count($attrs) > 0){
foreach($attrs as $k => $v){
// if ns declarations, add to class level array of valid namespaces
- if(ereg("^xmlns",$k)){
+ if(preg_match("/^xmlns/",$k)){
//$this->xdebug("$k: $v");
//$this->xdebug('ns_prefix: '.$this->getPrefix($k));
if($ns_prefix = substr(strrchr($k,':'),1)){
@@ -1281,7 +1285,7 @@ function schemaStartElement($parser, $name, $attrs) {
// minOccurs="0" maxOccurs="unbounded" />
// </sequence>
// </complexType>
- if(isset($attrs['base']) && ereg(':Array$',$attrs['base'])){
+ if(isset($attrs['base']) && preg_match('/:Array$/',$attrs['base'])){
$this->xdebug('complexType is unusual array');
$this->complexTypes[$this->currentComplexType]['phpType'] = 'array';
} else {
@@ -1300,7 +1304,7 @@ function schemaStartElement($parser, $name, $attrs) {
// minOccurs="0" maxOccurs="unbounded" />
// </sequence>
// </complexType>
- if(isset($attrs['base']) && ereg(':Array$',$attrs['base'])){
+ if(isset($attrs['base']) && preg_match('/:Array$/',$attrs['base'])){
$this->xdebug('complexType is unusual array');
$this->complexTypes[$this->currentComplexType]['phpType'] = 'array';
} else {
@@ -1698,7 +1702,7 @@ function getTypeDef($type){
} elseif(isset($this->attributes[$type])){
$this->xdebug("in getTypeDef, found attribute $type");
return $this->attributes[$type];
- } elseif (ereg('_ContainedType$', $type)) {
+ } elseif (preg_match('/_ContainedType$/', $type)) {
$this->xdebug("in getTypeDef, have an untyped element $type");
$typeDef['typeClass'] = 'simpleType';
$typeDef['phpType'] = 'scalar';
@@ -2041,7 +2045,7 @@ class soap_transport_http extends nusoap_base {
function soap_transport_http($url){
parent::nusoap_base();
$this->setURL($url);
- ereg('\$Revisio' . 'n: ([^ ]+)', $this->revision, $rev);
+ preg_match('/\$Revisio' . 'n: ([^ ]+)/', $this->revision, $rev);
$this->outgoing_headers['User-Agent'] = $this->title.'/'.$this->version.' ('.$rev[1].')';
$this->debug('set User-Agent: ' . $this->outgoing_headers['User-Agent']);
}
@@ -2580,7 +2584,7 @@ function getResponse(){
}
}
// remove 100 header
- if(isset($lb) && ereg('^HTTP/1.1 100',$data)){
+ if(isset($lb) && preg_match('/^HTTP/1.1 100/',$data)){
unset($lb);
$data = '';
}//
@@ -2733,7 +2737,7 @@ function getResponse(){
curl_close($this->ch);
// remove 100 header(s)
- while (ereg('^HTTP/1.1 100',$data)) {
+ while (preg_match('#^HTTP/1.1 100#',$data)) {
if ($pos = strpos($data,"\r\n\r\n")) {
$data = ltrim(substr($data,$pos));
} elseif($pos = strpos($data,"\n\n") ) {
@@ -3267,7 +3271,7 @@ function service($data){
}
$this->debug("In service, query string=$qs");
- if (ereg('wsdl', $qs) ){
+ if (preg_match('/wsdl/', $qs) ){
$this->debug("In service, this is a request for WSDL");
if($this->externalWSDLURL){
if (strpos($this->externalWSDLURL,"://")!==false) { // assume URL
@@ -3338,7 +3342,7 @@ function parse_http_headers() {
// get the character encoding of the incoming request
if(isset($this->headers['content-type']) && strpos($this->headers['content-type'],'=')){
$enc = str_replace('"','',substr(strstr($this->headers["content-type"],'='),1));
- if(eregi('^(ISO-8859-1|US-ASCII|UTF-8)$',$enc)){
+ if(preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)){
$this->xml_encoding = strtoupper($enc);
} else {
$this->xml_encoding = 'US-ASCII';
@@ -3367,7 +3371,7 @@ function parse_http_headers() {
$enc = substr(strstr($v, '='), 1);
$enc = str_replace('"', '', $enc);
$enc = str_replace('\\', '', $enc);
- if (eregi('^(ISO-8859-1|US-ASCII|UTF-8)$', $enc)) {
+ if (preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i', $enc)) {
$this->xml_encoding = strtoupper($enc);
} else {
$this->xml_encoding = 'US-ASCII';
@@ -3401,7 +3405,7 @@ function parse_http_headers() {
$enc = substr(strstr($v, '='), 1);
$enc = str_replace('"', '', $enc);
$enc = str_replace('\\', '', $enc);
- if (eregi('^(ISO-8859-1|US-ASCII|UTF-8)$', $enc)) {
+ if (preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i', $enc)) {
$this->xml_encoding = strtoupper($enc);
} else {
$this->xml_encoding = 'US-ASCII';
@@ -3730,7 +3734,7 @@ function send_response() {
$payload .= $this->getDebugAsXMLComment();
}
$this->outgoing_headers[] = "Server: $this->title Server v$this->version";
- ereg('\$Revisio' . 'n: ([^ ]+)', $this->revision, $rev);
+ preg_match('/\$Revisio' . 'n: ([^ ]+)/', $this->revision, $rev);
$this->outgoing_headers[] = "X-SOAP-Server: $this->title/$this->version (".$rev[1].")";
// Let the Web server decide about this
//$this->outgoing_headers[] = "Connection: Close\r\n";
@@ -3818,7 +3822,7 @@ function parseRequest($headers, $data) {
if (strpos($headers['content-type'], '=')) {
$enc = str_replace('"', '', substr(strstr($headers["content-type"], '='), 1));
$this->debug('Got response encoding: ' . $enc);
- if(eregi('^(ISO-8859-1|US-ASCII|UTF-8)$',$enc)){
+ if(preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)){
$this->xml_encoding = strtoupper($enc);
} else {
$this->xml_encoding = 'US-ASCII';
@@ -4336,7 +4340,7 @@ function start_element($parser, $name, $attrs)
$this->currentSchema->schemaStartElement($parser, $name, $attrs);
$this->appendDebug($this->currentSchema->getDebug());
$this->currentSchema->clearDebug();
- } elseif (ereg('schema$', $name)) {
+ } elseif (preg_match('/schema$/', $name)) {
$this->debug('Parsing WSDL schema');
// $this->debug("startElement for $name ($attrs[name]). status = $this->status (".$this->getLocalPart($name).")");
$this->status = 'schema';
@@ -4355,7 +4359,7 @@ function start_element($parser, $name, $attrs)
if (count($attrs) > 0) {
// register namespace declarations
foreach($attrs as $k => $v) {
- if (ereg("^xmlns", $k)) {
+ if (preg_match("/^xmlns/", $k)) {
if ($ns_prefix = substr(strrchr($k, ':'), 1)) {
$this->namespaces[$ns_prefix] = $v;
} else {
@@ -4380,7 +4384,7 @@ function start_element($parser, $name, $attrs)
$attrs = array();
}
// get element prefix, namespace and name
- if (ereg(':', $name)) {
+ if (preg_match('/:/', $name)) {
// get ns prefix
$prefix = substr($name, 0, strpos($name, ':'));
// get ns
@@ -4545,7 +4549,7 @@ function start_element($parser, $name, $attrs)
*/
function end_element($parser, $name){
// unset schema status
- if (/*ereg('types$', $name) ||*/ ereg('schema$', $name)) {
+ if (/*preg_match('/types$/', $name) ||*/ preg_match('/schema$/', $name)) {
$this->status = "";
$this->appendDebug($this->currentSchema->getDebug());
$this->currentSchema->clearDebug();
@@ -5995,7 +5999,7 @@ function start_element($parser, $name, $attrs) {
$key_localpart = $this->getLocalPart($key);
// if ns declarations, add to class level array of valid namespaces
if($key_prefix == 'xmlns'){
- if(ereg('^http://www.w3.org/[0-9]{4}/XMLSchema$',$value)){
+ if(preg_match('#^http://www.w3.org/[0-9]{4}/XMLSchema$#',$value)){
$this->XMLSchemaVersion = $value;
$this->namespaces['xsd'] = $this->XMLSchemaVersion;
$this->namespaces['xsi'] = $this->XMLSchemaVersion.'-instance';
@@ -6031,8 +6035,8 @@ function start_element($parser, $name, $attrs) {
[5] length ::= nextDimension* Digit+
[6] nextDimension ::= Digit+ ','
*/
- $expr = '([A-Za-z0-9_]+):([A-Za-z]+[A-Za-z0-9_]+)\[([0-9]+),?([0-9]*)\]';
- if(ereg($expr,$value,$regs)){
+ $expr = '/([A-Za-z0-9_]+):([A-Za-z]+[A-Za-z0-9_]+)\[([0-9]+),?([0-9]*)\]';
+ if(preg_match($expr,$value,$regs)){
$this->message[$pos]['typePrefix'] = $regs[1];
$this->message[$pos]['arrayTypePrefix'] = $regs[1];
if (isset($this->namespaces[$regs[1]])) {
@@ -6758,7 +6762,7 @@ function send($msg, $soapaction = '', $timeout=0, $response_timeout=30) {
// detect transport
switch(true){
// http(s)
- case ereg('^http',$this->endpoint):
+ case preg_match('/^http/',$this->endpoint):
$this->debug('transporting via HTTP');
if($this->persistentConnection == true && is_object($this->persistentConnection)){
$http =& $this->persistentConnection;
@@ -6780,10 +6784,10 @@ function send($msg, $soapaction = '', $timeout=0, $response_timeout=30) {
$http->setEncoding($this->http_encoding);
}
$this->debug('sending message, length='.strlen($msg));
- if(ereg('^http:',$this->endpoint)){
+ if(preg_match('/^http:/',$this->endpoint)){
//if(strpos($this->endpoint,'http:')){
$this->responseData = $http->send($msg,$timeout,$response_timeout,$this->cookies);
- } elseif(ereg('^https',$this->endpoint)){
+ } elseif(preg_match('/^https/',$this->endpoint)){
//} elseif(strpos($this->endpoint,'https:')){
//if(phpversion() == '4.3.0-dev'){
//$response = $http->send($msg,$timeout,$response_timeout);
@@ -6841,7 +6845,7 @@ function parseResponse($headers, $data) {
if (strpos($headers['content-type'], '=')) {
$enc = str_replace('"', '', substr(strstr($headers["content-type"], '='), 1));
$this->debug('Got response encoding: ' . $enc);
- if(eregi('^(ISO-8859-1|US-ASCII|UTF-8)$',$enc)){
+ if(preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)){
$this->xml_encoding = strtoupper($enc);
} else {
$this->xml_encoding = 'US-ASCII';
26 lib/tcpdf/README_MOODLE.txt
View
@@ -0,0 +1,26 @@
+18 Nov 2009
+Description of modifications to remove ereg related functions deprecated as of php 5.3. Patch below.
+
+Index: html2pdf.php
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/tcpdf/Attic/html2pdf.php,v
+retrieving revision 1.1
+diff -u -r1.1 html2pdf.php
+--- html2pdf.php 2 Feb 2007 18:38:05 -0000 1.1
++++ html2pdf.php 18 Nov 2009 06:51:34 -0000
+@@ -1,5 +1,5 @@
+ <?php
+-//HTML2PDF by Clément Lavoillotte
++//HTML2PDF by Clï¿œment Lavoillotte
+ //ac.lavoillotte@noos.fr
+ //webmaster@streetpc.tk
+ //http://www.streetpc.tk
+@@ -91,7 +91,7 @@
+ $tag=strtoupper(array_shift($a2));
+ $attr=array();
+ foreach($a2 as $v)
+- if(ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$a3))
++ if(preg_match('/^([^=]*)=["\']?([^"\']*)["\']?$/',$v,$a3))
+ $attr[strtoupper($a3[1])]=$a3[2];
+ $this->OpenTag($tag,$attr);
+ }
4 lib/tcpdf/html2pdf.php
View
@@ -1,5 +1,5 @@
<?php
-//HTML2PDF by Cl�ment Lavoillotte
+//HTML2PDF by Cl�ment Lavoillotte
//ac.lavoillotte@noos.fr
//webmaster@streetpc.tk
//http://www.streetpc.tk
@@ -91,7 +91,7 @@ function WriteHTML($html)
$tag=strtoupper(array_shift($a2));
$attr=array();
foreach($a2 as $v)
- if(ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$a3))
+ if(preg_match('/^([^=]*)=["\']?([^"\']*)["\']?$/',$v,$a3))
$attr[strtoupper($a3[1])]=$a3[2];
$this->OpenTag($tag,$attr);
}
359 lib/typo3/README_MOODLE.txt
View
@@ -0,0 +1,359 @@
+18 Nov 2009
+Description of modifications to remove ereg related functions deprecated as of php 5.3. Patch below.
+
+Index: class.t3lib_cs.php
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/typo3/class.t3lib_cs.php,v
+retrieving revision 1.7
+diff -u -r1.7 class.t3lib_cs.php
+--- class.t3lib_cs.php 11 Aug 2006 09:48:35 -0000 1.7
++++ class.t3lib_cs.php 18 Nov 2009 06:53:50 -0000
+@@ -781,8 +781,8 @@
+ $trans_tbl = array_flip(get_html_translation_table(HTML_ENTITIES)); // Getting them in iso-8859-1 - but thats ok since this is observed below.
+ }
+
+- $token = md5(microtime());
+- $parts = explode($token,ereg_replace('(&([#[:alnum:]]*);)',$token.'\2'.$token,$str));
++ $token = 'a'.md5(microtime());//token must start with a letter or preg_replace substitution won't work
++ $parts = explode($token,preg_replace('/(&([#[:alnum:]]*);)/',$token.'\2'.$token,$str));
+ foreach($parts as $k => $v) {
+ if ($k%2) {
+ if (substr($v,0,1)=='#') { // Dec or hex entities:
+@@ -974,13 +974,13 @@
+
+ // Detect type if not done yet: (Done on first real line)
+ // The "whitespaced" type is on the syntax "0x0A 0x000A #LINE FEED" while "ms-token" is like "B9 = U+00B9 : SUPERSCRIPT ONE"
+- if (!$detectedType) $detectedType = ereg('[[:space:]]*0x([[:alnum:]]*)[[:space:]]+0x([[:alnum:]]*)[[:space:]]+',$value) ? 'whitespaced' : 'ms-token';
++ if (!$detectedType) $detectedType = preg_match('/[[:space:]]*0x([[:alnum:]]*)[[:space:]]+0x([[:alnum:]]*)[[:space:]]+/',$value) ? 'whitespaced' : 'ms-token';
+
+ if ($detectedType=='ms-token') {
+ list($hexbyte,$utf8) = split('=|:',$value,3);
+ } elseif ($detectedType=='whitespaced') {
+ $regA=array();
+- ereg('[[:space:]]*0x([[:alnum:]]*)[[:space:]]+0x([[:alnum:]]*)[[:space:]]+',$value,$regA);
++ preg_match('/[[:space:]]*0x([[:alnum:]]*)[[:space:]]+0x([[:alnum:]]*)[[:space:]]+/',$value,$regA);
+ $hexbyte = $regA[1];
+ $utf8 = 'U+'.$regA[2];
+ }
+@@ -1084,7 +1084,7 @@
+
+ // accented Latin letters without "official" decomposition
+ $match = array();
+- if (ereg('^LATIN (SMALL|CAPITAL) LETTER ([A-Z]) WITH',$name,$match) && !$decomp) {
++ if (preg_match('/^LATIN (SMALL|CAPITAL) LETTER ([A-Z]) WITH/',$name,$match) && !$decomp) {
+ $c = ord($match[2]);
+ if ($match[1] == 'SMALL') $c += 32;
+
+@@ -1093,7 +1093,7 @@
+ }
+
+ $match = array();
+- if (ereg('(<.*>)? *(.+)',$decomp,$match)) {
++ if (preg_match('/(<.*>)? *(.+)/',$decomp,$match)) {
+ switch($match[1]) {
+ case '<circle>': // add parenthesis as circle replacement, eg (1)
+ $match[2] = '0028 '.$match[2].' 0029';
+@@ -1104,7 +1104,7 @@
+ break;
+
+ case '<compat>': // ignore multi char decompositions that start with a space
+- if (ereg('^0020 ',$match[2])) continue 2;
++ if (preg_match('/^0020 /',$match[2])) continue 2;
+ break;
+
+ // ignore Arabic and vertical layout presentation decomposition
+Index: class.t3lib_div.php
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/typo3/class.t3lib_div.php,v
+retrieving revision 1.2
+diff -u -r1.2 class.t3lib_div.php
+--- class.t3lib_div.php 17 Oct 2005 15:48:29 -0000 1.2
++++ class.t3lib_div.php 18 Nov 2009 06:53:51 -0000
+@@ -798,7 +798,7 @@
+ * @return array Contains keys [path], [file], [filebody], [fileext], [realFileext]
+ */
+ function split_fileref($fileref) {
+- if ( ereg('(.*/)(.*)$',$fileref,$reg) ) {
++ if ( preg_match('#(.*/)(.*)$#',$fileref,$reg) ) {
+ $info['path'] = $reg[1];
+ $info['file'] = $reg[2];
+ } else {
+@@ -806,7 +806,7 @@
+ $info['file'] = $fileref;
+ }
+ $reg='';
+- if ( ereg('(.*)\.([^\.]*$)',$info['file'],$reg) ) {
++ if ( preg_match('/(.*)\.([^\.]*$)/',$info['file'],$reg) ) {
+ $info['filebody'] = $reg[1];
+ $info['fileext'] = strtolower($reg[2]);
+ $info['realFileext'] = $reg[2];
+@@ -882,7 +882,7 @@
+ * @return string
+ */
+ function rm_endcomma($string) {
+- return ereg_replace(',$','',$string);
++ return preg_replace('/,$/','',$string);
+ }
+
+ /**
+@@ -896,7 +896,7 @@
+ */
+ function danish_strtoupper($string) {
+ $value = strtoupper($string);
+- return strtr($value, 'áéúíâêûôîæøåäöü', 'ÁÉÚÍÄËÜÖÏÆØÅÄÖÜ');
++ return strtr($value, 'ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ', 'ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ');
+ }
+
+ /**
+@@ -904,13 +904,13 @@
+ * Only known characters will be converted, so don't expect a result for any character.
+ * (DEPRECIATED: Works only for western europe single-byte charsets! Use t3lib_cs::specCharsToASCII() instead!)
+ *
+- * ä => ae, Ö => Oe
++ * ᅵ => ae, ᅵ => Oe
+ *
+ * @param string String to convert.
+ * @return string
+ */
+ function convUmlauts($str) {
+- $pat = array ( '/ä/', '/Ä/', '/ö/', '/Ö/', '/ü/', '/Ü/', '/ß/', '/å/', '/Å/', '/ø/', '/Ø/', '/æ/', '/Æ/' );
++ $pat = array ( '/ᅵ/', '/ᅵ/', '/ᅵ/', '/ᅵ/', '/ᅵ/', '/ᅵ/', '/ᅵ/', '/ᅵ/', '/ᅵ/', '/ᅵ/', '/ᅵ/', '/ᅵ/', '/ᅵ/' );
+ $repl = array ( 'ae', 'Ae', 'oe', 'Oe', 'ue', 'Ue', 'ss', 'aa', 'AA', 'oe', 'OE', 'ae', 'AE' );
+ return preg_replace($pat,$repl,$str);
+ }
+@@ -1022,7 +1022,7 @@
+ * @see calcParenthesis()
+ */
+ function calcPriority($string) {
+- $string=ereg_replace('[[:space:]]*','',$string); // removing all whitespace
++ $string=preg_replace('/[ ]*/','',$string); // removing all whitespace
+ $string='+'.$string; // Ensuring an operator for the first entrance
+ $qm='\*\/\+-^%';
+ $regex = '(['.$qm.'])(['.$qm.']?[0-9\.]*)';
+@@ -1103,7 +1103,7 @@
+ * @return string Converted result.
+ */
+ function deHSCentities($str) {
+- return ereg_replace('&amp;([#[:alnum:]]*;)','&\1',$str);
++ return preg_replace('/&amp;([#A-Za-z0-9]*;)/','&\1',$str);
+ }
+
+ /**
+@@ -1154,7 +1154,7 @@
+ function validEmail($email) {
+ $email = trim ($email);
+ if (strstr($email,' ')) return FALSE;
+- return ereg('^[A-Za-z0-9\._-]+[@][A-Za-z0-9\._-]+[\.].[A-Za-z0-9]+$',$email) ? TRUE : FALSE;
++ return preg_match('/^[A-Za-z0-9\._-]+[@][A-Za-z0-9\._-]+[\.].[A-Za-z0-9]+$/',$email) ? TRUE : FALSE;
+ }
+
+ /**
+@@ -1555,7 +1555,7 @@
+ $name = '';
+ }
+ } else {
+- if ($key = strtolower(ereg_replace('[^a-zA-Z0-9]','',$val))) {
++ if ($key = strtolower(preg_replace('/[^a-zA-Z0-9]/','',$val))) {
+ $attributes[$key] = '';
+ $name = $key;
+ }
+@@ -1580,9 +1580,9 @@
+ * @internal
+ */
+ function split_tag_attributes($tag) {
+- $tag_tmp = trim(eregi_replace ('^<[^[:space:]]*','',trim($tag)));
++ $tag_tmp = trim(preg_replace ('/^<[^[:space:]]*/i','',trim($tag)));
+ // Removes any > in the end of the string
+- $tag_tmp = trim(eregi_replace ('>$','',$tag_tmp));
++ $tag_tmp = trim(preg_replace ('/>$/i','',$tag_tmp));
+
+ while (strcmp($tag_tmp,'')) { // Compared with empty string instead , 030102
+ $firstChar=substr($tag_tmp,0,1);
+@@ -1653,7 +1653,7 @@
+ * @param boolean Wrap script element in linebreaks? Default is TRUE.
+ * @return string The wrapped JS code, ready to put into a XHTML page
+ * @author Ingmar Schlecht <ingmars@web.de>
+- * @author René Fritz <r.fritz@colorcube.de>
++ * @author Renᅵ Fritz <r.fritz@colorcube.de>
+ */
+ function wrapJS($string, $linebreak=TRUE) {
+ if(trim($string)) {
+@@ -1813,7 +1813,7 @@
+ }
+
+ // The tag name is cleaned up so only alphanumeric chars (plus - and _) are in there and not longer than 100 chars either.
+- $tagName = substr(ereg_replace('[^[:alnum:]_-]','',$tagName),0,100);
++ $tagName = substr(preg_replace('/[^[:alnum:]_-]/','',$tagName),0,100);
+
+ // If the value is an array then we will call this function recursively:
+ if (is_array($v)) {
+@@ -1902,7 +1902,7 @@
+ // What we do here fixes the problem but ONLY if the charset is utf-8, iso-8859-1 or us-ascii. That should work for most TYPO3 installations, in particular if people use utf-8 which we highly recommend.
+ if ((double)phpversion()>=5) {
+ unset($ereg_result);
+- ereg('^[[:space:]]*<\?xml[^>]*encoding[[:space:]]*=[[:space:]]*"([^"]*)"',substr($string,0,200),$ereg_result);
++ preg_match('/^[[:space:]]*<\?xml[^>]*encoding[[:space:]]*=[[:space:]]*"([^"]*)"/',substr($string,0,200),$ereg_result);
+ $theCharset = $ereg_result[1] ? $ereg_result[1] : ($TYPO3_CONF_VARS['BE']['forceCharset'] ? $TYPO3_CONF_VARS['BE']['forceCharset'] : 'iso-8859-1');
+ xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, $theCharset); // us-ascii / utf-8 / iso-8859-1
+ }
+@@ -2042,7 +2042,7 @@
+ function xmlGetHeaderAttribs($xmlData) {
+ $xmlHeader = substr(trim($xmlData),0,200);
+ $reg=array();
+- if (eregi('^<\?xml([^>]*)\?\>',$xmlHeader,$reg)) {
++ if (preg_match('/^<\?xml([^>]*)\?\>/i',$xmlHeader,$reg)) {
+ return t3lib_div::get_tag_attributes($reg[1]);
+ }
+ }
+@@ -2163,7 +2163,7 @@
+ // Checking if the "subdir" is found:
+ $subdir = substr($fI['dirname'],strlen($dirName));
+ if ($subdir) {
+- if (ereg('^[[:alnum:]_]+\/$',$subdir)) {
++ if (preg_match('#^[[:alnum:]_]+\/$#',$subdir)) {
+ $dirName.= $subdir;
+ if (!@is_dir($dirName)) {
+ t3lib_div::mkdir($dirName);
+@@ -2191,7 +2191,7 @@
+ * @return boolean TRUE if @mkdir went well!
+ */
+ function mkdir($theNewFolder) {
+- $theNewFolder = ereg_replace('\/$','',$theNewFolder);
++ $theNewFolder = preg_replace('#\/$#','',$theNewFolder);
+ if (mkdir($theNewFolder, octdec($GLOBALS['TYPO3_CONF_VARS']['BE']['folderCreateMask']))){
+ chmod($theNewFolder, octdec($GLOBALS['TYPO3_CONF_VARS']['BE']['folderCreateMask'])); //added this line, because the mode at 'mkdir' has a strange behaviour sometimes
+
+@@ -2240,7 +2240,7 @@
+ // Initialize variabels:
+ $filearray = array();
+ $sortarray = array();
+- $path = ereg_replace('\/$','',$path);
++ $path = preg_replace('#\/$#','',$path);
+
+ // Find files+directories:
+ if (@is_dir($path)) {
+@@ -2564,7 +2564,7 @@
+
+ $pString = t3lib_div::implodeArrayForUrl('',$params);
+
+- return $pString ? $parts.'?'.ereg_replace('^&','',$pString) : $parts;
++ return $pString ? $parts.'?'.preg_replace('/^&/','',$pString) : $parts;
+ }
+
+ /**
+@@ -2673,7 +2673,7 @@
+ case 'REQUEST_URI':
+ // Typical application of REQUEST_URI is return urls, forms submitting to itself etc. Example: returnUrl='.rawurlencode(t3lib_div::getIndpEnv('REQUEST_URI'))
+ if (!$_SERVER['REQUEST_URI']) { // This is for ISS/CGI which does not have the REQUEST_URI available.
+- return '/'.ereg_replace('^/','',t3lib_div::getIndpEnv('SCRIPT_NAME')).
++ return '/'.preg_replace('#^/#','',t3lib_div::getIndpEnv('SCRIPT_NAME')).
+ ($_SERVER['QUERY_STRING']?'?'.$_SERVER['QUERY_STRING']:'');
+ } else return $_SERVER['REQUEST_URI'];
+ break;
+@@ -2826,11 +2826,11 @@
+ break;
+ case 'msie':
+ $tmp = strstr($useragent,'MSIE');
+- $bInfo['VERSION'] = doubleval(ereg_replace('^[^0-9]*','',substr($tmp,4)));
++ $bInfo['VERSION'] = doubleval(preg_replace('/^[^0-9]*/','',substr($tmp,4)));
+ break;
+ case 'opera':
+ $tmp = strstr($useragent,'Opera');
+- $bInfo['VERSION'] = doubleval(ereg_replace('^[^0-9]*','',substr($tmp,5)));
++ $bInfo['VERSION'] = doubleval(preg_replace('/^[^0-9]*/','',substr($tmp,5)));
+ break;
+ case 'konqu':
+ $tmp = strstr($useragent,'Konqueror/');
+@@ -2966,7 +2966,7 @@
+ */
+ function verifyFilenameAgainstDenyPattern($filename) {
+ if (strcmp($filename,'') && strcmp($GLOBALS['TYPO3_CONF_VARS']['BE']['fileDenyPattern'],'')) {
+- $result = eregi($GLOBALS['TYPO3_CONF_VARS']['BE']['fileDenyPattern'],$filename);
++ $result = preg_match('/'.$GLOBALS['TYPO3_CONF_VARS']['BE']['fileDenyPattern'].'/i',$filename);
+ if ($result) return false; // so if a matching filename is found, return false;
+ }
+ return true;
+@@ -3126,7 +3126,7 @@
+ function readLLfile($fileRef,$langKey) {
+ $file = t3lib_div::getFileAbsFileName($fileRef);
+ if ($file) {
+- $baseFile = ereg_replace('\.(php|xml)$', '', $file);
++ $baseFile = preg_replace('#\.(php|xml)$#', '', $file);
+
+ if (@is_file($baseFile.'.xml')) {
+ $LOCAL_LANG = t3lib_div::readLLXMLfile($baseFile.'.xml', $langKey);
+@@ -3162,7 +3162,7 @@
+ // Cache file name:
+ $hashSource = substr($fileRef,strlen(PATH_site)).'|'.date('d-m-Y H:i:s',filemtime($fileRef));
+ $cacheFileName = PATH_site.'typo3temp/llxml/'.
+- #str_replace('_','',ereg_replace('^.*\/','',dirname($fileRef))).
++ #str_replace('_','',preg_replace('#^.*\/#','',dirname($fileRef))).
+ #'_'.basename($fileRef).
+ substr(basename($fileRef),10,15).
+ '_'.t3lib_div::shortMD5($hashSource).'.'.$langKey.'.'.$origCharset.'.cache';
+@@ -3344,7 +3344,7 @@
+
+ // Check persistent object and if found, call directly and exit.
+ if (is_array($GLOBALS['T3_VAR']['callUserFunction'][$funcName])) {
+- return call_user_method(
++ return call_user_func(
+ $GLOBALS['T3_VAR']['callUserFunction'][$funcName]['method'],
+ $GLOBALS['T3_VAR']['callUserFunction'][$funcName]['obj'],
+ $params,
+@@ -3405,7 +3405,7 @@
+ );
+ }
+ // Call method:
+- $content = call_user_method(
++ $content = call_user_func(
+ $parts[1],
+ $classObj,
+ $params,
+@@ -3520,7 +3520,7 @@
+ * @param string Sub type like file extensions or similar. Defined by the service.
+ * @param mixed List of service keys which should be exluded in the search for a service. Array or comma list.
+ * @return object The service object or an array with error info's.
+- * @author René Fritz <r.fritz@colorcube.de>
++ * @author Renᅵ Fritz <r.fritz@colorcube.de>
+ */
+ function &makeInstanceService($serviceType, $serviceSubType='', $excludeServiceKeys=array()) {
+ global $T3_SERVICES, $T3_VAR, $TYPO3_CONF_VARS;
+@@ -3606,7 +3606,7 @@
+
+ $message=t3lib_div::quoted_printable($message);
+
+- if (!$dontEncodeSubject) $subject='=?'.$charset.'?Q?'.trim(t3lib_div::quoted_printable(ereg_replace('[[:space:]]','_',$subject),1000)).'?=';
++ if (!$dontEncodeSubject) $subject='=?'.$charset.'?Q?'.trim(t3lib_div::quoted_printable(preg_replace('#/[[:space:]]/#','_',$subject),1000)).'?=';
+ break;
+ case '8bit':
+ $headers=trim($headers).chr(10).
+@@ -3657,11 +3657,11 @@
+ $len+=3;
+ }
+ }
+- $newVal = ereg_replace(chr(32).'$','=20',$newVal); // Replaces a possible SPACE-character at the end of a line
+- $newVal = ereg_replace(chr(9).'$','=09',$newVal); // Replaces a possible TAB-character at the end of a line
++ $newVal = preg_replace('/'.chr(32).'$/','=20',$newVal); // Replaces a possible SPACE-character at the end of a line
++ $newVal = preg_replace('/'.chr(9).'$/','=09',$newVal); // Replaces a possible TAB-character at the end of a line
+ $newString.=$newVal.chr(13).chr(10);
+ }
+- return ereg_replace(chr(13).chr(10).'$','',$newString);
++ return preg_replace('/'.chr(13).chr(10).'$/','',$newString);
+ }
+
+ /**
+@@ -3853,12 +3853,12 @@
+ if($quoteActive > -1) {
+ $paramsArr[$quoteActive] .= ' '.$v;
+ unset($paramsArr[$k]);
+- if(ereg('"$', $v)) { $quoteActive = -1; }
++ if(preg_match('/"$/', $v)) { $quoteActive = -1; }
+
+ } elseif(!trim($v)) {
+ unset($paramsArr[$k]); // Remove empty elements
+
+- } elseif(ereg('^"', $v)) {
++ } elseif(preg_match('/^"/', $v)) {
+ $quoteActive = $k;
+ }
+ }
14 lib/typo3/class.t3lib_cs.php
View
@@ -781,8 +781,8 @@ function entities_to_utf8($str,$alsoStdHtmlEnt=0) {
$trans_tbl = array_flip(get_html_translation_table(HTML_ENTITIES)); // Getting them in iso-8859-1 - but thats ok since this is observed below.
}
- $token = md5(microtime());
- $parts = explode($token,ereg_replace('(&([#[:alnum:]]*);)',$token.'\2'.$token,$str));
+ $token = 'a'.md5(microtime());//token must start with a letter or preg_replace substitution won't work
+ $parts = explode($token,preg_replace('/(&([#[:alnum:]]*);)/',$token.'\2'.$token,$str));
foreach($parts as $k => $v) {
if ($k%2) {
if (substr($v,0,1)=='#') { // Dec or hex entities:
@@ -974,13 +974,13 @@ function initCharset($charset) {
// Detect type if not done yet: (Done on first real line)
// The "whitespaced" type is on the syntax "0x0A 0x000A #LINE FEED" while "ms-token" is like "B9 = U+00B9 : SUPERSCRIPT ONE"
- if (!$detectedType) $detectedType = ereg('[[:space:]]*0x([[:alnum:]]*)[[:space:]]+0x([[:alnum:]]*)[[:space:]]+',$value) ? 'whitespaced' : 'ms-token';
+ if (!$detectedType) $detectedType = preg_match('/[[:space:]]*0x([[:alnum:]]*)[[:space:]]+0x([[:alnum:]]*)[[:space:]]+/',$value) ? 'whitespaced' : 'ms-token';
if ($detectedType=='ms-token') {
list($hexbyte,$utf8) = split('=|:',$value,3);
} elseif ($detectedType=='whitespaced') {
$regA=array();
- ereg('[[:space:]]*0x([[:alnum:]]*)[[:space:]]+0x([[:alnum:]]*)[[:space:]]+',$value,$regA);
+ preg_match('/[[:space:]]*0x([[:alnum:]]*)[[:space:]]+0x([[:alnum:]]*)[[:space:]]+/',$value,$regA);
$hexbyte = $regA[1];
$utf8 = 'U+'.$regA[2];
}
@@ -1084,7 +1084,7 @@ function initUnicodeData($mode=null) {
// accented Latin letters without "official" decomposition
$match = array();
- if (ereg('^LATIN (SMALL|CAPITAL) LETTER ([A-Z]) WITH',$name,$match) && !$decomp) {
+ if (preg_match('/^LATIN (SMALL|CAPITAL) LETTER ([A-Z]) WITH/',$name,$match) && !$decomp) {
$c = ord($match[2]);
if ($match[1] == 'SMALL') $c += 32;
@@ -1093,7 +1093,7 @@ function initUnicodeData($mode=null) {
}
$match = array();
- if (ereg('(<.*>)? *(.+)',$decomp,$match)) {
+ if (preg_match('/(<.*>)? *(.+)/',$decomp,$match)) {
switch($match[1]) {
case '<circle>': // add parenthesis as circle replacement, eg (1)
$match[2] = '0028 '.$match[2].' 0029';
@@ -1104,7 +1104,7 @@ function initUnicodeData($mode=null) {
break;
case '<compat>': // ignore multi char decompositions that start with a space
- if (ereg('^0020 ',$match[2])) continue 2;
+ if (preg_match('/^0020 /',$match[2])) continue 2;
break;
// ignore Arabic and vertical layout presentation decomposition
70 lib/typo3/class.t3lib_div.php
View
@@ -798,7 +798,7 @@ function uniqueList($in_list, $secondParameter=NULL) {
* @return array Contains keys [path], [file], [filebody], [fileext], [realFileext]
*/
function split_fileref($fileref) {
- if ( ereg('(.*/)(.*)$',$fileref,$reg) ) {
+ if ( preg_match('#(.*/)(.*)$#',$fileref,$reg) ) {
$info['path'] = $reg[1];
$info['file'] = $reg[2];
} else {
@@ -806,7 +806,7 @@ function split_fileref($fileref) {
$info['file'] = $fileref;
}
$reg='';
- if ( ereg('(.*)\.([^\.]*$)',$info['file'],$reg) ) {
+ if ( preg_match('/(.*)\.([^\.]*$)/',$info['file'],$reg) ) {
$info['filebody'] = $reg[1];
$info['fileext'] = strtolower($reg[2]);
$info['realFileext'] = $reg[2];
@@ -882,7 +882,7 @@ function modifyHTMLColorAll($color,$all) {
* @return string
*/
function rm_endcomma($string) {
- return ereg_replace(',$','',$string);
+ return preg_replace('/,$/','',$string);
}
/**
@@ -896,7 +896,7 @@ function rm_endcomma($string) {
*/
function danish_strtoupper($string) {
$value = strtoupper($string);
- return strtr($value, '���������������', '���������������');
+ return strtr($value, '���������������', '���������������');
}
/**
@@ -904,13 +904,13 @@ function danish_strtoupper($string) {
* Only known characters will be converted, so don't expect a result for any character.
* (DEPRECIATED: Works only for western europe single-byte charsets! Use t3lib_cs::specCharsToASCII() instead!)
*
- * � => ae, � => Oe
+ * � => ae, � => Oe
*
* @param string String to convert.
* @return string
*/
function convUmlauts($str) {
- $pat = array ( '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/' );
+ $pat = array ( '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/', '/�/' );
$repl = array ( 'ae', 'Ae', 'oe', 'Oe', 'ue', 'Ue', 'ss', 'aa', 'AA', 'oe', 'OE', 'ae', 'AE' );
return preg_replace($pat,$repl,$str);
}
@@ -1022,7 +1022,7 @@ function splitCalc($string,$operators) {
* @see calcParenthesis()
*/
function calcPriority($string) {
- $string=ereg_replace('[[:space:]]*','',$string); // removing all whitespace
+ $string=preg_replace('/[ ]*/','',$string); // removing all whitespace
$string='+'.$string; // Ensuring an operator for the first entrance
$qm='\*\/\+-^%';
$regex = '(['.$qm.'])(['.$qm.']?[0-9\.]*)';
@@ -1103,7 +1103,7 @@ function htmlspecialchars_decode($value) {
* @return string Converted result.
*/
function deHSCentities($str) {
- return ereg_replace('&amp;([#[:alnum:]]*;)','&\1',$str);
+ return preg_replace('/&amp;([#A-Za-z0-9]*;)/','&\1',$str);
}
/**
@@ -1154,7 +1154,7 @@ function rawUrlEncodeFP($str) {
function validEmail($email) {
$email = trim ($email);
if (strstr($email,' ')) return FALSE;
- return ereg('^[A-Za-z0-9\._-]+[@][A-Za-z0-9\._-]+[\.].[A-Za-z0-9]+$',$email) ? TRUE : FALSE;
+ return preg_match('/^[A-Za-z0-9\._-]+[@][A-Za-z0-9\._-]+[\.].[A-Za-z0-9]+$/',$email) ? TRUE : FALSE;
}
/**
@@ -1555,7 +1555,7 @@ function get_tag_attributes($tag) {
$name = '';
}
} else {
- if ($key = strtolower(ereg_replace('[^a-zA-Z0-9]','',$val))) {
+ if ($key = strtolower(preg_replace('/[^a-zA-Z0-9]/','',$val))) {
$attributes[$key] = '';
$name = $key;
}
@@ -1580,9 +1580,9 @@ function get_tag_attributes($tag) {
* @internal
*/
function split_tag_attributes($tag) {
- $tag_tmp = trim(eregi_replace ('^<[^[:space:]]*','',trim($tag)));
+ $tag_tmp = trim(preg_replace ('/^<[^[:space:]]*/i','',trim($tag)));
// Removes any > in the end of the string
- $tag_tmp = trim(eregi_replace ('>$','',$tag_tmp));
+ $tag_tmp = trim(preg_replace ('/>$/i','',$tag_tmp));
while (strcmp($tag_tmp,'')) { // Compared with empty string instead , 030102
$firstChar=substr($tag_tmp,0,1);
@@ -1653,7 +1653,7 @@ function implodeParams($arr,$xhtmlSafe=FALSE,$dontOmitBlankAttribs=FALSE) {
* @param boolean Wrap script element in linebreaks? Default is TRUE.
* @return string The wrapped JS code, ready to put into a XHTML page
* @author Ingmar Schlecht <ingmars@web.de>
- * @author Ren� Fritz <r.fritz@colorcube.de>
+ * @author Ren� Fritz <r.fritz@colorcube.de>
*/
function wrapJS($string, $linebreak=TRUE) {
if(trim($string)) {