Доброго времени суток... у меня такая проблема: т.к. в php 5.3 упразднена функция eregi(), мне необходимо заменить ее на preg_match()... помогите, пожалуйста, составить аналогичную строку для: eregi($settings['opening_page']."$", FUSION_REQUEST.(FUSION_QUERY ? "?".FUSION_QUERY : "")) если просто пишу: preg_match($settings['opening_page']."$", FUSION_REQUEST.(FUSION_QUERY ? "?".FUSION_QUERY : "")) выдает ошибку: Warning: preg_match() [function.preg-match]: No ending delimiter '$' found in Z:\бла-бла-бла.php on line 44 или же: Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in Z:\бла-бла-бла.php on line 44
PHP: <? preg_match('/'.$settings['opening_page']."$/", ...) На http://php.net/preg_match заглянуть что мешает?
Спасибо огромное!!! Я заглядывал... просто там во всех примерах параметр $pattern передается конкретно в форме: "........". А у меня надо передать переменную, да еще и добавить к ней "$". Собственно из-за него вся проблема и была... да и вообще... просто я чайник...
извините меня такая же фигня с шаблоном.. я чайник еще в пхп, помогите мне с ошибкой в строке, спасибо! --------------------- ?> <?php if(preg_match("de",$sprache)) { $sprache = $this->language; ------------------------------------------ было ereg
kirk2005 Работать будет если в переменной $sprache строка а не объект. Ну как я понимаю там у вас двух буквенное обозначение страны... так что все сработает.. preg_match("|de|",$sprache)
Помогите пожалуйста с кодом, тоже выдает ошибку на верхней странице сайта Warning: preg_match() [function.preg-match]: No ending delimiter '/' found in J:\бла-бла-бла.php on line 78 Warning: preg_match() [function.preg-match]: No ending delimiter '/' found in J:\бла-бла-бла.php on line 96 Warning: preg_match() [function.preg-match]: No ending delimiter '/' found in J:\бла-бла-бла.php on line 159 вот участки на которые ссылается ошибка PHP: function is_chrome() { return(preg_match("chrome", $_SERVER['HTTP_USER_AGENT'])); <--- строка 78 } if(is_chrome()) { ?> Видимо я не совсем корректно заменил eregi на preg_match. Начальный вид этого участка Другие ошибки ведут на такеи участки кода только вместо chrome там opera и safari. Помогите пожалуйста решить проблемкую PHP: <?php function is_chrome() { return(eregi("chrome", $_SERVER['HTTP_USER_AGENT'])); } if(is_chrome()) { ?>
Помогите пожалуйста сделать аналогичную замену, имеется такой код: PHP: if (ereg('Opera(/| )([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT'])) { $UserBrowser = "Opera"; } elseif (ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT'])) { $UserBrowser = "IE"; } Нужно ereg заменить на preg_match. Уже по-всякому пытался сделать замену, но постоянно пишет ошибки.
if (preg_match('/Opera(/| )([0-9].[0-9]{1,2})/', $_SERVER['HTTP_USER_AGENT'])) { $UserBrowser = "Opera"; } elseif (preg_match('/MSIE ([0-9].[0-9]{1,2})/', $_SERVER['HTTP_USER_AGENT'])) { $UserBrowser = "IE"; }
Огромнейшее спасибо! Я тоже ставил слэши в начале и в конце выражения, но чтобы заработало, нужно убрать (/| ) после слова Opera в первом выражении.
Здравствуйте уважаемые. Помогите пожалуйста найти ошибку, при замене erge на preg_match как указанно выше, предупреждений и ошибок нет, но всё работает только в ИЕ, в опере нет. PHP: function getAgent() { $result = SPAW_AGENT_UNSUPPORTED; $browser = SpawVars::GetServerVar('HTTP_USER_AGENT'); //echo $browser; // check if msie if (preg_match('/MSIE[^;]*/i',$browser,$msie)) { // get version if (preg_match('/[0-9]+\.[0-9]+/i',$msie[0],$version)) { // check version if ((float)$version[0]>=5.5) { // finally check if it's not opera impersonating ie if (!preg_match('/opera/',$browser)) { $result = SPAW_AGENT_IE; } } } } elseif (preg_match('/Gecko([0-9]*)/',$browser,$build)) { // build date of Mozilla version 1.3 is 20030312 if ($build[1] > "20030312") $result = SPAW_AGENT_GECKO; } elseif (preg_match('/Opera([0-9]*)/', $browser, $opera)) { if ((float)$opera[1] >= 9) $result = SPAW_AGENT_OPERA; } elseif (preg_match('/Safari/([0-9]*)/', $browser, $safari)) { // safari build 500 or higher (safari 3 or newer) if ((float)$safari[1] >= 500) $result = SPAW_AGENT_SAFARI; } return $result; } /** * Returns string representation of current user agent to be used as part of file extension or dir name * @returns string * @static */ function getAgentName() { $result = ''; switch(SpawAgent::getAgent()) { case SPAW_AGENT_IE: $result = 'ie'; break; case SPAW_AGENT_GECKO: $result = 'gecko'; break; case SPAW_AGENT_OPERA: $result = 'opera'; break; case SPAW_AGENT_SAFARI: $result = 'safari'; break; default: $result = ''; break; } return $result; } } Модификатор /i добавил после того, как увидел на форуме автора http://forums.solmetra.com/viewtopic.php?f=7&t=16827&p=28532&hilit=eregi#p28532 Код (Text): spaw\class\util.class.php(185): if (eregi("MSIE[^;]*",$browser,$msie)) becomes if (preg_match('/MSIE[^;]*/i',$browser,$msie)) spaw\class\util.class.php(188): if (eregi("[0-9]+\.[0-9]+",$msie[0],$version)) becomes if (preg_match('/[0-9]+\.[0-9]+/i',$msie[0],$version)) spaw\class\util.class.php(194): if (!eregi("opera",$browser)) should not be using regular expressions in the first place since it's matching a constant substring ;-) , результата недал. Заранее благодарю.
Помогите пожалуйста if (ereg($u[0],$remote_addr)) {$bad_bot++;} if (ereg($data[0], $REMOTE_ADDR)) {$bad_bot++;} поправить под php 5.3.8
Привет парни! Не пойму, как preg_match() работает с разделителями? если с eregi() через разделитель были перечислены варианты того, что ищем, все работало, например: Код (Text): if (eregi("(http|://|www|href|/a|blablabla)", $msg)) {echo "такая фигня тут не нужна"; exit;} то с preg_match() это не работает, что исправить?
Пожалуйста, помогите поменять eregi на preg_match, а то получаю такую ошибку "Deprecated: Function eregi() is deprecated": Код (Text): if(trim($_POST['email']) === '') { $hasError = true; } else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) { $hasError = true; $errorMessage = 'Пожалуйста, введите правильный е-майл!'; } else { $email = trim($_POST['email']); }
Всем привет что-то не могу решить такой вапрос (Устаревшие: Функция eregi () является устаревшим в /та та та ра рам.php на линии 127) перехожу на preg_match пишет (Внимание: preg_match (): разделитель не должен быть буквенно-цифровым или обратная косая черта в /та та та ра рам.php на линии 127 вот сама линия 127 Код (Text): if (isset($_SERVER['HTTP_REFERER']) && !preg_match( str_replace('.','\.',$_SERVER['HTTP_HOST']), $_SERVER['HTTP_REFERER']) && $ref=@parse_url($_SERVER['HTTP_REFERER'])){ if (isset($ref['host']))$_SESSION['http_referer']=$ref['host'];} подскажите пожалуйста
Всем привет! Друзья, не сочтите за труд, помогите новичку исправить функцию ereg() на preg_match() в выражении: Код (PHP): if ((!ereg($_SERVER['HTTP_HOST'], getenv("HTTP_REFERER"))) and isset($_POST["go"])) Спасибо. Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
Помогите пожалуйста заменить ereg на preg_match. Код (Text): !ereg($this->mask,$value) Просто замена ereg на preg_match исправляет ошибку синтаксиса но код получается не рабочим.
Я в php не силен, вот весь файл: Это файлик AttributeDef.php из ltsp-cluster-control Код (Text): <?php require_once 'Attribute.php'; require_once 'dbFunctions.php'; class AttributeDef { var $def_id; var $name; var $type; var $mask; var $editable; var $selection; var $lastError; var $isError; var $notFound; function AttributeDef($id) { $this->isError = false; $this->noFound = false; if (is_numeric($id)) { if (!$attributeDef = $this->getFromDB("*", "id=".$id)) return; } else if (is_array($id)) { $attributeDef = $id; } //get something like static object else if($id=="static"){ //do nothing } else { $this->isError = true; $this->lastError = getMessage('bad_id')."id=".$id; return; } $this->def_id = $attributeDef['id']; $this->name = $attributeDef['name']; $this->type = $attributeDef['attributetype']; $this->mask = $attributeDef['mask']; $this->editable = $attributeDef['editable']; } // private function getFromDB($column,$where,$from="attributesDef",$isFatal=true, $multiple = false) { if ($multiple) { $result = select('SELECT '.$column.' FROM '.$from.' WHERE '.$where); } else { $result = singleResultSelect('SELECT '.$column.' FROM '.$from.' WHERE '.$where); } if (!$result) { if (($from == "attributesDef") && $isFatal) $this->lastError = getMessage('attribute_not_found')." : ".$where; else $this->lastError = getMessage('not_found').'SELECT '.$column.' FROM '.$from.' WHERE '.$where; $this->notFound = true; if ($isFatal) $this->isError = true; return NULL; } elseif (!is_array($result)) { $this->lastError = getMessage('db_error').$result." : ".'SELECT '.$column.' FROM '.$from.' WHERE '.$where; if ($isFatal) $this->isError = true; return NULL; } else return $result; } // private function updateDB($toSet,$table="attributesDef", $where = "id") { if ($where == "id") $where .= "=".$this->id; if ($error = write("UPDATE ".$table." SET ".$toSet." WHERE id=".$this->id)) { $this->lastError = getMessage('db_write_error').$error." : "."UPDATE ".$table." SET ".$toSet." WHERE ".$where; return false; } else return true; } ////////////////////////////////////////////////////////////////// // Getters ////////////////////////////////////////////////////////////////// function getAttributeDefID() { return $this->def_id; } function getName() { return $this->name; } function getType() { return $this->type; } function getValue() { return NULL; } function getMask() { return $this->mask; } function getEditable() { return $this->editable; } // Use Lazy loading for selection function getSelection() { if (!is_array($this->selection) && ($this->type >= 1 || $this->editable)) { $dictionary = $this->getFromDB("value", "attributesdef_id=".$this->def_id." ORDER BY sortval,value", "attributesDefDict", true, true); if (is_null($dictionary)){ if($this->notFound) $this->lastError=null; return; } foreach ($dictionary as $value) { $this->selection[$value['value']] = false; } } return $this->selection; } function isError() { return $this->isError; } function lastError() { return $this->lastError; } function notFound() { return $this->NotFound; } ////////////////////////////////////////////////////////////////// // Setters ////////////////////////////////////////////////////////////////// function buildAttribute ($node,$value) { if ($this->type == 0) { if (!ereg($this->mask,$value)) { $this->lastError = getMessage('invalide_value').$this->name." = ".$value; return false; } } $insertQuery = "INSERT INTO Attributes (nodes_id,attributesdef_id,value)" . "VALUES (".$node->getID().",".$this->def_id.",'')"; if ($error = write($insertQuery)) { $this->lastError = getMessage('db_error').$error." : ".$insertQuery; return false; } if (!$result = $this->getFromDB("*","nodes_id=".$node->getID()." AND attributesdef_id=".$this->def_id,"attributes")) return false; $attr = new Attribute($result); if ($attr->isError()) { $this->lastError = $attr->lastError(); return false; } $attr->setValue($value); return $attr; } /** * This function delete a specific value from the dictionary table (attributesdefdict) */ function deleteDictValue($value) { $error = NULL; delete("DELETE FROM attributesdefdict WHERE attributesdef_id=".$this->def_id." AND value=".qstr($value).""); if ($error) $error.= " : "; $error .= delete("DELETE FROM attributesdefdict WHERE attributesdef_id=".$this->def_id." AND value=".qstr($value).""); return $error; } /** * This function insert a specific value to the dictionary table (attributesdefdict) */ function insertDictValue($value) { $error = NULL; //Validation of value if (!ereg($this->mask,$value)) { $this->lastError = getMessage('invalide_value').$this->name." = ".$value."(".$this->mask.")"; return $this->lastError; } if (!(strlen($value) > 0)) { $this->lastError = getMessage('error_creating_def').getMessage('empty_def_name'); return $this->lastError; } //sortval is not managed. New attribute list is always at last position //$result = singleResultSelect("SELECT MAX(sortval) as nextsortval FROM attributesdefdict WHERE attributesdef_id=".$this->def_id); //$sortval=1+$result['nextsortval']; $sortval=0; $insertQuery ="INSERT INTO attributesdefdict (attributesdef_id,value,sortval) VALUES (".$this->def_id.",".qstr($value).",".$sortval.")"; if ($error = write($insertQuery)) { $this->lastError = getMessage('db_error').$error." : ".$insertQuery; return $this->lastError; }else{ return null; } } /** * This function update the dictionary table (attributesdefdict) * $oldValue is one of the primary key */ function updateDictValue($value,$oldValue) { $error = NULL; //Validation of value if (!ereg($this->mask,$value)) { $this->lastError = getMessage('invalide_value').$this->name." = ".$value."(".$this->mask.")"; return $this->lastError; } if (!(strlen($value) > 0)) { $this->lastError = getMessage('error_creating_def').getMessage('empty_def_name'); return $this->lastError; } //sortval is not managed. New attribute list is always at last position $updateQuery ="UPDATE attributesdefdict SET value=".qstr($value)." WHERE attributesdef_id=".$this->def_id." AND value=".qstr($oldValue).""; if ($error = write($updateQuery)) { $this->lastError = getMessage('db_write_error').$error." : ".$updateQuery; return $this->lastError; }else{ return $this->lastError; } } } ?>