$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 {
$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;
}
$bulknurl = $CFG->wwwroot.'/'.$CFG->admin.'/user/user_bulk.php';
// array of all valid fields for validation
-$STD_FIELDS = array('id', 'firstname', 'lastname', 'username', 'email',
- 'city', 'country', 'lang', 'auth', 'timezone', 'mailformat',
- 'maildisplay', 'maildigest', 'htmleditor', 'ajax', 'autosubscribe',
- 'mnethostid', 'institution', 'department', 'idnumber', 'skype',
- 'msn', 'aim', 'yahoo', 'icq', 'phone1', 'phone2', 'address',
- 'url', 'description', 'oldusername', 'emailstop', 'deleted',
+$STD_FIELDS = array('id', 'firstname', 'lastname', 'username', 'email',
+ 'city', 'country', 'lang', 'auth', 'timezone', 'mailformat',
+ 'maildisplay', 'maildigest', 'htmleditor', 'ajax', 'autosubscribe',
+ 'mnethostid', 'institution', 'department', 'idnumber', 'skype',
+ 'msn', 'aim', 'yahoo', 'icq', 'phone1', 'phone2', 'address',
+ 'url', 'description', 'oldusername', 'emailstop', 'deleted',
'password');
$PRF_FIELDS = array();
// 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');
return $choices;
}
-?>
\ No newline at end of file
+?>
} 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;
}
}
$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&', 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&', 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&', 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&', 1, $data['m'], $data['y']).'">\\1</a>', $text);
*/
// Replace with actual values and lose any day leading zero
$text = userdate($time, $text);
private 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));
$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;
}
*/
if (isset($_REQUEST['lang'])) {
- $lang = eregi_replace('[^A-Za-z0-9_-]', '', $_REQUEST['lang']);
+ $lang = preg_replace('/[^A-Za-z0-9_-]/i', '', $_REQUEST['lang']);
} else {
$lang = 'en_utf8';
}
if (isset($_REQUEST['admin'])) {
- $admin = eregi_replace('[^A-Za-z0-9_-]', '', $_REQUEST['admin']);
+ $admin = preg_replace('/[^A-Za-z0-9_-]/i', '', $_REQUEST['admin']);
} else {
$admin = 'admin';
}
return (float)$param; // Convert to float
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_ALPHAEXT: // Remove everything not a-zA-Z_- (originally allowed "/" too)
- 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_ALPHANUMEXT: // 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_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);
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_SAFEPATH: // 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_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);
if ($param === '.') {
$param = '';
}
case PARAM_PATH: // Strip all suspicious characters from file path
$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
//problem, so remove *all* backslash.
//$param = str_replace('\\', '', $param);
//remove some nasties
- $param = ereg_replace('[[:cntrl:]]|[<>`]', '', $param);
+ $param = preg_replace('~[[:cntrl:]]|[<>`]~', '', $param);
//convert many whitespace chars into one
$param = preg_replace('/\s+/', ' ', $param);
$textlib = textlib_get_instance();
}
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 {
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)");
}
$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);
}
return true;
}
-?>
\ No newline at end of file
+?>
function test_s() {
$this->assertEqual(s("This Breaks \" Strict"), "This Breaks " Strict");
+ $this->assertEqual(s("This Breaks <a>\" Strict</a>"), "This Breaks <a>" Strict</a>");
}
function test_format_text_email() {
$this->assertEqual(highlight('+good', 'This is goodness'), 'This is goodness');
$this->assertEqual(highlight('good', 'This is goodness'), 'This is <span class="highlight">good</span>ness');
}
+
+ function test_replace_ampersands() {
+ $this->assertEqual(replace_ampersands_not_followed_by_entity("This & that "), "This & that ");
+ $this->assertEqual(replace_ampersands_not_followed_by_entity("This   that "), "This &nbsp that ");
+ }
}
?>
}
// First replace all ampersands not followed by html entity code
- $string = preg_replace("/\&(?![a-zA-Z0-9#]{1,8};)/", "&", $string);
+ // Regular expression moved to its own method for easier unit testing
+ $string = replace_ampersands_not_followed_by_entity($string);
if (!empty($CFG->filterall) && $CFG->version >= 2009040600) { // Avoid errors during the upgrade to the new system.
$context = $PAGE->context;
return $string;
}
+/**
+ * Given a string, performs a negative lookahead looking for any ampersand character
+ * that is not followed by a proper HTML entity. If any is found, it is replaced
+ * by &. The string is then returned.
+ *
+ * @param string $string
+ * @return string
+ */
+function replace_ampersands_not_followed_by_entity($string) {
+ return preg_replace("/\&(?![a-zA-Z0-9#]{1,8};)/", "&", $string);
+}
+
/**
* Given text in a variety of format codings, this function returns
* the text as plain text suitable for plain email.
$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('(<a [^<]*href=["|\']?([^ "\']*)["|\']?[^>]*>([^<]*)</a>)','\\3 [ \\2 ]', $text);
+ $text = preg_replace('~(<a [^<]*href=["|\']?([^ "\']*)["|\']?[^>]*>([^<]*)</a>)~i','$3 [ $2 ]', $text);
return strtr(strip_tags($text), array_flip(get_html_translation_table(HTML_ENTITIES)));
break;
case FORMAT_MOODLE:
case FORMAT_MARKDOWN:
default:
- $text = eregi_replace('(<a [^<]*href=["|\']?([^ "\']*)["|\']?[^>]*>([^<]*)</a>)','\\3 [ \\2 ]', $text);
+ $text = preg_replace('~(<a [^<]*href=["|\']?([^ "\']*)["|\']?[^>]*>([^<]*)</a>)~i','$3 [ $2 ]', $text);
return strtr(strip_tags($text), array_flip(get_html_translation_table(HTML_ENTITIES)));
break;
}
}
/// 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;
}
global $CFG;
/// Remove any whitespace that may be between HTML tags
- $text = eregi_replace(">([[:space:]]+)<", "><", $text);
+ $text = preg_replace("~>([[:space:]]+)<~i", "><", $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])<~i", " <", $text);
+ $text = preg_replace("~>([\n\r])~i", "> ", $text);
convert_urls_into_links($text);
*/
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<a href=\"\\2://\\3\\4\" target=\"_blank\">\\2://\\3\\4</a>", $text);
/// eg www.moodle.com
- $text = eregi_replace("([[:space:]]|^|\(|\[)www\.([^[:space:]]*)([[:alnum:]#?/&=])",
+ $text = preg_replace("~([[:space:]]|^|\(|\[)www\.([^[:space:]]*)([[:alnum:]#?/&=])~i",
"\\1<a href=\"http://www.\\2\\3\" target=\"_blank\">www.\\2\\3</a>", $text);
}
$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;
if (signup_captcha_enabled()) {
$mform->addElement('recaptcha', 'recaptcha_element', get_string('recaptcha', 'auth'), array('https' => $CFG->loginhttps));
- $mform->setHelpButton('recaptcha_element', array('recaptcha', get_string('recaptcha', 'auth')));
+ $mform->setHelpButton('recaptcha_element', array('recaptcha', get_string('recaptcha', 'auth')));
}
profile_signup_fields($mform);
$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');
}
}
$host = strtolower($CFG->wwwroot);
- $host = ereg_replace("^http(s)?://",'',$host);
+ $host = preg_replace("~^http(s)?://~",'',$host);
$break = strpos($host.'/' , '/');
$host = substr($host, 0, $break);
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');
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;
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;
$printnr = '';
}
$itemobj->print_analysed($item, $printnr, $mygroupid, $coursefilter);
- if (eregi('rated$', $item->typ)) {
+ if (preg_match('/rated$/i', $item->typ)) {
echo '<tr><td colspan="2"><a href="#" onclick="setcourseitemfilter('.$item->id.',\''.$item->typ.'\'); return false;">'.
get_string('sort_by_course', 'feedback').'</a></td></tr>';
}
$errcount = 0;
foreach($keys as $key){
//ensure the keys are what we want
- if(eregi('([a-z0-9]{1,})_([0-9]{1,})',$key)){
+ if(preg_match('/([a-z0-9]{1,})_([0-9]{1,})/i',$key)){
$value = new object();
$itemnr = explode('_', $key);
$value->item = intval($itemnr[1]);
$keys = array_keys($data);
foreach($keys as $key){
//ensure the keys are what we want
- if(eregi('([a-z0-9]{1,})_([0-9]{1,})',$key)){
+ if(preg_match('/([a-z0-9]{1,})_([0-9]{1,})/i',$key)){
//build the new value to update([id], item, completed, value)
$itemnr = explode('_', $key);
$newvalue = new object();
$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;
$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;
}
if (isset($element->core_vendor)) {
$scodata->name = 'datafromlms';
- $scodata->value = eregi_replace('<cr>', "\r\n", $element->core_vendor);
+ $scodata->value = preg_replace('/<cr>/i', "\r\n", $element->core_vendor);
$dataid = $DB->insert_record('scorm_scoes_data',$scodata);
}
}
echo " <iframe id=\"scoframe1\" class=\"scoframe\" name=\"scoframe1\" src=\"{$fullurl}\"></iframe>\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';
}
</div> <!-- SCORM object -->
</div> <!-- SCORM box -->
</div> <!-- SCORM page -->
-<?php print_footer('none'); ?>
\ No newline at end of file
+<?php print_footer('none'); ?>
}
/// 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) {
$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
$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;
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;
}
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;
$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) {
$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 ));
$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
$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;
$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;
// 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;
$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);
}
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)) {
print_error("parenthesisinproperstart", 'question', '', $splits[0]);
}
}
// 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)) {
print_error("parenthesisinproperclose", 'question', '', $splits[1]);
}
// Processing multiples lines strings
if (isset($questiontext) and is_string($questiontext)) {
- if (ereg("^:",$line)) {
+ if (preg_match("~^:~",$line)) {
$question->questiontext = trim($questiontext);
unset($questiontext);
}
}
if (isset($answertext) and is_string($answertext)) {
- if (ereg("^:",$line)) {
+ if (preg_match("~^:~",$line)) {
$answertext = trim($answertext);
$question->answer[$currentchoice] = $answertext;
$question->subanswers[$currentchoice] = $answertext;
}
if (isset($responsetext) and is_string($responsetext)) {
- if (ereg("^:",$line)) {
+ if (preg_match("~^:~",$line)) {
$question->subquestions[$currentchoice] = trim($responsetext);
unset($responsetext);
}
}
if (isset($feedbacktext) and is_string($feedbacktext)) {
- if (ereg("^:",$line)) {
+ if (preg_match("~^:~",$line)) {
$question->feedback[$currentchoice] = trim($feedbacktext);
unset($feedbacktext);
}
}
if (isset($generalfeedbacktext) and is_string($generalfeedbacktext)) {
- if (ereg("^:",$line)) {
+ if (preg_match("~^:~",$line)) {
$question->tempgeneralfeedback= trim($generalfeedbacktext);
unset($generalfeedbacktext);
}
$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
// 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();
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();
continue;
}
- if (eregi("^:TYPE:S",$line)) {
+ if (preg_match("~^:TYPE:S~i",$line)) {
// Short Answer Question
$question = $this->defaultquestion();
$question->feedback = array();
continue;
}
- if (eregi("^:TYPE:C",$line)) {
+ if (preg_match("~^:TYPE:C~i",$line)) {
// Calculated Question
/* $warnings[] = get_string("calculatedquestion", "quiz", $nLineCounter);
unset($question);
continue;
}
- if (eregi("^:TYPE:M",$line)) {
+ if (preg_match("~^:TYPE:M~i",$line)) {
// Match Question
$question = $this->defaultquestion();
$question->qtype = MATCH;
continue;
}
- if (eregi("^:TYPE:P",$line)) {
+ if (preg_match("~^:TYPE:P~i",$line)) {
// Paragraph Question
$warnings[] = get_string("paragraphquestion", "quiz", $nLineCounter);
unset($question);
continue;
}
- if (eregi("^:TYPE:",$line)) {
+ if (preg_match("~^:TYPE:~i",$line)) {
// Unknow Question
$warnings[] = get_string("unknowntype", "quiz", $nLineCounter);
unset($question);
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)."...";
continue;
}
- if (eregi("^:IMAGE:(.*)",$line,$webct_options)) {
+ if (preg_match("~^:IMAGE:(.*)~i",$line,$webct_options)) {
$filename = trim($webct_options[1]);
- if (eregi("^http://",$filename)) {
+ if (preg_match("~^http://~i",$filename)) {
$question->image = $filename;
}
continue;
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':
}
- $bIsHTMLText = eregi(":H$",$line); // True if next lines are coded in HTML
- if (eregi("^:QUESTION",$line)) {
+ $bIsHTMLText = preg_match("~:H$~i",$line); // True if next lines are coded in HTML
+ if (preg_match("~^:QUESTION~i",$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] =
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~i', $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:(.+)~i', $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);
continue;
}
- if (!empty($question->units) && eregi('^:UNITREQ:(.*)', $line, $webct_options)
+ if (!empty($question->units) && preg_match('~^:UNITREQ:(.*)~i', $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
continue;
}
- if (!empty($question->units) && eregi('^:UNITCASE:', $line)) {
+ if (!empty($question->units) && preg_match('~^:UNITCASE:~i', $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~i', $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~i', $line)) {
$question->correctanswerformat[$currentchoice]='2';
continue;
}
foreach($question->options->questions as $question) {
$thispattern = addslashes("{#".$a_count."}"); // TODO: fix this addslashes
$thisreplace = $question->questiontext;
- $expout=ereg_replace($thispattern, $thisreplace, $expout );
+ $expout=preg_replace("~$thispattern~", $thisreplace, $expout );
$a_count++;
}
break;
$qtextremaining = str_replace('{'.$name.'}', '1', $qtextremaining);
}
// echo "numericalquestion qtextremaining <pre>";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];
return $errors;
}
}
-?>
\ No newline at end of file
+?>
}
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 " .
//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];
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];
}
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) {
}
}
function generate_dataset_item($options) {
- if (!ereg('^(uniform|loguniform):([^:]*):([^:]*):([0-9]*)$',
+ if (!preg_match('~^(uniform|loguniform):([^:]*):([^:]*):([0-9]*)$~',
$options, $regs)) {
// Unknown options...
return false;
// list($options, $selected) = $this->dataset_optionsa($form, $name);
foreach ($options as $key => $whatever) {
- if (!ereg('^1-', $key) && $key != '0') {
+ if (!preg_match('~^1-~', $key) && $key != '0') {
unset($options[$key]);
}
}
/// 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);
}
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)
$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;
/// 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);
}
$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]) {
$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
$this->datasetdefs[$def]->calcmax = $calcmax[$key] ;
$this->datasetdefs[$def]->calclength = $calclength[$key] ;
//then compare with new values
- if (ereg('^(uniform|loguniform):([^:]*):([^:]*):([0-9]*)$', $this->datasetdefs[$def]->options, $regs)) {
+ if (preg_match('~^(uniform|loguniform):([^:]*):([^:]*):([0-9]*)$~', $this->datasetdefs[$def]->options, $regs)) {
if( $this->datasetdefs[$def]->calcmin != $regs[2]||
$this->datasetdefs[$def]->calcmax != $regs[3] ||
$this->datasetdefs[$def]->calclength != $regs[4]){
foreach ($possibledatasets as $name => $value) {
$qtextremaining = str_replace('{'.$name.'}', '1', $qtextremaining);
}
- while (ereg('\{=([^[:space:]}]*)}', $qtextremaining, $regs1)) {
+ while (preg_match('~\{=([^[:space:]}]*)}~', $qtextremaining, $regs1)) {
$qtextsplits = explode($regs1[0], $qtextremaining, 2);
$qtext =$qtext.$qtextsplits[0];
$qtextremaining = $qtextsplits[1];
return $errors;
}
}
-?>
\ No newline at end of file
+?>
// list($options, $selected) = $this->dataset_optionsa($form, $name);
foreach ($options as $key => $whatever) {
- if (!ereg('^1-', $key) && $key != '0') {
+ if (!preg_match('~^1-~', $key) && $key != '0') {
unset($options[$key]);
}
}
// 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 "<label>"; // MDL-7497
$wrapped->feedback[] = '';
}
if (!empty($answerregs[ANSWER_REGEX_ANSWER_TYPE_NUMERICAL])
- && ereg(NUMERICAL_ALTERNATIVE_REGEX, $altregs[ANSWER_ALTERNATIVE_REGEX_ANSWER], $numregs)) {
+ && preg_match('~'.NUMERICAL_ALTERNATIVE_REGEX.'~', $altregs[ANSWER_ALTERNATIVE_REGEX_ANSWER], $numregs)) {
$wrapped->answer[] = $numregs[NUMERICAL_CORRECT_ANSWER];
if ($numregs[NUMERICAL_ABS_ERROR_MARGIN]) {
$wrapped->tolerance[] =
$rawresponse = str_replace($search, $replace, trim($rawresponse));
// Apply any unit that is present.
- if (ereg('^([+-]?([0-9]+(\\.[0-9]*)?|\\.[0-9]+)([eE][-+]?[0-9]+)?)([^0-9].*)?$',
+ if (preg_match('~^([+-]?([0-9]+(\\.[0-9]*)?|\\.[0-9]+)([eE][-+]?[0-9]+)?)([^0-9].*)?$~',
$rawresponse, $responseparts)) {
if (!empty($responseparts[5])) {
while ($wrappedquestion = array_pop(
$this->catrandoms[$question->category][$question->questiontext])) {
- if (!ereg("(^|,)$wrappedquestion->id(,|$)", $cmoptions->questionsinuse)) {
+ if (!preg_match("~(^|,)$wrappedquestion->id(,|$)~", $cmoptions->questionsinuse)) {
/// $randomquestion is not in use and will therefore be used
/// as the randomquestion here...
$wrappedquestion = $DB->get_record('question', array('id' => $wrappedquestion->id));
/// the other question types in that it now only needs one response
/// record per question.
global $QTYPES, $DB;
- if (!ereg('^random([0-9]+)-(.*)$', $state->responses[''], $answerregs)) {
+ if (!preg_match('~^random([0-9]+)-(.*)$~', $state->responses[''], $answerregs)) {
if (empty($state->responses[''])) {
// This is the case if there weren't enough questions available in the category.
$question->questiontext = '<span class="notifyproblem">'.
global $QTYPES, $DB;
$answer_field = "";
- if (ereg('^random([0-9]+)-(.*)$', $state->answer, $answerregs)) {
+ if (preg_match('~^random([0-9]+)-(.*)$~', $state->answer, $answerregs)) {
// Recode the question id in $answerregs[1]
// Get the question from backup_ids
if(!$wrapped = backup_getid($restore->backup_unique_code,"question",$answerregs[1])) {
} elseif ($submitted->source = 'files'){
$SUBMITTED = opendir($submitted->path);
while($entry = readdir($SUBMITTED)){
- if (ereg("^\.", $entry)) continue; // exclude hidden and dirs . and ..
+ if (preg_match("/^\./", $entry)) continue; // exclude hidden and dirs . and ..
$path = "{$submitted->path}/{$entry}";
$documents[] = assignment_get_physical_file($submission, $assignment, $cm, $path, $context_id, $documents);
mtrace("finished attachement $path for {$submission->authors} in assignement {$assignment->name}");
}
return mb_convert_encoding($title, 'auto', 'UTF-8');
}
-?>
\ No newline at end of file
+?>
$err['username'] = get_string('usernamelowercase');
} else {
if (empty($CFG->extendedusernamechars)) {
- $string = eregi_replace("[^(-\.[:alnum:])]", '', $usernew->username);
+ $string = preg_replace("/[^(-\.[:alnum:])]/i", '', $usernew->username);
if ($usernew->username !== $string) {
$err['username'] = get_string('alphanumerical');
}