From 76561f1e4e2c0cfa181804344b501b4e6d56d270 Mon Sep 17 00:00:00 2001
From: Andrew Davis
') {
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';
}
}
diff --git a/admin/mnet/MethodTable.php b/admin/mnet/MethodTable.php
index e5e4b390f82..6bd0bd6260d 100644
--- a/admin/mnet/MethodTable.php
+++ b/admin/mnet/MethodTable.php
@@ -465,15 +465,15 @@ class MethodTable
$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 @@ class MethodTable
$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;
}
diff --git a/admin/uploaduser.php b/admin/uploaduser.php
index 9781ccdec14..3d8ba3d7e4a 100755
--- a/admin/uploaduser.php
+++ b/admin/uploaduser.php
@@ -260,7 +260,7 @@ if ($formdata = $mform->is_cancelled()) {
// 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');
diff --git a/auth/shibboleth/auth.php b/auth/shibboleth/auth.php
index 9fcfdbf7807..213278c447a 100644
--- a/auth/shibboleth/auth.php
+++ b/auth/shibboleth/auth.php
@@ -63,7 +63,7 @@ class auth_plugin_shibboleth extends auth_plugin_base {
} 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;
}
}
diff --git a/auth/shibboleth/logout.php b/auth/shibboleth/logout.php
index 24ab73a7b79..f9f06bbf267 100644
--- a/auth/shibboleth/logout.php
+++ b/auth/shibboleth/logout.php
@@ -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);
diff --git a/calendar/lib.php b/calendar/lib.php
index 7c575d41a78..40eb7397b1c 100644
--- a/calendar/lib.php
+++ b/calendar/lib.php
@@ -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[^ ]+)', '\\1', $text);
- $text = ereg_replace('(F.+Y|Y.+F|Y.+m[^ ]+)', '\\1', $text);
+ $text = preg_replace('/(%B.+%Y|%Y.+%B|%Y.+%m[^ ]+)/', '\\1', $text);
+ $text = preg_replace('/(F.+Y|Y.+F|Y.+m[^ ]+)/', '\\1', $text);
*/
// Replace with actual values and lose any day leading zero
$text = userdate($time, $text);
diff --git a/enrol/authorize/enrol_form.php b/enrol/authorize/enrol_form.php
index 0182076fccc..716e45f5b3e 100755
--- a/enrol/authorize/enrol_form.php
+++ b/enrol/authorize/enrol_form.php
@@ -246,7 +246,7 @@ class enrol_authorize_form extends moodleform
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 @@ class enrol_authorize_form extends moodleform
$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;
}
diff --git a/filter/tex/filter.php b/filter/tex/filter.php
index d067fbc7fe7..deb52eca44b 100644
--- a/filter/tex/filter.php
+++ b/filter/tex/filter.php
@@ -146,7 +146,7 @@ function tex_filter ($courseid, $text) {
$texexp = str_replace('','',$texexp);
$texexp = str_replace('','',$texexp);
$texexp = str_replace('','',$texexp);
- $texexp = eregi_replace("
", '', $texexp); //dlnsk
+ $texexp = preg_replace("#
#i", '', $texexp); //dlnsk
$align = "middle";
if (preg_match('/^align=bottom /',$texexp)) {
$align = "text-bottom";
diff --git a/lib/adodb/drivers/adodb-sybase.inc.php b/lib/adodb/drivers/adodb-sybase.inc.php
index ef6df6be6dc..16cca091e8f 100644
--- a/lib/adodb/drivers/adodb-sybase.inc.php
+++ b/lib/adodb/drivers/adodb-sybase.inc.php
@@ -376,7 +376,7 @@ class ADORecordSet_array_sybase extends ADORecordSet_array {
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 @@ class ADORecordSet_array_sybase extends ADORecordSet_array {
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;
diff --git a/lib/adodb/readme_moodle.txt b/lib/adodb/readme_moodle.txt
index 521ab8ce6af..5504f7881a0 100644
--- a/lib/adodb/readme_moodle.txt
+++ b/lib/adodb/readme_moodle.txt
@@ -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']}
' . htmlentities(wordwrap($regexp,70,"\n",1)) . ''; // Running the regular expression - if (eregi( $regexp, $urladdr )) + if (preg_match( $regexp, $urladdr )) { return true; // The domain passed } @@ -377,7 +378,7 @@ License: function validateEmailSyntax( $emailaddr, $options="" ){ // Check Options Parameter - if (!ereg( '^([sHSEFuPaIpfqr][+?-])*$', $options )) + if (!preg_match( '/^([sHSEFuPaIpfqr][+?-])*$/', $options )) { trigger_error("Options attribute malformed", E_USER_ERROR); } @@ -483,7 +484,7 @@ License: function validateFtpSyntax( $ftpaddr, $options="" ){ // Check Options Parameter - if (!ereg( '^([sHSEFuPaIpfqr][+?-])*$', $options )) + if (!preg_match( '/^([sHSEFuPaIpfqr][+?-])*$/', $options )) { trigger_error("Options attribute malformed", E_USER_ERROR); } diff --git a/lib/weblib.php b/lib/weblib.php index b849be30685..5a9082c2c86 100644 --- a/lib/weblib.php +++ b/lib/weblib.php @@ -1355,11 +1355,11 @@ function formerr($error) { */ function validate_email($address) { - return (ereg('^[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+'. - '(\.[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+)*'. + return (validate_email('#^[-!\#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+'. + '(\.[-!\#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+)*'. '@'. - '[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'. - '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', + '[-!\#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'. + '[-!\#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$#', $address)); } @@ -1791,7 +1791,7 @@ function format_text_email($text, $format) { $text = wiki_to_html($text); /// This expression turns links into something nice in a text format. (Russell Jungwirth) /// From: http://php.net/manual/en/function.eregi-replace.php and simplified - $text = eregi_replace('(]*>([^<]*))','\\3 [ \\2 ]', $text); + $text = preg_replace('/(]*>([^<]*))/i','\\3 [ \\2 ]', $text); return strtr(strip_tags($text), array_flip(get_html_translation_table(HTML_ENTITIES))); break; @@ -1802,7 +1802,7 @@ function format_text_email($text, $format) { case FORMAT_MOODLE: case FORMAT_MARKDOWN: default: - $text = eregi_replace('(]*>([^<]*))','\\3 [ \\2 ]', $text); + $text = preg_replace('/(]*>([^<]*))/i','\\3 [ \\2 ]', $text); return strtr(strip_tags($text), array_flip(get_html_translation_table(HTML_ENTITIES))); break; } @@ -2038,8 +2038,8 @@ function clean_text($text, $format=FORMAT_MOODLE) { } /// Remove potential script events - some extra protection for undiscovered bugs in our code - $text = eregi_replace("([^a-z])language([[:space:]]*)=", "\\1Xlanguage=", $text); - $text = eregi_replace("([^a-z])on([a-z]+)([[:space:]]*)=", "\\1Xon\\2=", $text); + $text = preg_replace("/([^a-z])language([[:space:]]*)=/i", "\\1Xlanguage=", $text); + $text = preg_replace("/([^a-z])on([a-z]+)([[:space:]]*)=/i", "\\1Xon\\2=", $text); return $text; } @@ -2238,11 +2238,11 @@ function text_to_html($text, $smiley=true, $para=true, $newlines=true) { global $CFG; /// Remove any whitespace that may be between HTML tags - $text = eregi_replace(">([[:space:]]+)<", "><", $text); + $text = preg_replace("/>([[:space:]]+)<", $text); /// Remove any returns that precede or follow HTML tags - $text = eregi_replace("([\n\r])<", " <", $text); - $text = eregi_replace(">([\n\r])", "> ", $text); + $text = preg_replace("/([\n\r])([\n\r])/i", "> ", $text); convert_urls_into_links($text); @@ -2305,11 +2305,11 @@ function html_to_text($html) { */ function convert_urls_into_links(&$text) { /// Make lone URLs into links. eg http://moodle.com/ - $text = eregi_replace("([[:space:]]|^|\(|\[)([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])", + $text = preg_replace("#([[:space:]]|^|\(|\[)([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]\#?/&=])#i", "\\1\\2://\\3\\4", $text); /// eg www.moodle.com - $text = eregi_replace("([[:space:]]|^|\(|\[)www\.([^[:space:]]*)([[:alnum:]#?/&=])", + $text = preg_replace("#([[:space:]]|^|\(|\[)www\.([^[:space:]]*)([[:alnum:]\#?/&=])#i", "\\1www.\\2\\3", $text); } diff --git a/lib/wiki_to_markdown.php b/lib/wiki_to_markdown.php index f1ad19a503e..883c62e3144 100644 --- a/lib/wiki_to_markdown.php +++ b/lib/wiki_to_markdown.php @@ -59,14 +59,14 @@ class WikiToMarkdown { // BODGE: replace inline $mark characters in places where we want them ignored // they will be put back after main substitutue, stops problems with eg, and/or $bodge = chr(1); - $line = eregi_replace( '([[:alnum:]])'.$mark.'([[:alnum:]])', '\\1'.$bodge.'\\2',$line ); + $line = preg_replace( '/([[:alnum:]])'.$mark.'([[:alnum:]])/i', '\\1'.$bodge.'\\2',$line ); - $regex = '(^| |[(.,])'.$mark.'([^'.$mark.']*)'.$mark.'([^[:alnum:]]|$)'; + $regex = '/(^| |[(.,])'.$mark.'([^'.$mark.']*)'.$mark.'([^[:alnum:]]|$)/i'; $replace = '\\1<'.$tag.'>\\2'.$tag.'>\\3'; - $line = eregi_replace( $regex, $replace, $line ); + $line = preg_replace( $regex, $replace, $line ); // BODGE: back we go - $line = eregi_replace( $bodge, $mark, $line ); + $line = preg_replace( '/'.$bodge.'/i', $mark, $line ); return $line; } @@ -80,14 +80,14 @@ class WikiToMarkdown { // BODGE: replace inline $mark characters in places where we want them ignored // they will be put back after main substitutue, stops problems with eg, and/or $bodge = chr(1); - $line = eregi_replace( '([[:alnum:]])'.$mark.'([[:alnum:]])', '\\1'.$bodge.'\\2',$line ); + $line = preg_replace( '/([[:alnum:]])'.$mark.'([[:alnum:]])/i', '\\1'.$bodge.'\\2',$line ); - $regex = '(^| |[(.,])'.$mark.'([^'.$mark.']*)'.$mark.'([^[:alnum:]]|$)'; + $regex = '/(^| |[(.,])'.$mark.'([^'.$mark.']*)'.$mark.'([^[:alnum:]]|$)/i'; $replace = '\\1'.$tag.'\\2'.$tag.'\\3'; - $line = eregi_replace( $regex, $replace, $line ); + $line = preg_replace( $regex, $replace, $line ); // BODGE: back we go - $line = eregi_replace( $bodge, $mark, $line ); + $line = preg_replace( '/'.$bodge.'/i', $mark, $line ); return $line; } @@ -97,10 +97,10 @@ class WikiToMarkdown { // do regex for subscript and superscript (slightly different) // $mark is the magic character and $tag the HTML tag to insert - $regex = $mark.'([^'.$mark.']*)'.$mark; + $regex = '/'.$mark.'([^'.$mark.']*)'.$mark.'/i'; $replace = '<'.$tag.'>\\1'.$tag.'>'; - return eregi_replace( $regex, $replace, $line ); + return preg_replace( $regex, $replace, $line ); } function do_list( $line, $blank=false ) { @@ -115,7 +115,7 @@ class WikiToMarkdown { else { $listchar = $line{0}; $count = strspn( $line, $listchar ); - $line = eregi_replace( "^[".$listchar."]+ ", "", $line ); + $line = preg_replace( "/^[".$listchar."]+ /i", "", $line ); } // find what sort of list this character represents @@ -198,7 +198,7 @@ class WikiToMarkdown { // MARKDOWN: no change so leave // is this a list line (starts with * # ; :) - if (eregi( "^([*]+|[#]+|[;]+|[:]+) ", $line )) { + if (preg_match( "/^([*]+|[#]+|[;]+|[:]+) /i", $line )) { $line = $this->do_list( $line ); } @@ -215,7 +215,7 @@ class WikiToMarkdown { $line = str_replace( "1/4", "¼", $line ); $line = str_replace( "1/2", "½", $line ); $line = str_replace( "3/4", "¾", $line ); - $line = eregi_replace( "([[:digit:]]+[[:space:]]*)x([[:space:]]*[[:digit:]]+)", "\\1×\\2", $line ); // (digits) x (digits) - multiply + $line = preg_replace( "/([[:digit:]]+[[:space:]]*)x([[:space:]]*[[:digit:]]+)/i", "\\1×\\2", $line ); // (digits) x (digits) - multiply // do formatting tags // NOTE: The / replacement *has* to be first, or it will screw the // HTML tags that are added by the other ones @@ -231,48 +231,48 @@ class WikiToMarkdown { // convert urls into proper link with optional link text URL(text) // MARDOWN: HTML conversion should work fine - $line = eregi_replace("([[:space:]]|^)([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])\(([^)]+)\)", + $line = preg_replace("#([[:space:]]|^)([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]\#?/&=])\(([^)]+)\)#i", "\\1[\\5](\\2://\\3\\4)", $line); - $line = eregi_replace("([[:space:]])www\.([^[:space:]]*)([[:alnum:]#?/&=])\(([^)]+)\)", + $line = preg_replace("/([[:space:]])www\.([^[:space:]]*)([[:alnum:]#?\/&=])\(([^)]+)\)/i", "\\1[\\5](http://www.\\2\\3)", $line); // make urls (with and without httpd) into proper links - $line = eregi_replace("([[:space:]]|^)([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])", + $line = preg_replace("#([[:space:]]|^)([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]\#?/&=])#i", "\\1<\\2://\\3\\4>", $line); - $line = eregi_replace("([[:space:]])www\.([^[:space:]]*)([[:alnum:]#?/&=])", + $line = preg_replace("/([[:space:]])www\.([^[:space:]]*)([[:alnum:]#?/&=])/i", "\\1
$buffer = $buffer . "\n";
@@ -325,10 +325,10 @@ class WikiToMarkdown {
$this->block_state = STATE_PREFORM;
}
else
- if (eregi("^\% ",$line) ) {
+ if (preg_match("/^\% /i",$line) ) {
// preformatted text - no processing
// MARKDOWN: this is MD code form of a paragraph
- $buffer = $buffer . " " . eregi_replace( "^\%","",$line) . "\n";
+ $buffer = $buffer . " " . preg_replace( "/^\%/i","",$line) . "\n";
$this->block_state = STATE_NOTIKI;
}
else {
diff --git a/lib/xmldb/README_MOODLE.txt b/lib/xmldb/README_MOODLE.txt
new file mode 100644
index 00000000000..bcbbf84648e
--- /dev/null
+++ b/lib/xmldb/README_MOODLE.txt
@@ -0,0 +1,19 @@
+18 Nov 2009
+Description of modifications to remove ereg related functions deprecated as of php 5.3. Patch below.
+
+Index: classes/XMLDBObject.class.php
+===================================================================
+RCS file: /cvsroot/moodle/moodle/lib/xmldb/classes/Attic/XMLDBObject.class.php,v
+retrieving revision 1.7.2.1
+diff -u -r1.7.2.1 XMLDBObject.class.php
+--- classes/XMLDBObject.class.php 15 Aug 2008 11:09:51 -0000 1.7.2.1
++++ classes/XMLDBObject.class.php 18 Nov 2009 06:55:49 -0000
+@@ -164,7 +164,7 @@
+ function checkName () {
+ $result = true;
+
+- if ($this->name != eregi_replace('[^a-z0-9_ -]', '', $this->name)) {
++ if ($this->name != preg_replace('/[^a-z0-9_ -]/i', '', $this->name)) {
+ $result = false;
+ }
+ return $result;
diff --git a/lib/xmldb/classes/XMLDBObject.class.php b/lib/xmldb/classes/XMLDBObject.class.php
index 914b34dc521..dfa66680fb5 100644
--- a/lib/xmldb/classes/XMLDBObject.class.php
+++ b/lib/xmldb/classes/XMLDBObject.class.php
@@ -164,7 +164,7 @@ class XMLDBObject {
function checkName () {
$result = true;
- if ($this->name != eregi_replace('[^a-z0-9_ -]', '', $this->name)) {
+ if ($this->name != preg_replace('/[^a-z0-9_ -]/i', '', $this->name)) {
$result = false;
}
return $result;
diff --git a/login/index.php b/login/index.php
index 72a36b9f424..e6dbf8114b7 100644
--- a/login/index.php
+++ b/login/index.php
@@ -109,7 +109,7 @@ httpsrequired();
$frm->username = trim(moodle_strtolower($frm->username));
if (is_enabled_auth('none') && empty($CFG->extendedusernamechars)) {
- $string = eregi_replace("[^(-\.[:alnum:])]", "", $frm->username);
+ $string = preg_replace("/[^(-\.[:alnum:])]/i", "", $frm->username);
if (strcmp($frm->username, $string)) {
$errormsg = get_string('username').': '.get_string("alphanumerical");
$errorcode = 2;
diff --git a/login/signup_form.php b/login/signup_form.php
index 9abc3f8ec4f..0e172515d6f 100644
--- a/login/signup_form.php
+++ b/login/signup_form.php
@@ -99,7 +99,7 @@ class login_signup_form extends moodleform {
$errors['username'] = get_string('usernameexists');
} else {
if (empty($CFG->extendedusernamechars)) {
- $string = eregi_replace("[^(-\.[:alnum:])]", '', $data['username']);
+ $string = preg_replace("/[^(-\.[:alnum:])]/i", '', $data['username']);
if (strcmp($data['username'], $string)) {
$errors['username'] = get_string('alphanumerical');
}
diff --git a/mnet/lib.php b/mnet/lib.php
index 7a0478eef0e..e6fc7f4d1a9 100644
--- a/mnet/lib.php
+++ b/mnet/lib.php
@@ -314,7 +314,7 @@ function mnet_generate_keypair($dn = null, $days=28) {
}
$host = strtolower($CFG->wwwroot);
- $host = ereg_replace("^http(s)?://",'',$host);
+ $host = preg_replace("#^http(s)?://#",'',$host);
$break = strpos($host.'/' , '/');
$host = substr($host, 0, $break);
diff --git a/mnet/xmlrpc/server.php b/mnet/xmlrpc/server.php
index a7cce24e644..c07d7714c96 100644
--- a/mnet/xmlrpc/server.php
+++ b/mnet/xmlrpc/server.php
@@ -321,7 +321,7 @@ function mnet_server_dummy_method($methodname, $argsarray, $functionname) {
if (!is_object($MNET_REMOTE_CLIENT->object_to_call)) {
return @call_user_func_array($functionname, $argsarray);
} else {
- return @call_user_method_array($functionname, $MNET_REMOTE_CLIENT->object_to_call, $argsarray);
+ return @call_user_func_array( array($MNET_REMOTE_CLIENT->object_to_call,$functionname), $argsarray);
}
}
diff --git a/mod/chat/chatd.php b/mod/chat/chatd.php
index ebd14a6523b..52630590b91 100755
--- a/mod/chat/chatd.php
+++ b/mod/chat/chatd.php
@@ -985,7 +985,7 @@ while(true) {
continue;
}
- if(!ereg('win=(chat|users|message|beep).*&chat_sid=([a-zA-Z0-9]*) HTTP', $data, $info)) {
+ if(!preg_match('/win=(chat|users|message|beep).*&chat_sid=([a-zA-Z0-9]*) HTTP/', $data, $info)) {
// Malformed data
$DAEMON->trace('UFO with '.$handle.': Request with malformed data; connection closed', E_USER_WARNING);
$DAEMON->dismiss_ufo($handle, true, 'Request with malformed data; connection closed');
@@ -1011,7 +1011,7 @@ while(true) {
break;
case 'beep':
$type = CHAT_SIDEKICK_BEEP;
- if(!ereg('beep=([^&]*)[& ]', $data, $info)) {
+ if(!preg_match('/beep=([^&]*)[& ]/', $data, $info)) {
$DAEMON->trace('Beep sidekick did not contain a valid userid', E_USER_WARNING);
$DAEMON->dismiss_ufo($handle, true, 'Request with malformed data; connection closed');
continue;
@@ -1022,7 +1022,7 @@ while(true) {
break;
case 'message':
$type = CHAT_SIDEKICK_MESSAGE;
- if(!ereg('chat_message=([^&]*)[& ]chat_msgidnr=([^&]*)[& ]', $data, $info)) {
+ if(!preg_match('/chat_message=([^&]*)[& ]chat_msgidnr=([^&]*)[& ]/', $data, $info)) {
$DAEMON->trace('Message sidekick did not contain a valid message', E_USER_WARNING);
$DAEMON->dismiss_ufo($handle, true, 'Request with malformed data; connection closed');
continue;
diff --git a/mod/lesson/format.php b/mod/lesson/format.php
index cc9abe48f01..1804ab98aaf 100644
--- a/mod/lesson/format.php
+++ b/mod/lesson/format.php
@@ -163,7 +163,7 @@ class qformat_default {
$filearray = file($filename);
/// Check for Macintosh OS line returns (ie file on one line), and fix
- if (ereg("\r", $filearray[0]) AND !ereg("\n", $filearray[0])) {
+ if (preg_match("/\r/", $filearray[0]) AND !preg_match("/\n/", $filearray[0])) {
return explode("\r", $filearray[0]);
} else {
return $filearray;
diff --git a/mod/lesson/reformat.php b/mod/lesson/reformat.php
index e13bc762078..f4f5279f7d2 100644
--- a/mod/lesson/reformat.php
+++ b/mod/lesson/reformat.php
@@ -13,7 +13,7 @@ function removedoublecr($filename) {
$filearray = file($filename);
/// Check for Macintosh OS line returns (ie file on one line), and fix
- if (ereg("\r", $filearray[0]) AND !ereg("\n", $filearray[0])) {
+ if (preg_match("#\r#", $filearray[0]) AND !preg_match("#\n#", $filearray[0])) {
$outfile = explode("\r", $filearray[0]);
} else {
$outfile = $filearray;
diff --git a/mod/scorm/datamodels/aicclib.php b/mod/scorm/datamodels/aicclib.php
index 64649883df5..7e5ff2a9a1e 100644
--- a/mod/scorm/datamodels/aicclib.php
+++ b/mod/scorm/datamodels/aicclib.php
@@ -281,7 +281,7 @@ function scorm_parse_aicc($pkgdir,$scormid) {
}
if (isset($element->core_vendor)) {
$scodata->name = 'datafromlms';
- $scodata->value = eregi_replace('', "\r\n", $element->core_vendor);
+ $scodata->value = preg_replace('//i', "\r\n", $element->core_vendor);
$dataid = insert_record('scorm_scoes_data',$scodata);
}
}
diff --git a/mod/scorm/locallib.php b/mod/scorm/locallib.php
index ea7085b34fc..bca5cac03cf 100755
--- a/mod/scorm/locallib.php
+++ b/mod/scorm/locallib.php
@@ -185,7 +185,7 @@ function scorm_tempdir($strPath)
$len = 8;
for ($i=0; $i<$len; $i++) {
$char = chr(rand(48,122));
- while (!ereg('[a-zA-Z0-9]', $char)){
+ while (!preg_match('/[a-zA-Z0-9]/', $char)){
if ($char == $lchar) continue;
$char = chr(rand(48,90));
}
diff --git a/mod/scorm/player.php b/mod/scorm/player.php
index 8fa96ad61ae..c22ac0b0bad 100755
--- a/mod/scorm/player.php
+++ b/mod/scorm/player.php
@@ -281,7 +281,7 @@
echo " \n";
} else {
// Clean the name for the window as IE is fussy
- $name = ereg_replace("[^A-Za-z0-9]", "", $scorm->name);
+ $name = preg_replace("/[^A-Za-z0-9]/", "", $scorm->name);
if (!$name) {
$name = 'DefaultPlayerWindow';
}
diff --git a/mod/wiki/ewiki/fragments/nuke_mod_wiki_index b/mod/wiki/ewiki/fragments/nuke_mod_wiki_index
index 56ffa243976..ab247ab931d 100644
--- a/mod/wiki/ewiki/fragments/nuke_mod_wiki_index
+++ b/mod/wiki/ewiki/fragments/nuke_mod_wiki_index
@@ -15,7 +15,7 @@
#-- stupid legacy code
-if (!eregi("modules.php", $PHP_SELF)) {
+if (!preg_match("/modules.php/i", $PHP_SELF)) {
die ("You can't access this file directly...");
}
diff --git a/mod/wiki/lib.php b/mod/wiki/lib.php
index 4b340637e75..77e6f82818c 100644
--- a/mod/wiki/lib.php
+++ b/mod/wiki/lib.php
@@ -1569,11 +1569,11 @@ function wiki_admin_checklinks($pagetocheck) {
}
/// Remove old Notices
- $content = eregi_replace(' µµ__~\['.get_string("offline","wiki").'\]__µµ ','', $content);
+ $content = preg_replace('/ µµ__~\['.get_string("offline","wiki").'\]__µµ /i','', $content);
#-- replace dead links
foreach ($badlinks as $href) {
- $content = preg_replace("\377^(.*)($href)\377m", '$1 µµ__~['.get_string("offline","wiki").']__µµ $2', $content);
+ $content = preg_replace("/\377^(.*)($href)\377m", '$1 µµ__~['.get_string("offline","wiki").']__µµ $2/', $content);
}
#-- compare against db content
diff --git a/pix/smartpix.php b/pix/smartpix.php
index 7deb186dcdd..3a7b1a2e815 100644
--- a/pix/smartpix.php
+++ b/pix/smartpix.php
@@ -21,10 +21,10 @@ function makesafe($param) {
$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);
}
// Nicked from weblib
diff --git a/question/format.php b/question/format.php
index 5b3bc959da7..70b1cda21c5 100644
--- a/question/format.php
+++ b/question/format.php
@@ -438,7 +438,7 @@ class qformat_default {
$filearray = file($filename);
/// Check for Macintosh OS line returns (ie file on one line), and fix
- if (ereg("\r", $filearray[0]) AND !ereg("\n", $filearray[0])) {
+ if (preg_match("/\r/", $filearray[0]) AND !preg_match("/\n/", $filearray[0])) {
return explode("\r", $filearray[0]);
} else {
return $filearray;
@@ -583,7 +583,7 @@ class qformat_default {
fclose( $fh );
// return the (possibly) new filename
- $newfile = ereg_replace("{$CFG->dataroot}/{$this->course->id}/", '',$newfullpath);
+ $newfile = preg_replace("#{$CFG->dataroot}/{$this->course->id}/#", '',$newfullpath);
return $newfile;
}
diff --git a/question/format/blackboard_6/format.php b/question/format/blackboard_6/format.php
index 69d0c19d9f7..ca3181a9e15 100644
--- a/question/format/blackboard_6/format.php
+++ b/question/format/blackboard_6/format.php
@@ -180,7 +180,7 @@ class qformat_blackboard_6 extends qformat_default {
if (is_readable($q_file)) {
$filearray = file($q_file);
/// Check for Macintosh OS line returns (ie file on one line), and fix
- if (ereg("\r", $filearray[0]) AND !ereg("\n", $filearray[0])) {
+ if (preg_match("/\r/", $filearray[0]) AND !preg_match("/\n/", $filearray[0])) {
return explode("\r", $filearray[0]);
} else {
return $filearray;
diff --git a/question/format/gift/format.php b/question/format/gift/format.php
index ce7a9a412a4..a32749a0679 100755
--- a/question/format/gift/format.php
+++ b/question/format/gift/format.php
@@ -119,7 +119,7 @@ class qformat_gift extends qformat_default {
$question = $this->defaultquestion();
$comment = NULL;
// define replaced by simple assignment, stop redefine notices
- $gift_answerweight_regex = "^%\-*([0-9]{1,2})\.?([0-9]*)%";
+ $gift_answerweight_regex = "/^%\-*([0-9]{1,2})\.?([0-9]*)%/";
// REMOVED COMMENTED LINES and IMPLODE
foreach ($lines as $key => $line) {
@@ -139,7 +139,7 @@ class qformat_gift extends qformat_default {
$text = $this->escapedchar_pre($text);
// Look for category modifier
- if (ereg( '^\$CATEGORY:', $text)) {
+ if (preg_match( '/^\$CATEGORY:/', $text)) {
// $newcategory = $matches[1];
$newcategory = trim(substr( $text, 10 ));
@@ -317,7 +317,7 @@ class qformat_gift extends qformat_default {
$answer_weight = 1;
$answer = substr($answer, 1);
- } elseif (ereg($gift_answerweight_regex, $answer)) { // check for properly formatted answer weight
+ } elseif (preg_match($gift_answerweight_regex, $answer)) { // check for properly formatted answer weight
$answer_weight = $this->answerweightparser($answer);
} else { //default, i.e., wrong anwer
@@ -408,7 +408,7 @@ class qformat_gift extends qformat_default {
$answer = trim($answer);
// Answer Weight
- if (ereg($gift_answerweight_regex, $answer)) { // check for properly formatted answer weight
+ if (preg_match($gift_answerweight_regex, $answer)) { // check for properly formatted answer weight
$answer_weight = $this->answerweightparser($answer);
} else { //default, i.e., full-credit anwer
$answer_weight = 1;
@@ -456,7 +456,7 @@ class qformat_gift extends qformat_default {
$answer = trim($answer);
// Answer weight
- if (ereg($gift_answerweight_regex, $answer)) { // check for properly formatted answer weight
+ if (preg_match($gift_answerweight_regex, $answer)) { // check for properly formatted answer weight
$answer_weight = $this->answerweightparser($answer);
} else { //default, i.e., full-credit anwer
$answer_weight = 1;
diff --git a/question/format/qti2/format.php b/question/format/qti2/format.php
index e6a9dc6f4ee..7131ea17467 100644
--- a/question/format/qti2/format.php
+++ b/question/format/qti2/format.php
@@ -33,8 +33,8 @@ class qformat_qti2 extends qformat_default {
// Remove all tabs.
$source = str_replace("\t", '', $source);
// Remove all space after ">" and before "<".
- $source = ereg_replace(">( )*", ">", $source);
- $source = ereg_replace("( )*<", "<", $source);
+ $source = preg_replace("/>( )*/", ">", $source);
+ $source = preg_replace("/( )*", "<", $source);
// Iterate through the source.
$level = 0;
diff --git a/question/format/webct/format.php b/question/format/webct/format.php
index 6557c9688f8..2657929b311 100644
--- a/question/format/webct/format.php
+++ b/question/format/webct/format.php
@@ -70,21 +70,21 @@ function qformat_webct_convert_formula($formula) {
$formula = str_replace(' ', '', $formula);
// Remove paranthesis after e,E and *10**:
- while (ereg('[0-9.](e|E|\\*10\\*\\*)\\([+-]?[0-9]+\\)', $formula, $regs)) {
+ while (preg_match('/[0-9.](e|E|\\*10\\*\\*)\\([+-]?[0-9]+\\)/', $formula, $regs)) {
$formula = str_replace(
- $regs[0], ereg_replace('[)(]', '', $regs[0]), $formula);
+ $regs[0], preg_replace('/[)(]/', '', $regs[0]), $formula);
}
// Replace *10** with e where possible
- while (ereg(
- '(^[+-]?|[^eE][+-]|[^0-9eE+-])[0-9.]+\\*10\\*\\*[+-]?[0-9]+([^0-9.eE]|$)',
+ while (preg_match(
+ '/(^[+-]?|[^eE][+-]|[^0-9eE+-])[0-9.]+\\*10\\*\\*[+-]?[0-9]+([^0-9.eE]|$)/',
$formula, $regs)) {
$formula = str_replace(
$regs[0], str_replace('*10**', 'e', $regs[0]), $formula);
}
// Replace other 10** with 1e where possible
- while (ereg('(^|[^0-9.eE])10\\*\\*[+-]?[0-9]+([^0-9.eE]|$)', $formula, $regs)) {
+ while (preg_match('/(^|[^0-9.eE])10\\*\\*[+-]?[0-9]+([^0-9.eE]|$)/', $formula, $regs)) {
$formula = str_replace(
$regs[0], str_replace('10**', '1e', $regs[0]), $formula);
}
@@ -94,17 +94,17 @@ function qformat_webct_convert_formula($formula) {
while (2 == count($splits = explode('**', $formula, 2))) {
// Find $base
- if (ereg('^(.*[^0-9.eE])?(([0-9]+(\\.[0-9]*)?|\\.[0-9]+)([eE][+-]?[0-9]+)?|\\{[^}]*\\})$',
+ if (preg_match('/^(.*[^0-9.eE])?(([0-9]+(\\.[0-9]*)?|\\.[0-9]+)([eE][+-]?[0-9]+)?|\\{[^}]*\\})$/',
$splits[0], $regs)) {
// The simple cases
$base = $regs[2];
$splits[0] = $regs[1];
- } else if (ereg('\\)$', $splits[0])) {
+ } else if (preg_match('/\\)$/', $splits[0])) {
// Find the start of this parenthesis
$deep = 1;
for ($i = 1 ; $deep ; ++$i) {
- if (!ereg('^(.*[^[:alnum:]_])?([[:alnum:]_]*([)(])([^)(]*[)(]){'.$i.'})$',
+ if (!preg_match('/^(.*[^[:alnum:]_])?([[:alnum:]_]*([)(])([^)(]*[)(]){'.$i.'})$/',
$splits[0], $regs)) {
error("Parenthesis before ** is not properly started in $splits[0]**");
}
@@ -124,17 +124,17 @@ function qformat_webct_convert_formula($formula) {
}
// Find $exp (similar to above but a little easier)
- if (ereg('^([+-]?(\\{[^}]\\}|([0-9]+(\\.[0-9]*)?|\\.[0-9]+)([eE][+-]?[0-9]+)?))(.*)',
+ if (preg_match('/^([+-]?(\\{[^}]\\}|([0-9]+(\\.[0-9]*)?|\\.[0-9]+)([eE][+-]?[0-9]+)?))(.*)/',
$splits[1], $regs)) {
// The simple case
$exp = $regs[1];
$splits[1] = $regs[6];
- } else if (ereg('^[+-]?[[:alnum:]_]*\\(', $splits[1])) {
+ } else if (preg_match('/^[+-]?[[:alnum:]_]*\\(/', $splits[1])) {
// Find the end of the parenthesis
$deep = 1;
for ($i = 1 ; $deep ; ++$i) {
- if (!ereg('^([+-]?[[:alnum:]_]*([)(][^)(]*){'.$i.'}([)(]))(.*)',
+ if (!preg_match('/^([+-]?[[:alnum:]_]*([)(][^)(]*){'.$i.'}([)(]))(.*)/',
$splits[1], $regs)) {
error("Parenthesis after ** is not properly closed in **$splits[1]");
}
@@ -190,7 +190,7 @@ class qformat_webct extends qformat_default {
// Processing multiples lines strings
if (isset($questiontext) and is_string($questiontext)) {
- if (ereg("^:",$line)) {
+ if (preg_match("/^:/",$line)) {
$question->questiontext = addslashes(trim($questiontext));
unset($questiontext);
}
@@ -201,7 +201,7 @@ class qformat_webct extends qformat_default {
}
if (isset($answertext) and is_string($answertext)) {
- if (ereg("^:",$line)) {
+ if (preg_match("/^:/",$line)) {
$answertext = addslashes(trim($answertext));
$question->answer[$currentchoice] = $answertext;
$question->subanswers[$currentchoice] = $answertext;
@@ -214,7 +214,7 @@ class qformat_webct extends qformat_default {
}
if (isset($responsetext) and is_string($responsetext)) {
- if (ereg("^:",$line)) {
+ if (preg_match("/^:/",$line)) {
$question->subquestions[$currentchoice] = addslashes(trim($responsetext));
unset($responsetext);
}
@@ -225,7 +225,7 @@ class qformat_webct extends qformat_default {
}
if (isset($feedbacktext) and is_string($feedbacktext)) {
- if (ereg("^:",$line)) {
+ if (preg_match("/^:/",$line)) {
$question->feedback[$currentchoice] = addslashes(trim($feedbacktext));
unset($feedbacktext);
}
@@ -236,7 +236,7 @@ class qformat_webct extends qformat_default {
}
if (isset($generalfeedbacktext) and is_string($generalfeedbacktext)) {
- if (ereg("^:",$line)) {
+ if (preg_match("/^:/",$line)) {
$question->tempgeneralfeedback= addslashes(trim($generalfeedbacktext));
unset($generalfeedbacktext);
}
@@ -248,7 +248,7 @@ class qformat_webct extends qformat_default {
$line = trim($line);
- if (eregi("^:(TYPE|EOF):",$line)) {
+ if (preg_match("/^:(TYPE|EOF):/i",$line)) {
// New Question or End of File
if (isset($question)) { // if previous question exists, complete, check and save it
@@ -382,7 +382,7 @@ class qformat_webct extends qformat_default {
// Processing Question Header
- if (eregi("^:TYPE:MC:1(.*)",$line,$webct_options)) {
+ if (preg_match("/^:TYPE:MC:1(.*)/i",$line,$webct_options)) {
// Multiple Choice Question with only one good answer
$question = $this->defaultquestion();
$question->feedback = array();
@@ -392,7 +392,7 @@ class qformat_webct extends qformat_default {
continue;
}
- if (eregi("^:TYPE:MC:N(.*)",$line,$webct_options)) {
+ if (preg_match("/^:TYPE:MC:N(.*)/i",$line,$webct_options)) {
// Multiple Choice Question with several good answers
$question = $this->defaultquestion();
$question->feedback = array();
@@ -402,7 +402,7 @@ class qformat_webct extends qformat_default {
continue;
}
- if (eregi("^:TYPE:S",$line)) {
+ if (preg_match("/^:TYPE:S/i",$line)) {
// Short Answer Question
$question = $this->defaultquestion();
$question->feedback = array();
@@ -412,7 +412,7 @@ class qformat_webct extends qformat_default {
continue;
}
- if (eregi("^:TYPE:C",$line)) {
+ if (preg_match("/^:TYPE:C/i",$line)) {
// Calculated Question
/* $warnings[] = get_string("calculatedquestion", "quiz", $nLineCounter);
unset($question);
@@ -434,7 +434,7 @@ class qformat_webct extends qformat_default {
continue;
}
- if (eregi("^:TYPE:M",$line)) {
+ if (preg_match("/^:TYPE:M/i",$line)) {
// Match Question
$question = $this->defaultquestion();
$question->qtype = MATCH;
@@ -443,7 +443,7 @@ class qformat_webct extends qformat_default {
continue;
}
- if (eregi("^:TYPE:P",$line)) {
+ if (preg_match("/^:TYPE:P/i",$line)) {
// Paragraph Question
$warnings[] = get_string("paragraphquestion", "quiz", $nLineCounter);
unset($question);
@@ -451,7 +451,7 @@ class qformat_webct extends qformat_default {
continue;
}
- if (eregi("^:TYPE:",$line)) {
+ if (preg_match("/^:TYPE:/i",$line)) {
// Unknow Question
$warnings[] = get_string("unknowntype", "quiz", $nLineCounter);
unset($question);
@@ -463,7 +463,7 @@ class qformat_webct extends qformat_default {
continue;
}
- if (eregi("^:TITLE:(.*)",$line,$webct_options)) {
+ if (preg_match("/^:TITLE:(.*)/i",$line,$webct_options)) {
$name = trim($webct_options[1]);
if (strlen($name) > 255) {
$name = substr($name,0,250)."...";
@@ -473,9 +473,9 @@ class qformat_webct extends qformat_default {
continue;
}
- if (eregi("^:IMAGE:(.*)",$line,$webct_options)) {
+ if (preg_match("/^:IMAGE:(.*)/",$line,$webct_options)) {
$filename = trim($webct_options[1]);
- if (eregi("^http://",$filename)) {
+ if (preg_match("#^http://#",$filename)) {
$question->image = $filename;
}
continue;
@@ -486,9 +486,9 @@ class qformat_webct extends qformat_default {
if (!isset($question)) {
continue;
}
- if (isset($question->qtype ) && CALCULATED == $question->qtype && ereg(
- "^:([[:lower:]].*|::.*)-(MIN|MAX|DEC|VAL([0-9]+))::?:?($webctnumberregex)", $line, $webct_options)) {
- $datasetname = ereg_replace('^::', '', $webct_options[1]);
+ if (isset($question->qtype ) && CALCULATED == $question->qtype && preg_match(
+ "/^:([[:lower:]].*|::.*)-(MIN|MAX|DEC|VAL([0-9]+))::?:?($webctnumberregex)/", $line, $webct_options)) {
+ $datasetname = preg_replace('/^::/', '', $webct_options[1]);
$datasetvalue = qformat_webct_convert_formula($webct_options[4]);
switch ($webct_options[2]) {
case 'MIN':
@@ -512,27 +512,27 @@ class qformat_webct extends qformat_default {
}
- $bIsHTMLText = eregi(":H$",$line); // True if next lines are coded in HTML
- if (eregi("^:QUESTION",$line)) {
+ $bIsHTMLText = preg_match("/:H$/",$line); // True if next lines are coded in HTML
+ if (preg_match("/^:QUESTION/",$line)) {
$questiontext=""; // Start gathering next lines
continue;
}
- if (eregi("^:ANSWER([0-9]+):([^:]+):([0-9\.\-]+):(.*)",$line,$webct_options)) { /// SHORTANSWER
+ if (preg_match("/^:ANSWER([0-9]+):([^:]+):([0-9\.\-]+):(.*)/i",$line,$webct_options)) { /// SHORTANSWER
$currentchoice=$webct_options[1];
$answertext=$webct_options[2]; // Start gathering next lines
$question->fraction[$currentchoice]=($webct_options[3]/100);
continue;
}
- if (eregi("^:ANSWER([0-9]+):([0-9\.\-]+)",$line,$webct_options)) {
+ if (preg_match("/^:ANSWER([0-9]+):([0-9\.\-]+)/i",$line,$webct_options)) {
$answertext=""; // Start gathering next lines
$currentchoice=$webct_options[1];
$question->fraction[$currentchoice]=($webct_options[2]/100);
continue;
}
- if (eregi('^:FORMULA:(.*)', $line, $webct_options)) {
+ if (preg_match('/^:FORMULA:(.*)/i', $line, $webct_options)) {
// Answer for a CALCULATED question
++$currentchoice;
$question->answers[$currentchoice] =
@@ -556,60 +556,60 @@ class qformat_webct extends qformat_default {
continue;
}
- if (eregi("^:L([0-9]+)",$line,$webct_options)) {
+ if (preg_match("/^:L([0-9]+)/i",$line,$webct_options)) {
$answertext=""; // Start gathering next lines
$currentchoice=$webct_options[1];
$question->fraction[$currentchoice]=1;
continue;
}
- if (eregi("^:R([0-9]+)",$line,$webct_options)) {
+ if (preg_match("/^:R([0-9]+)/i",$line,$webct_options)) {
$responsetext=""; // Start gathering next lines
$currentchoice=$webct_options[1];
continue;
}
- if (eregi("^:REASON([0-9]+):?",$line,$webct_options)) {
+ if (preg_match("/^:REASON([0-9]+):?/i",$line,$webct_options)) {
$feedbacktext=""; // Start gathering next lines
$currentchoice=$webct_options[1];
continue;
}
- if (eregi("^:FEEDBACK([0-9]+):?",$line,$webct_options)) {
+ if (preg_match("/^:FEEDBACK([0-9]+):?/i",$line,$webct_options)) {
$generalfeedbacktext=""; // Start gathering next lines
$currentchoice=$webct_options[1];
continue;
}
- if (eregi('^:FEEDBACK:(.*)',$line,$webct_options)) {
+ if (preg_match('/^:FEEDBACK:(.*)/i',$line,$webct_options)) {
$generalfeedbacktext=""; // Start gathering next lines
continue;
}
- if (eregi('^:LAYOUT:(.*)',$line,$webct_options)) {
+ if (preg_match('/^:LAYOUT:(.*)/i',$line,$webct_options)) {
// ignore since layout in question_multichoice is no more used in moodle
// $webct_options[1] contains either vertical or horizontal ;
continue;
}
- if (isset($question->qtype ) && CALCULATED == $question->qtype && eregi('^:ANS-DEC:([1-9][0-9]*)', $line, $webct_options)) {
+ if (isset($question->qtype ) && CALCULATED == $question->qtype && preg_match('/^:ANS-DEC:([1-9][0-9]*)/i', $line, $webct_options)) {
// We can but hope that this always appear before the ANSTYPE property
$question->correctanswerlength[$currentchoice] = $webct_options[1];
continue;
}
- if (isset($question->qtype )&& CALCULATED == $question->qtype && eregi("^:TOL:($webctnumberregex)", $line, $webct_options)) {
+ if (isset($question->qtype )&& CALCULATED == $question->qtype && preg_match("/^:TOL:($webctnumberregex)/i", $line, $webct_options)) {
// We can but hope that this always appear before the TOL property
$question->tolerance[$currentchoice] =
qformat_webct_convert_formula($webct_options[1]);
continue;
}
- if (isset($question->qtype )&& CALCULATED == $question->qtype && eregi('^:TOLTYPE:percent', $line)) {
+ if (isset($question->qtype )&& CALCULATED == $question->qtype && preg_match('/^:TOLTYPE:percent/', $line)) {
// Percentage case is handled as relative in Moodle:
$question->tolerance[$currentchoice] /= 100;
$question->tolerancetype[$currentchoice] = 1; // Relative
continue;
}
- if (eregi('^:UNITS:(.+)', $line, $webct_options)
+ if (preg_match('/^:UNITS:(.+)/', $line, $webct_options)
and $webctunits = trim($webct_options[1])) {
// This is a guess - I really do not know how different webct units are separated...
$webctunits = explode(':', $webctunits);
@@ -621,7 +621,7 @@ class qformat_webct extends qformat_default {
continue;
}
- if (!empty($question->units) && eregi('^:UNITREQ:(.*)', $line, $webct_options)
+ if (!empty($question->units) && preg_match('/^:UNITREQ:(.*)/', $line, $webct_options)
&& !$webct_options[1]) {
// There are units but units are not required so add the no unit alternative
// We can but hope that the UNITS property always appear before this property
@@ -631,17 +631,17 @@ class qformat_webct extends qformat_default {
continue;
}
- if (!empty($question->units) && eregi('^:UNITCASE:', $line)) {
+ if (!empty($question->units) && preg_match('/^:UNITCASE:/', $line)) {
// This could be important but I was not able to figure out how
// it works so I ignore it for now
continue;
}
- if (isset($question->qtype )&& CALCULATED == $question->qtype && eregi('^:ANSTYPE:dec', $line)) {
+ if (isset($question->qtype )&& CALCULATED == $question->qtype && preg_match('/^:ANSTYPE:dec/', $line)) {
$question->correctanswerformat[$currentchoice]='1';
continue;
}
- if (isset($question->qtype )&& CALCULATED == $question->qtype && eregi('^:ANSTYPE:sig', $line)) {
+ if (isset($question->qtype )&& CALCULATED == $question->qtype && preg_match('/^:ANSTYPE:sig/', $line)) {
$question->correctanswerformat[$currentchoice]='2';
continue;
}
diff --git a/question/format/xml/format.php b/question/format/xml/format.php
index b6f4b79c519..4a1590c51fe 100755
--- a/question/format/xml/format.php
+++ b/question/format/xml/format.php
@@ -921,9 +921,9 @@ class qformat_xml extends qformat_default {
case MULTIANSWER:
$a_count=1;
foreach($question->options->questions as $question) {
- $thispattern = addslashes("{#".$a_count."}");
+ $thispattern = '/'.addslashes("{#".$a_count."}").'/';
$thisreplace = $question->questiontext;
- $expout=ereg_replace($thispattern, $thisreplace, $expout );
+ $expout=preg_replace($thispattern, $thisreplace, $expout );
$a_count++;
}
break;
diff --git a/question/type/calculated/edit_calculated_form.php b/question/type/calculated/edit_calculated_form.php
index a8cb8332df1..bb667befcae 100644
--- a/question/type/calculated/edit_calculated_form.php
+++ b/question/type/calculated/edit_calculated_form.php
@@ -170,7 +170,7 @@ class question_edit_calculated_form extends question_edit_form {
$qtextremaining = str_replace('{'.$name.'}', '1', $qtextremaining);
}
// echo "numericalquestion qtextremaining ";print_r($possibledatasets);
- while (ereg('\{=([^[:space:]}]*)}', $qtextremaining, $regs1)) {
+ while (preg_match('/\{=([^[:space:]}]*)}/', $qtextremaining, $regs1)) {
$qtextsplits = explode($regs1[0], $qtextremaining, 2);
$qtext =$qtext.$qtextsplits[0];
$qtextremaining = $qtextsplits[1];
diff --git a/question/type/calculated/questiontype.php b/question/type/calculated/questiontype.php
index cbe0545320b..10b69f6b1d1 100644
--- a/question/type/calculated/questiontype.php
+++ b/question/type/calculated/questiontype.php
@@ -382,7 +382,7 @@ class question_calculated_qtype extends question_dataset_dependent_questiontype
//evaluate the equations i.e {=5+4)
$qtext = "";
$qtextremaining = $numericalquestion->questiontext ;
- while (ereg('\{=([^[:space:]}]*)}', $qtextremaining, $regs1)) {
+ while (preg_match('/\{=([^[:space:]}]*)}/', $qtextremaining, $regs1)) {
$qtextsplits = explode($regs1[0], $qtextremaining, 2);
$qtext =$qtext.$qtextsplits[0];
$qtextremaining = $qtextsplits[1];
@@ -501,7 +501,7 @@ class question_calculated_qtype extends question_dataset_dependent_questiontype
function custom_generator_set_data($datasetdefs, $formdata){
$idx = 1;
foreach ($datasetdefs as $datasetdef){
- if (ereg('^(uniform|loguniform):([^:]*):([^:]*):([0-9]*)$', $datasetdef->options, $regs)) {
+ if (preg_match('/^(uniform|loguniform):([^:]*):([^:]*):([0-9]*)$/', $datasetdef->options, $regs)) {
$defid = "$datasetdef->type-$datasetdef->category-$datasetdef->name";
$formdata["calcdistribution[$idx]"] = $regs[1];
$formdata["calcmin[$idx]"] = $regs[2];
@@ -514,7 +514,7 @@ class question_calculated_qtype extends question_dataset_dependent_questiontype
}
function custom_generator_tools($datasetdef) {
- if (ereg('^(uniform|loguniform):([^:]*):([^:]*):([0-9]*)$',
+ if (preg_match('/^(uniform|loguniform):([^:]*):([^:]*):([0-9]*)$/',
$datasetdef->options, $regs)) {
$defid = "$datasetdef->type-$datasetdef->category-$datasetdef->name";
for ($i = 0 ; $i<10 ; ++$i) {
@@ -723,7 +723,7 @@ class question_calculated_qtype extends question_dataset_dependent_questiontype
}
function generate_dataset_item($options) {
- if (!ereg('^(uniform|loguniform):([^:]*):([^:]*):([0-9]*)$',
+ if (!preg_match('/^(uniform|loguniform):([^:]*):([^:]*):([0-9]*)$/',
$options, $regs)) {
// Unknown options...
return false;
@@ -825,7 +825,7 @@ class question_calculated_qtype extends question_dataset_dependent_questiontype
// list($options, $selected) = $this->dataset_optionsa($form, $name);
foreach ($options as $key => $whatever) {
- if (!ereg('^'.LITERAL.'-', $key) && $key != '0') {
+ if (!preg_match('/^'.LITERAL.'-/', $key) && $key != '0') {
unset($options[$key]);
}
}
@@ -1173,7 +1173,7 @@ function qtype_calculated_calculate_answer($formula, $individualdata,
if ($answerlength) {
/* Try to include missing zeros at the end */
- if (ereg('^(.*\\.)(.*)$', $calculated->answer, $regs)) {
+ if (preg_match('/^(.*\\.)(.*)$/', $calculated->answer, $regs)) {
$calculated->answer = $regs[1] . substr(
$regs[2] . '00000000000000000000000000000000000000000x',
0, $answerlength)
@@ -1233,7 +1233,7 @@ function qtype_calculated_calculate_answer($formula, $individualdata,
$calculated->answer = $sign.$answer.$unit;
} else {
// Could be an idea to add some zeros here
- $answer .= (ereg('^[0-9]*$', $answer) ? '.' : '')
+ $answer .= (preg_match('/^[0-9]*$/', $answer) ? '.' : '')
. '00000000000000000000000000000000000000000x';
$oklen = $answerlength + ($p10 < 1 ? 2-$p10 : 1);
$calculated->answer = $sign.substr($answer, 0, $oklen).$unit;
@@ -1254,7 +1254,7 @@ function qtype_calculated_find_formula_errors($formula) {
/// Returns false if everything is alright.
/// Otherwise it constructs an error message
// Strip away dataset names
- while (ereg('\\{[[:alpha:]][^>} <{"\']*\\}', $formula, $regs)) {
+ while (preg_match('/\\{[[:alpha:]][^>} <{"\']*\\}/', $formula, $regs)) {
$formula = str_replace($regs[0], '1', $formula);
}
@@ -1265,7 +1265,7 @@ function qtype_calculated_find_formula_errors($formula) {
$operatorornumber = "[$safeoperatorchar.0-9eE]";
- while (ereg("(^|[$safeoperatorchar,(])([a-z0-9_]*)\\(($operatorornumber+(,$operatorornumber+((,$operatorornumber+)+)?)?)?\\)",
+ while (preg_match("/(^|[$safeoperatorchar,(])([a-z0-9_]*)\\(($operatorornumber+(,$operatorornumber+((,$operatorornumber+)+)?)?)?\\)/",
$formula, $regs)) {
switch ($regs[2]) {
@@ -1328,11 +1328,11 @@ function qtype_calculated_find_formula_errors($formula) {
$formula = str_replace($regs[0], $regs[1] . '1', $formula);
} else {
// The function call starts the formula
- $formula = ereg_replace("^$regs[2]\\([^)]*\\)", '1', $formula);
+ $formula = preg_replace("/^$regs[2]\\([^)]*\\)/", '1', $formula);
}
}
- if (ereg("[^$safeoperatorchar.0-9eE]+", $formula, $regs)) {
+ if (preg_match("/[^$safeoperatorchar.0-9eE]+/", $formula, $regs)) {
return get_string('illegalformulasyntax', 'quiz', $regs[0]);
} else {
// Formula just might be valid
diff --git a/question/type/datasetdependent/abstractqtype.php b/question/type/datasetdependent/abstractqtype.php
index c43eaeebfbf..f35fac618bd 100644
--- a/question/type/datasetdependent/abstractqtype.php
+++ b/question/type/datasetdependent/abstractqtype.php
@@ -49,7 +49,7 @@ class question_dataset_dependent_questiontype extends default_questiontype {
}
function restore_session_and_responses(&$question, &$state) {
- if (!ereg('^dataset([0-9]+)[^-]*-(.*)$',
+ if (!preg_match('/^dataset([0-9]+)[^-]*-(.*)$/',
$state->responses[''], $regs)) {
notify ("Wrongly formatted raw response answer " .
"{$state->responses['']}! Could not restore session for " .
@@ -732,7 +732,7 @@ class question_dataset_dependent_questiontype extends default_questiontype {
/// Returns the possible dataset names found in the text as an array
/// The array has the dataset name for both key and value
$datasetnames = array();
- while (ereg('\\{([[:alpha:]][^>} <{"\']*)\\}', $text, $regs)) {
+ while (preg_match('/\\{([[:alpha:]][^>} <{"\']*)\\}/', $text, $regs)) {
$datasetnames[$regs[1]] = $regs[1];
$text = str_replace($regs[0], '', $text);
}
@@ -740,7 +740,7 @@ class question_dataset_dependent_questiontype extends default_questiontype {
}
function create_virtual_nameprefix($nameprefix, $datasetinput) {
- if (!ereg('([0-9]+)' . $this->name() . '$', $nameprefix, $regs)) {
+ if (!preg_match('/([0-9]+)/' . $this->name() . '$', $nameprefix, $regs)) {
error("Wrongly formatted nameprefix $nameprefix");
}
$virtualqtype = $this->get_virtual_qtype();
diff --git a/question/type/multianswer/questiontype.php b/question/type/multianswer/questiontype.php
index eb97766feb5..90ac1c578f3 100644
--- a/question/type/multianswer/questiontype.php
+++ b/question/type/multianswer/questiontype.php
@@ -266,7 +266,7 @@ class embedded_cloze_qtype extends default_questiontype {
// The regex will recognize text snippets of type {#X}
// where the X can be any text not containg } or white-space characters.
- while (ereg('\{#([^[:space:]}]*)}', $qtextremaining, $regs)) {
+ while (preg_match('/\{#([^[:space:]}]*)}/', $qtextremaining, $regs)) {
$qtextsplits = explode($regs[0], $qtextremaining, 2);
echo $qtextsplits[0];
echo "