Como todos sabemos no PHP 5.3 tivemos diversas mudanças na estrutura do PHP e hoje falaremos de um erro que vem ocorrendo frequentemente nos meus códigos PHP antigos quando migrado para um servidor que tenha uma nova versão do PHP.
O erro falado é o Deprecated: Function ereg() is deprecated, neste artigo falaremos um pouco sobre sua extinsão e como solucionar o erro.
O que é ereg
Primeiro, antes de falar do problema temos que entender o que era a função ereg do PHP.
Esta função permitia que você procura-se uma determinada com uma expressão regular, com case sensitive, retornando a quantidade de itens encontrados ou false caso nenhum fosse encontrado.
Ela também contava com algumas variantes o eregi() que trabalhava da mesma forma, porém case insenstive e ereg_replace() que permitia substituir todas as posições encontrada assim como o eregi_replace que faz o mesmo, porém case insensitive.
Diferença entre ereg e eregi
Antigamente, para fazermos distinção entre case sensitive e case insensitive deveríamos utilizar funções diferentes, por isso existia o ereg e eregi, para a mesma função, apenas fazendo ou não distinção de cases.
Porque o ereg foi depreciado?
O ereg, apesar de ser bem mais simples que seu sucessor, ele executava a mesma ação porém com menos opções, não fazendo assim, sentido manter duas funções parecidas.
Este tipo de atitude tem sido tomada pela equipe do PHP para eliminar as funções redundantes existentes hoje, que, apesar de facilitar seu aprendisado torna bastante complexa a manutenção o código-fonte de terceiros.
Como solucionar o problema Function ereg() is deprecated
A função ereg pode ser fácilmente substituida pela função preg_match, que apresenta resultado semelhante ao ereg, tendo somente algumas diferenças em sua declaração, veja abaixo.
//Para o código:
//if(ereg("abc", "nabc,nobc,treabc")) { //faz se achar}
//será substituido por:
if(preg_match("/abc/", "nabc,nobc,treabc"))
{
// faz se achar
}
Observe que as unicas mudanças foram o nome da função de ereg() para preg_match e ao invés de “abc” para “/abc/”, estas barras servem para indicar ao interpretador de expressão regular da função que a expressão acabou, sendo necessária sempre.
No caso se você estiver tentando substituir o eregi() bastará fazer a seguinte modificação:
//Para o código:
//if(eregi("abc", "nabc,nobc,treabc")) { //faz se achar}
//será substituido por:
if(preg_match("/ABV/i", "nabc,nobc,treabc"))
{
// faz se achar
}
Sendo necessário apenas digitar o /i ao final da expressão, isso tornará a validação da expressão regular em case não sensitivo.
Como solucionar o problema Function ereg_replace() is deprecated
Assim como o ereg() o ereg_replace() também foi depreciado, sendo este substituido pelo preg_replace(), aonde a substituição pode ser feita facilmente, da seguinte foram:
//Para o código:
//$novoValor =
//ereg_replace("abc", "nabc,nobc,treabc", "Este é um texto do tipo abc");
//será substituido por:
echo preg_replace("/abc/", "def", "Este é um texto do tipo abc");
Como solucionar o problema function eregi_replace is deprecated
No caso da função eregi_replace aonde é não é feita a distinção entre letras maiúsculas e minúsculas você deve adicionar o /i após os marcadores da expressão regular, ficando bem simples conforme o exemplo abaixo:
//Para o código:
//$novoValor =
//ereg_replace("abc", "nabc,nobc,treabc", "Este é um texto do tipo abc");
//será substituido por:
echo preg_replace("/abc/i", "def", "Este é um texto do tipo abc");

Muitooo bom!!! Consegui resolver o meu problema! muito obrigada!
Ótimo amigo, resolvi meus problemas, obrigado!
explica pra merda!.
Não consegui,
sou iniciante em php;
Estou usando o oscommerce 2.3.1 e nele dá esse erro,
eu fiz como você mostrou más ele simplestente mudou de:
Deprecated: Function ereg() is deprecated
para:
Deprecated: Function preg_match() is deprecated
eu uso easyphp 5.3.6 com: PHP5.3.6, apache 2.2.17, mysql5.5.10 e phpmyadmin3.3.9.2
Obs: eu instalei o openSSL que o oscommerce pediu mas ele nã reconteceu, ainda aparece o “X” vermelho na opção do openSSL, como resolvo?
Não há nenhuma menção no manual a depreciação da função preg_match, o que pode ocorrer é uma digitação incorreta da mesma, nos envie o trecho de código para poder comentar mais.
Muito 10!
Resolvi meus erros, e olha que nunca estudei php
Olá, achei este bom artigo no google.
Minha duvida é: Tenho uma função de troca letras
if (ereg(“[ç]“, $letra)){
$letra = preg_replace(sql_regcase(“/(ç|\\)/”), “c” ,$letra);
}
Com sua logica deu certo no preg_match ..
Mas quando preciso que mais de um caracter seja comparado ai já não faz a substituição
Ex utilizado:
if (ereg(“[úùûü]“, $letra)){
$letra = preg_replace(sql_regcase(“/(ú|ù|û|ü|\\)/”), “u” ,$letra);
}
Não precisa usar o pipe entre os caracteres (|), tente sem ele e com colchetes []
$letra = preg_replace(sql_regcase(“/[úùûü]/”), “u” ,$letra);
Valeu, quebrou um galhão!
Bem prático!
Funcionou direitinho… Valeu
meu site começou a apresentar esse erro hoje, preciso URGENTE de alguem que saiba consertar esse erro, por favor entrem em contato
Olá amigo, como posso te ajudar?
Passei duas semanas, quebrando a cabeça, perdendo noites sem dormir com minha mulher por causa desse problema. Agora ta tudo resolvido Obrigado
Estou com problema nessa função
$this->menuStructure = ereg_replace(chr(13), ”, $tree_string);
troquei por preg_replace mas o problema passou a ser outro, menuStructure passa a permanecer sempre vazio retornando
Warning: preg_replace() [function.preg-replace]: Empty regular expression in /home/….
Olá Vicente, o problema deverá ser sanado da seguinte forma:
$this->menuStructure = ereg_replace(“/”.chr(13).”/”,”, $tree_string);
Isso ocorre pois no PHP, toda expressão regular deve ter um delimitador.
Espero ter ajudado
como ficaria então essa sintaxe ?
if(!eregi((“^image/(pjpeg|jpeg|png|gif|bmp)$”, $foto["type"])))
{
$error[1] = “Isso não é uma imagem.”;
}
Ficaria assim:
if(!preg_match((“/^image/(pjpeg|jpeg|png|gif|bmp)$/”, $foto["type"])))
{
$error[1] = “Isso não é uma imagem.”;
}
espero ter ajudado
Caros colegas, estou com um problema pra fazer paginação e não consigo resolver, alguém pode dar uma mão? É com o tal de paginator.inc.php. Sou totalmente novato no assunto. Agradeço a atenção e paciência.
Paginator.inc.php
<?php
/*
**—————————-No Borrar esta sección ————————-
** Paginator
** Paginación de resultados de consultas a MySql con PHP
**
** Versión 1.6.3
**
** Nombre de archivo :
** paginator.inc.php
**
** Autor :
** Jorge Pinedo Rosas (jpinedo)
** Con la colaboración de los usuarios del foro de PHP de http://www.forosdelweb.com
** Especialmente de dooky que posteó el código en el que se basa este script.
**
** Descripción :
** Devuelve el resultado de una consulta sql por páginas, así como los enlaces de navegación respectivos.
** Este script ha sido pensado con fines didácticos, por eso la gran cantidad de comentarios.
**
** Licencia :
** GPL con las siguientes extensiones:
** *Uselo con el fin que quiera (personal o lucrativo).
** *Si encuentra el código de utilidad y lo usa, mandeme un mail si lo desea o deje un comentario en la página
** de documentación.
** *Si mejora el código o encuentra errores, hagamelo saber al mail indicado o deje un comentario en la página
** de documentación.
**
** Documentación y ejemplo de uso:
** http://jpinedo.webcindario.com
**———————————————————————-*/
/*———————————————————————-
** Historial:
**
** Versión 1.0.0 (30/11/2003): -Versión inicial.
** Versión 1.1.0 (12/01/2004): -Se agregó la propagación de las variables que llegan al script vía url ($_GET)
** en los enlaces de navegación por las páginas.
** -Se optimizó el conteo del total de registros utilizando el COUNT(*) de MySql.
** Versión 1.3.0 (10/08/2004): -Se agregó la opción de limitar el número enlaces que se mostrarán en la barra
** de navegación. Gracias a la recomendación de Jorge Camargo (andinistas)
** -Se agregó la opción de elegir si se quiere mostrar los mensajes de error de mysql.
** -Se agregó la generación de información de la página actual en una cadena que contiene
** el total de registros de la consulta y el primer y último registro de la página actual.
** Versión 1.4.0 (12/08/2004): -Se agregó la opción de elegir qué variables se quiere propagar por url. Se ha utilizado
** la misma forma de hacerlo que utiliza la Clase Paginado de webstudio.
** (http://www.forosdelweb.com/showthread.php?t=65528). Gracias a la acalmación popular
** Versión 1.4.1 (06/09/2004): -Corregido el bug en la propagación de variables por GET al renombrar la variable
** “pg” por “_pagi_pg”. Esto sólo ocurre en la versión 1.4. Gracias a jean pierre m. por
** reportar el bug.
** Versión 1.5.0 (03/11/2004): -Se agregó la opción de elegir si se hace el conteo desde mySQL (COUNT(*)) o desde PHP (mysql_num_rows()).
** Esta es una de las modificaciones más importantes porque gracias a esto, ahora el script funciona para
** cualquier tipo de consulta, corrigiendo una de sus principales limitaciones. Gracias a César (CDs) por
** sus ganas de colaborar y su paciencia.
** Versión 1.5.1 (16/11/2004): -Se cambió el nombre de las variables $desde y $hasta por $_pagi_desde y $_pagi_hasta para mantener
** uniformidad y evitar conflictos.
** Versión 1.5.2 (15/02/2005): -Se cambió preventivamente el uso del array $GLOBALS por el array $_REQUEST con la intención de que
** funcione con la directiva register globals en Off. Gracias a Lorena Casas por su colaboración en la detección de
** este bug y en las pruebas.
** Versión 1.6.0 (08/03/2005): -Se reestructuró toda la parte de propagación reincluyendo el array $GLOBALS para poder propagar variables
** generadas en el ámbito del script.
** -Se incluyó la opción de elegir un estilo CSS para los enlaces de la barra de navegación.
** -Se incluyó la opción de personalizar los enlaces a la página anterior y a la siguiente. (Inspirado en la clase Paginador de WebStudio)
** Versión 1.6.1 (07/05/2005): -Corregido el bug que multiplicaba la variable _pagi_pg en el URL cuando se propaga automáticamente
** el array $_GET.
** Versión 1.6.2 (21/10/2005): -Se incluyeron los enlaces a la página primera y a la última.
** -Se incluyó la opción de personalizar los enlaces a la página primera y a la última.
** Versión 1.6.3 (22/02/2006): -Corregida la expresión regular para que reconozca los saltos de línea y tabulaciones como espacio en blanco.
** Gracias a El_Condor en forosdelweb por reportar el comportamiento indeseado.
**
**———————————————————————————————————–*/
/**
* Variables que se pueden definir antes de incluir el script vía include():
* ————————————————————————
* $_pagi_sql OBLIGATORIA. Cadena. Debe contener una sentencia sql válida (y sin la cláusula “limit”).
* $_pagi_cuantos OPCIONAL. Entero. Cantidad de registros que contendrá como máximo cada página.
Por defecto está en 20.
* $_pagi_nav_num_enlaces OPCIONAL Entero. Cantidad de enlaces a los números de página que se mostrarán como
máximo en la barra de navegación.
Por defecto se muestran todos.
* $_pagi_mostrar_errores OPCIONAL Booleano. Define si se muestran o no los errores de MySQL que se puedan producir.
Por defecto está en “true”;
* $_pagi_propagar OPCIONAL Array de cadenas. Contiene los nombres de las variables que se quiere propagar
por el url. Por defecto se propagarán todas las que ya vengan por el url (GET).
* $_pagi_conteo_alternativo OPCIONAL Booleano. Define si se utiliza mysql_num_rows() (true) o COUNT(*) (false).
Por defecto está en false.
* $_pagi_separador OPCIONAL Cadena. Cadena que separa los enlaces numéricos en la barra de navegación entre páginas.
Por defecto se utiliza la cadena ” | “.
* $_pagi_nav_estilo OPCIONAL Cadena. Contiene el nombre del estilo CSS para los enlaces de paginación.
Por defecto no se especifica estilo.
* $_pagi_nav_anterior OPCIONAL Cadena. Contiene lo que debe ir en el enlace a la página anterior. Puede ser un tag .
Por defecto se utiliza la cadena “« Anterior”.
* $_pagi_nav_siguiente OPCIONAL Cadena. Contiene lo que debe ir en el enlace a la página siguiente. Puede ser un tag .
Por defecto se utiliza la cadena “Siguiente »”
* $_pagi_nav_primera OPCIONAL Cadena. Contiene lo que debe ir en el enlace a la primera página. Puede ser un tag .
Por defecto se utiliza la cadena “«« Primera”.
* $_pagi_nav_ultima OPCIONAL Cadena. Contiene lo que debe ir en el enlace a la página siguiente. Puede ser un tag .
Por defecto se utiliza la cadena “Última »»”
————————————————————————–
*/
/*
* Verificación de los parámetros obligatorios y opcionales.
*————————————————————————
*/
if(empty($_pagi_sql)){
// Si no se definió $_pagi_sql… grave error!
// Este error se muestra sí o sí (ya que no es un error de mysql)
die(“Error Paginator : Erro na variavel —-> $_pagi_sql”);
}
if(empty($_pagi_cuantos)){
// Si no se ha especificado la cantidad de registros por página
// $_pagi_cuantos será por defecto 20
$_pagi_cuantos = 10;
}
if(!isset($_pagi_mostrar_errores)){
// Si no se ha elegido si se mostrará o no errores
// $_pagi_errores será por defecto true. (se muestran los errores)
$_pagi_mostrar_errores = true;
}
if(!isset($_pagi_conteo_alternativo)){
// Si no se ha elegido el tipo de conteo
// Se realiza el conteo dese mySQL con COUNT(*)
$_pagi_conteo_alternativo = false;
}
if(!isset($_pagi_separador)){
// Si no se ha elegido un separador
// Se toma el separador por defecto.
$_pagi_separador = ” | “;
}
if(isset($_pagi_nav_estilo)){
// Si se ha definido un estilo para los enlaces, se genera el atributo “class” para el enlace
$_pagi_nav_estilo_mod = “class=”$_pagi_nav_estilo”";
}else{
// Si no, se utiliza una cadena vacía.
$_pagi_nav_estilo_mod = “”;
}
if(!isset($_pagi_nav_anterior)){
// Si no se ha elegido una cadena para el enlace “siguiente”
// Se toma la cadena por defecto.
$_pagi_nav_anterior = “« Anterior”;
}
if(!isset($_pagi_nav_siguiente)){
// Si no se ha elegido una cadena para el enlace “siguiente”
// Se toma la cadena por defecto.
$_pagi_nav_siguiente = “Seguinte »”;
}
if(!isset($_pagi_nav_primera)){
// Si no se ha elegido una cadena para el enlace “primera”
// Se toma la cadena por defecto.
$_pagi_nav_primera = “«« Primeira”;
}
if(!isset($_pagi_nav_ultima)){
// Si no se ha elegido una cadena para el enlace “siguiente”
// Se toma la cadena por defecto.
$_pagi_nav_ultima = “Última »»”;
}
//————————————————————————
/*
* Establecimiento de la página actual.
*————————————————————————
*/
if (empty($_GET["_pagi_pg"])){
// Si no se ha hecho click a ninguna página específica
// O sea si es la primera vez que se ejecuta el script
// $_pagi_actual es la pagina actual–>será por defecto la primera.
$_pagi_actual = 1;
}else{
// Si se “pidió” una página específica:
// La página actual será la que se pidió.
$_pagi_actual = $_GET["_pagi_pg"];
}
//————————————————————————
/*
* Establecimiento del número de páginas y del total de registros.
*————————————————————————
*/
// Contamos el total de registros en la BD (para saber cuántas páginas serán)
// La forma de hacer ese conteo dependerá de la variable $_pagi_conteo_alternativo
if($_pagi_conteo_alternativo == false){
//$_pagi_sqlConta = eregi_replace(“select[[:space:]](.*)[[:space:]]from”, “SELECT COUNT(*) FROM”, $_pagi_sql);
$_pagi_sqlConta = preg_replace(“/select[[:space:]](.*)[[:space:]]from”, “SELECT COUNT(*) FROM”, $_pagi_sql);
$_pagi_result2 = mysql_query($_pagi_sqlConta);
// Si ocurrió error y mostrar errores está activado
if($_pagi_result2 == false && $_pagi_mostrar_errores == true){
die (” Erro numero 1: $_pagi_sqlConta. Mysql dijo: “.mysql_error().”“);
}
$_pagi_totalReg = mysql_result($_pagi_result2,0,0);//total de registros
}else{
$_pagi_result3 = mysql_query($_pagi_sql);
// Si ocurrió error y mostrar errores está activado
if($_pagi_result3 == false && $_pagi_mostrar_errores == true){
die (” erro numero 2: $_pagi_sql. Mysql dijo: “.mysql_error().”“);
}
$_pagi_totalReg = mysql_num_rows($_pagi_result3);
}
// Calculamos el número de páginas (saldrá un decimal)
// con ceil() redondeamos y $_pagi_totalPags será el número total (entero) de páginas que tendremos
$_pagi_totalPags = ceil($_pagi_totalReg / $_pagi_cuantos);
//————————————————————————
/*
* Propagación de variables por el URL.
*————————————————————————
*/
// La idea es pasar también en los enlaces las variables hayan llegado por url.
$_pagi_enlace = $_SERVER["PHP_SELF"];
$_pagi_query_string = “?”;
if(!isset($_pagi_propagar)){
//Si no se definió qué variables propagar, se propagará todo el $_GET (por compatibilidad con versiones anteriores)
//Perdón… no todo el $_GET. Todo menos la variable _pagi_pg
if (isset($_GET["_pagi_pg"])) unset($_GET["_pagi_pg"]); // Eliminamos esa variable del $_GET
$_pagi_propagar = array_keys($_GET);
}elseif(!is_array($_pagi_propagar)){
// si $_pagi_propagar no es un array… grave error!
die(“Error Paginator : La variable $_pagi_propagar debe ser un array”);
}
// Este foreach está tomado de la Clase Paginado de webstudio
// (http://www.forosdelweb.com/showthread.php?t=65528)
foreach($_pagi_propagar as $var){
if(isset($GLOBALS[$var])){
// Si la variable es global al script
$_pagi_query_string.= $var.”=”.$GLOBALS[$var].”&”;
}elseif(isset($_REQUEST[$var])){
// Si no es global (o register globals está en OFF)
$_pagi_query_string.= $var.”=”.$_REQUEST[$var].”&”;
}
}
// Añadimos el query string a la url.
$_pagi_enlace .= $_pagi_query_string;
//————————————————————————
/*
* Generación de los enlaces de paginación.
*————————————————————————
*/
// La variable $_pagi_navegacion contendrá los enlaces a las páginas.
$_pagi_navegacion_temporal = array();
if ($_pagi_actual != 1){
// Si no estamos en la página 1. Ponemos el enlace “primera”
$_pagi_url = 1; //será el número de página al que enlazamos
$_pagi_navegacion_temporal[] = “$_pagi_nav_primera“;
// Si no estamos en la página 1. Ponemos el enlace “anterior”
$_pagi_url = $_pagi_actual – 1; //será el número de página al que enlazamos
$_pagi_navegacion_temporal[] = “$_pagi_nav_anterior“;
}
// La variable $_pagi_nav_num_enlaces sirve para definir cuántos enlaces con
// números de página se mostrarán como máximo.
// Ojo: siempre se mostrará un número impar de enlaces. Más info en la documentación.
if(!isset($_pagi_nav_num_enlaces)){
// Si no se definió la variable $_pagi_nav_num_enlaces
// Se asume que se mostrarán todos los números de página en los enlaces.
$_pagi_nav_desde = 1;//Desde la primera
$_pagi_nav_hasta = $_pagi_totalPags;//hasta la última
}else{
// Si se definió la variable $_pagi_nav_num_enlaces
// Calculamos el intervalo para restar y sumar a partir de la página actual
$_pagi_nav_intervalo = ceil($_pagi_nav_num_enlaces/2) – 1;
// Calculamos desde qué número de página se mostrará
$_pagi_nav_desde = $_pagi_actual – $_pagi_nav_intervalo;
// Calculamos hasta qué número de página se mostrará
$_pagi_nav_hasta = $_pagi_actual + $_pagi_nav_intervalo;
// Ajustamos los valores anteriores en caso sean resultados no válidos
// Si $_pagi_nav_desde es un número negativo
if($_pagi_nav_desde $_pagi_totalPags){
// Le restamos la cantidad excedida al comienzo para mantener el número de enlaces que se quiere mostrar.
$_pagi_nav_desde -= ($_pagi_nav_hasta – $_pagi_totalPags);
// Establecemos $_pagi_nav_hasta como el total de páginas.
$_pagi_nav_hasta = $_pagi_totalPags;
// Hacemos el último ajuste verificando que al cambiar $_pagi_nav_desde no haya quedado con un valor no válido.
if($_pagi_nav_desde < 1){
$_pagi_nav_desde = 1;
}
}
}
for ($_pagi_i = $_pagi_nav_desde; $_pagi_i<=$_pagi_nav_hasta; $_pagi_i++){//Desde página 1 hasta última página ($_pagi_totalPags)
if ($_pagi_i == $_pagi_actual) {
// Si el número de página es la actual ($_pagi_actual). Se escribe el número, pero sin enlace y en negrita.
$_pagi_navegacion_temporal[] = "$_pagi_i“;
}else{
// Si es cualquier otro. Se escibe el enlace a dicho número de página.
$_pagi_navegacion_temporal[] = ““.$_pagi_i.”“;
}
}
if ($_pagi_actual < $_pagi_totalPags){
// Si no estamos en la última página. Ponemos el enlace "Siguiente"
$_pagi_url = $_pagi_actual + 1; //será el número de página al que enlazamos
$_pagi_navegacion_temporal[] = "$_pagi_nav_siguiente“;
// Si no estamos en la última página. Ponemos el enlace “Última”
$_pagi_url = $_pagi_totalPags; //será el número de página al que enlazamos
$_pagi_navegacion_temporal[] = “$_pagi_nav_ultima“;
}
$_pagi_navegacion = implode($_pagi_separador, $_pagi_navegacion_temporal);
//————————————————————————
/*
* Obtención de los registros que se mostrarán en la página actual.
*————————————————————————
*/
// Calculamos desde qué registro se mostrará en esta página
// Recordemos que el conteo empieza desde CERO.
$_pagi_inicial = ($_pagi_actual-1) * $_pagi_cuantos;
// Consulta SQL. Devuelve $cantidad registros empezando desde $_pagi_inicial
$_pagi_sqlLim = $_pagi_sql.” LIMIT $_pagi_inicial,$_pagi_cuantos”;
$_pagi_result = mysql_query($_pagi_sqlLim);
// Si ocurrió error y mostrar errores está activado
if($_pagi_result == false && $_pagi_mostrar_errores == true){
die (“Error en la consulta limitada: $_pagi_sqlLim. Mysql dijo: “.mysql_error().”“);
}
//————————————————————————
/*
* Generación de la información sobre los registros mostrados.
*————————————————————————
*/
// Número del primer registro de la página actual
$_pagi_desde = $_pagi_inicial + 1;
// Número del último registro de la página actual
$_pagi_hasta = $_pagi_inicial + $_pagi_cuantos;
if($_pagi_hasta > $_pagi_totalReg){
// Si estamos en la última página
// El ultimo registro de la página actual será igual al número de registros.
$_pagi_hasta = $_pagi_totalReg;
}
$_pagi_info = “desde el $_pagi_desde hasta el $_pagi_hasta de un total de $_pagi_totalReg”;
//————————————————————————
/**
* Variables que quedan disponibles después de incluir el script vía include():
* ————————————————————————
* $_pagi_result Identificador del resultado de la consulta a la BD para los registros de la página actual.
Listo para ser “pasado” por una función como mysql_fetch_row(), mysql_fetch_array(),
mysql_fetch_assoc(), etc.
* $_pagi_navegacion Cadena que contiene la barra de navegación con los enlaces a las diferentes páginas.
Ejemplo: “<<primera | | última>>”.
* $_pagi_info Cadena que contiene información sobre los registros de la página actual.
Ejemplo: “desde el 16 hasta el 30 de un total de 123″;
*/
?>
Minha consulta (meu problema)
Resultado da Busca:
<?php
include("../lib/connect.php");
$pesquisa = $_POST['pesquisa'];
$filtro = $_POST['filtro'];
switch ($filtro){
case 'titulo':
$sql = "SELECT * FROM acervo inner join autores_do_acervo on acervo.ACE_CODIGO = autores_do_acervo.ACE_CODIGO inner join autores
on autores.AUT_CODIGO = autores_do_acervo.AUT_CODIGO WHERE ACE_TITULO LIKE '%$pesquisa%' ";
print "”;
$_pagi_sql = mysql_query($sql);
include(“../pages/paginator.inc.php”);
print ” Procurando por: “.$pesquisa.”";
print ” Foram encontrados: ” . mysql_affected_rows() . ” Registro(s) “.”";
print “”;
while($linha = mysql_fetch_assoc($_pagi_sql)){
//print “Código: “.$linha['DISC_CODIGO'].”";
print “Título: “.$linha['ACE_TITULO'].”";
print “Autor: “.$linha['AUT_NOME']. “”;
print “Ano: “.$linha['ACE_ANO'].”";
print “Descrição: “.$linha['ACE_OUTROS'].”";
print “Download: ” . “Clique Aqui” . “”;
print “”;
}
break;
//include(“../pages/paginator.inc.php”);
?>
Voltar Para Busca
Olá amigo, dê mais detalhes do seu problema, para que eu possa te ajudar.
Att,
Lucas Schirm
Parabéns pelo site, graças a vc problema resolvido !! Um abraço
A correção para a Function ereg_replace() também se aplica a Function eregi_replace()? Se SIM como faço a alteração para este trecho de código:
$p_string = eregi_replace( ‘<(‘ . $tags . ‘)[[:space:]]*>’, ”, $p_string );
Essa é linha referenciada no erro do Mantis ao cadastrar um novo caso sem informar os campos obrigatórios.
Olá amigo,
Sua dúvida é muito pertinente, atualizei o post para poder te responder.
Agradeço o comentário
Olá Lucas,
Infelizmente ainda não consegui resolver meu problema. No meu caso fiz a seguinte alteração:
De:
$p_string = eregi_replace( ‘<(‘ . $tags . ‘)[[:space:]]*>’, ”, $p_string );
Para:
$p_string = echo preg_replace( ‘/<(‘ . $tags . ‘)[[:space:]]*>/i’, ”, $p_string );
A alteração está correta?
Att.
Alexsandro Rocha
Olá Alexsandro,
Basta tirar o echo:
$p_string = preg_replace( ‘//i’, ”, $p_string );
Lucas,
Obrigado! Funcionou.
Procurava a correção para esse problema faz tempo. Agora sugiro, aualizar o post porque no exemplo diz para usar o “echo” tanto para a function ereg_replace() como para eregi_replace().
Abraço,
Att.
Alexsandro Rocha
O echo não é obrigatório, mas funciona bem em exemplos
Pingback: Como resolver o erro Assigning the return value of new by reference is deprecated
Como resolver esse problema:
if (preg_match (“([0-9]{1,2})[|-]([0-9]{1,2})[|-]([0-9]{4}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})”, $data, $sep)) {
$dia = $sep[1];
$mes = $sep[2];
$ano = $sep[3];
$hora = $sep[4];
$minuto = $sep[5];
$segundo = $sep[6];
} else
//formato americano com hora
if (preg_match (“([0-9]{4})[|-]([0-9]{1,2})[|-]([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})”, $data, $sep)) {
$dia = $sep[3];
$mes = $sep[2];
$ano = $sep[1];
$hora = $sep[4];
$minuto = $sep[5];
$segundo = $sep[6];
} else
print “Invalid date format!!”;
Warning: preg_match() [function.preg-match]: Unknown modifier ‘[' in C:\wamp\www\ocomon\includes\classes\dateOpers.class.php on line 46
Warning: preg_match() [function.preg-match]: Unknown modifier ‘[‘ in C:\wamp\www\ocomon\includes\classes\dateOpers.class.php on line 56
Invalid date format!!
Obrigada
Olá Dieniffer,
Basta colocar um novo demarcador no seu pattern, ficaria assim:
preg_match (“/([0-9]{4})[|-]([0-9]{1,2})[|-]([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})/”, $data, $sep)
As barras no inicio e no fim demarcam o inicio e o fim da sua expressão, deve utilizar sempre que for utilizar preg_match
Amigos,
O meu codigo é:
$this->_origem = GetConfig(‘CompanyZip’);
$sCepOrigem = eregi_replace(“([^0-9])”,”",$this->_origem);
$this->_destino = $this->_destination_zip;
$sCepDestino = eregi_replace(“([^0-9])”,”",$this->_destino);
$this->_peso = number_format(max(ConvertWeight($this->_weight, ‘kgs’), 0.1), 1);
É uma função de Calculo de Frete. E esta dando o erro:
Deprecated: Function eregi_replace() is deprecated in /home/xx/public_html/modules/shipping/pac/module.pac.php on line 69
Deprecated: Function eregi_replace() is deprecated in /home/xx/public_html/modules/shipping/pac/module.pac.php on line 71
Alguem pode me ajudar???
Você tentou proceder como explicado no post?
Alguem saberia como fica:
return (eregi(
‘^[-!#$%&\'*+\\./0-9=?A-Z^_`{|}~]+’. // the user name
‘@’. // the ubiquitous at-sign
‘([-0-9A-Z]+\.)+’ . // host, sub-, and domain names
‘([0-9A-Z]){2,4}$’, // top-level domain (TLD)
trim($email)));
??
Eu troquei por:
return ( preg_match(
‘/^[-!#$%&\'*+\\./0-9=?A-Z^_`{|}~]+’. // the user name
‘@’. // the ubiquitous at-sign
‘([-0-9A-Z]+\.)+’ . // host, sub-, and domain names
‘([0-9A-Z]){2,4}$/i’, // top-level domain (TLD)
trim($email)));
mas não rolou, acredito que seja algo nessas concatenações…
Olá amigo, exatamente do jeito que você fez, você só esqueceu dos delimitadores de expressão.
return (preg_match(
‘/^[-!#$%&\'*+\\./0-9=?A-Z^_`{|}~]+’. // the user name
‘@’. // the ubiquitous at-sign
‘([-0-9A-Z]+\.)+’ . // host, sub-, and domain names
‘([0-9A-Z]){2,4}$/’, // top-level domain (TLD)
trim($email)));
Cara valeu, deu certinho.
Muito obrigado pelo post!! Realmente o codigo descrito resolveu o problema que estava ocorrendo!!
//Para o código:
//if(ereg(“abc”, “nabc,nobc,treabc”)) { //faz se achar}
//será substituido por:
if(preg_match(“/abc/”, “nabc,nobc,treabc”))
{
// faz se achar
}
Valeu!!!!
Gostaria de como encontrar solução para esta função ereg
<?php
extract ($_POST);
// determina se numero de telefone é valido e imprime
// uma mensagem de erro se não for
if (!ereg("^\([0-9]{3}\)-[0-9]{3}-[0-9]{4}$", $phone))
{
print("
Número de telefone inválido
Um número de telefone válido deve ser na forma:
(555)555-5555
Clique no botão Voltar, digite um telefone válido.
número e reenviar.
Obrigado.”);
die(“”);//termina execução do script
}
?>
Meu amigo que artigo show de bola!!! resolveu um drama do mal aqui no meu trabalho, está de parabens! Valeu cara!
Rapaz, estão de parabéns! Uso o cutenews a um tempo nos meus projetos pelo fato de que conheço muito pouco o PHP, e confesso que com as dicas que vcs deram conseguir atualizar todos os scripts obsoletos. Resolveu o meu problema. Mais uma vez, meus parabéns pelo ótimo artigo. Já está aqui nos meus favoritos.
como resolver o erro
Deprecated: Function split() is deprecated em
$msg2 = $dados["texto"];
$str = split(” “,$msg2); — ERRO APONTANDO PARA ESTA LINHA
$msg = “”;
Olá amigo,
Você pode utilizar a função explode(), ficaria assim:
$str = explode(” “,$msg2); — ERRO APONTANDO PARA ESTA LINHA
Boa tarde Lucas.
Ao tentar acessar o ocomon, logo apos o login (usuário admin e senha admin) surgem as seguintes mensagens.
Deprecated: Function ereg_replace() is deprecated in /home/essencia/public_html/ocomon/includes/menu/phplm320/lib/layersmenu-common.inc.php on line 487
Deprecated: Function ereg_replace() is deprecated in /home/essencia/public_html/ocomon/includes/menu/phplm320/lib/layersmenu-common.inc.php on line 793
Fiz os procedimentos os quais menciou acima, os quais não tiveram efeito.
Se puder me ajudar, pois esse sistema é uma mão na roda para ocorrencias nas manutenções na area de informatica.
Desde já lhe agradeço muito.
Marcelo
Mostre como ficou seu código depois da alteração.
olá amigos do ogenial.com eu também tenho um probleminhas no meus códigos que leva essa função exemplo meu código esta assim:
<?php
if(eregi(basename(__FILE__), $HTTP_SERVER_VARS[REQUEST_URI]))
die ("You can't access this file directly! Please go to the startpage!");
$VERSIONS[basename(__FILE__)] = "3.0";
$TMP['%[GRIDS]%'] = '';
while(list($gkey,$gval) = each($GRID)) {
if($gval['active'] && !$gval['plugin']) {
$gwidth = $gval['grid_type'] ? $gridsizes[$gval['grid_type']]['x'] : (int)($gval['x']*$gval['blocksize_x']);
$gheight = $gval['grid_type'] ? $gridsizes[$gval['grid_type']]['y'] : (int)($gval['y']*$gval['blocksize_y']);
$x_plus = $gval['grid_type'] ? $gridsizes[$gval['grid_type']]['x+'] : 0;
$y_plus = $gval['grid_type'] ? $gridsizes[$gval['grid_type']]['y+'] : 0;
$gridfile = 'grids/grid_'.$gval['gridid'].'.'.$iformat[$gval['image_format']];
if($_GET['gridsearch']) {
$gridfile = 'sr.php?gr='.$gval['gridid'].'&f='.$_GET['gridsearch'].'&x='.time();
$gval['hoverimage'] = $gval['animated'] = false;
}
ob_start();
if($gval['hoverimage'] || $gval['animated']) print '’;
print ”;
print ”;
if($_GET['gridsearch']) {
makemap(false,false,$gval['gridid'],true,DB_array(“SELECT userid FROM “.$dbprefix.”user WHERE (url LIKE ‘%”.mysql_real_escape_string(stripslashes($_GET['gridsearch'])).”%’ OR title LIKE ‘%”.mysql_real_escape_string(stripslashes($_GET['gridsearch'])).”%’) AND submit IS NOT NULL AND gridid=’”.$gval['gridid'].”‘”,’+'),true);
} else {
@include(‘grids/area_’.$gval['gridid'].’.htm’);
}
print ”;
if($_GET['zoom']) {
print ”;
print ”;
} else {
print ”;
}
print ”;
if($gval['hoverimage'] || $gval['animated'] || is_array($SHOW_JOB[$gval['gridid']])) print ”; // Jobs
$TMP['%[GRIDS]%’] .= $TMP['%[GRID_'.$gval['gridid'].’]%’] = ob_get_contents();
ob_end_clean();
if($gval['show_box'] == !$_GET['zoom']) $include_tooltip = true;
}
}
if(@file_exists($LANGDIR.’header_grids_page’.$PAGE_ID.’.htm’)) {
print template($LANGDIR.’header_grids_page’.$PAGE_ID.’.htm’,$TMP);
} else {
print template($LANGDIR.’header_grids.htm’,$TMP);
}
?>
no meu caso eu teria que trocar if(eregi(basename(__FILE__), $HTTP_SERVER_VARS[REQUEST_URI]))
por: if(preg_match(basename(__FILE__), $HTTP_SERVER_VARS[REQUEST_URI]))
ou teria mas algo.
Por que com o problema Function eregi()
esta dando error em outras paginas que também leva o if(ereg(
pois sou novato também e gostaria de umas orientações por favor se puder é claro ok um forte abraço a todos.
Olá pessoal estou com o seguinte problema quando vou enviar um email utilizando o meu formulário de Email apresenta a seguinte mensagem “Deprecated: Function eregi() is deprecated in contact.php on line 9
ArrayEnter valid your infomation, please”
o código fonte e esse alguém poderia me ajudar a corrigir esse problema.
” $value){
if(in_array($value,$required)){
if ($key != ‘subject’) {
if( empty($_POST[$value]) ) { echo ‘Enter info in Required field’; exit; }
}
$email_content .= $value.’: ‘.$_POST[$value].”\n”;
}
}
if(@mail($your_email,$email_subject,$email_content)) {
echo ‘Message sent !’;
} else {
echo ‘ERROR!’;
}
}
?>”
Olá amigo,
Estou com problemas para resolver no código abaixo:
if(eregi(basename(__FILE__), $HTTP_SERVER_VARS[REQUEST_URI]))
die (“You can’t access this file directly! Please go to the startpage!”);
$VERSIONS[basename(__FILE__)] = “3.0″;
$TMP['%[GRIDS]%’] = ”;
Eregi não funciona mais, vc tem que fazer com preg_match(“//i”) agora.
Muito bom
Alguém poderia ajudar para transformar o código abaixo:
Veja que aparece 2 vezes a função eregi().
} if (($lang_type == 1 && eregi(‘^(‘ . $value[0] . ‘)(;q=[0-9]\\.[0-9])?$’, $lang_str)) || ($lang_type == 2 && eregi(‘(\(|\[|;[[:space:]])(‘ . $value[0] . ‘)(;|\]|\))’, $lang_str))) { $lang = strtolower($key); break; } } reset($LANG_ACTIVE); } function hex2rgb($hex) { $hex = preg_replace(“/[^a-fA-F0-9]/”,”,$hex);
Estou quebrando a cabeça e não consigo!
Problema resolvido, muito obrigadooo
ola pessoal, ja tentei varias formas de substituir o ereg por preg_match, porem sem sucesso nenhum alguém sabe me dizer como ficaria certo?
if (ereg($pattern,$email)){
return TRUE;}
else {
return FALSE;}
Faltou linhas ai para podermos te ajudar, precisamos saber o conteúdo de $pattern
seria uma validação de e-mail..
function validarEmail($email){
$conta = “^[a-zA-Z0-9\._-]+@”;
$dominio = “[a-zA-Z0-9\._-]+.”;
$extensao = “([a-zA-Z]{2,4})$”;
$pattern = $conta.$dominio.$extensao;
if (ereg($pattern,$email)){
return TRUE;}
else {
return FALSE;}
Uso o Interspire e estou com este mesmo problema no modulos correios após mudança na versão do PHP esta dica serve neste caso? Desde já agradeço!
Vlw mto, tava com esse problema em um codigo que tinha feito em 2006
Fiz a mudança e nunca consegui, segue abaixo o codigo:
eregi_replace(‘\.([a-z]{3,4})’, ‘-’ . $width . ‘x’ . $height . ‘.jpg’, $filename);
Ficaria assim:
preg_replace(‘/\.([a-z]{3,4})/i’, ‘-’ . $width . ‘x’ . $height . ‘.jpg’, $filename);
Muito obrigado amigo ;D
Boa noite ^^
Ao inserir uma imagem, aparece esse erro
Deprecated: Function eregi() is deprecated in
Segue abaixo o código atual:
if (!eregi(“^image\/(pjpeg|jpeg|gif)$”, $_FILES['upload_imagem']['type']))
Tentei de algumas formas, mesmo assim não consegui.. poderia me ajudar? sou nova nessa área
Obrigada
Olá amigo, consegue me ajudar com a minha função?
Segue o código.
function texto($texto){
$texto_arrumado = preg_replace(“/(\\r)?\\n/i”, “”, $texto);
$texto_covertido = ereg_replace(“[[:alpha:]]+://[^[:space:]]+[[:alnum:]/]”,
“\“, $texto_arrumado);
return $texto_covertido;
}
preciso de ajuda por favor
erro
Deprecated: Function eregi() is deprecated in
=============================================
codigo
if(eregi(“^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$”, $email)) {
Boa noite
Ao inserir uma imagem, o mesmo apresenta esse erro:
Deprecated: Function eregi() is deprecated in
Segue abaixo o código atual
if (!eregi(“^image\/(pjpeg|jpeg|gif)$”, $_FILES['upload_imagem']['type']))
Tentei alterá-lo mas não consegui
Olá.
Estou com um problema com a alteração dessa função há semanas, e não consigo sair do lugar. Imagino que seja coisa bem simples, mas sempre patino e não saio do lugar.
Segue código:
function getphotos($photodir) {
global $thumbext;
$photos=array();
if ($handle = opendir($photodir)) {
while (false !== ($file = readdir($handle))) {
if ($file != “.” && $file != “..” && !eregi(“.jpg”.$thumbext.”$”,$file) && eregi(“.jpg$”,$file)){
$photos[] = $file;
}
}
closedir($handle);
}
sort($photos);
return $photos;
}
Agradeço a quem puder ajudar!!!
ótimo exemplo de como não explicar qual é o problema
falta tudo, menos qual a dificuldade…
Hahaha! Putz! Verdade, Lucas! Que inhaca! Só o código não adianta! rs!
Bom…. Fiz a troca da função eregi pela preg_match, ficando a linha do 2º if dessa maneira:
if ($file != “.” && $file != “..” && !preg_match(/^’.jpg’/i.$thumbext.”$”,$file) && preg_match(/^’.jpg$’/i,$file)){
Porém… Ao efetuar o teste, ocorre:
Parse error: syntax error, unexpected ‘/’, expecting ‘)’ in /home/clubepr/public_html/fotos/2010/09-setembro/12/index.php on line 215
Já revirei essa linha de cabeça pro ar, e não achei onde está o erro..
Valeu!