Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Error con función indefinida

Estas en el tema de Error con función indefinida en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola compañeros!!, estaba felizmente programando cuando un error salvaje me ataco: Cita: Fatal error: Call to undefined function clean() in [...]KeyPer.php on line 4 Estoy ...
  #1 (permalink)  
Antiguo 29/11/2012, 19:40
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 17 años, 6 meses
Puntos: 29
Exclamación Error con función indefinida

Hola compañeros!!, estaba felizmente programando cuando un error salvaje me ataco:

Cita:
Fatal error: Call to undefined function clean() in [...]KeyPer.php on line 4
Estoy intentando generar las keywords de un sitio web, pero me marca ese error que no me deja continuar.

Para llamar a la clase y la función que necesito utilizo:

Código PHP:
    if (empty($keywords)){
$ekeys = new KeyPer;
$keywords = $ekeys->Keys($html);
} 
El código del archivo KeyPer.php es:

Código PHP:
<?php
class KeyPer {
function 
Keys($html) { 
$html = clean($html); 
$blacklist='de,la,los,las,el,ella,nosotros,yo,tu,el,te,mi,del,ellos'; 
$sticklist=''; 
$minlength = 3; 
$count = 17; 

$html = preg_replace('/[\.;:|\'|\"|\`|\,|\(|\)|\-]/', ' ', $html); 
$html = preg_replace('/¡/', '', $html); 
$html = preg_replace('/¿/', '', $html);
 
$keysArray = explode(" ", $html); 
$keysArray = array_count_values(array_map('strtolower', $keysArray)); 
$blackArray = explode(",", $blacklist); 

foreach(
$blackArray as $blackWord){ 
if(isset(
$keysArray[trim($blackWord)])) 
unset(
$keysArray[trim($blackWord)]); 
} 
arsort($keysArray); 
$i = 1; 
$keywords = ""; 
foreach(
$keysArray as $word => $instances){ 
if(
$i > $count) break; 
if(
istrlen(trim($word)) >= $minlength && is_string($word)) { 
$keywords .= $word . ", "; 
$i++; 
} 
} 

$keywords = rtrim($keywords, ", "); 

return 
$keywords=$sticklist.''.$keywords; 
} 

function 
clean($html) { 

$regex = '/(([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-]+)(\\.[A-Za-z0-9-]+)*)/iex'; 
$desc = preg_replace($regex, '', $html); 
$html = preg_replace( "''si", '', $html ); 
$html = preg_replace( '/]*>([^<]+)<\/a>/is', '\2 (\1)', $html ); 
$html = preg_replace( '//', '', $html ); 
$html = preg_replace( '/{.+?}/', '', $html ); 
$html = preg_replace( '/ /', ' ', $html ); 
$html = preg_replace( '/&/', ' ', $html ); 
$html = preg_replace( '/"/', ' ', $html ); 
$html = strip_tags( $html ); 
$html = htmlspecialchars($html); 
$html = str_replace(array("\r\n", "\r", "\n", "\t"), " ", $html); 

while (
strchr($html," ")) { 
$html = str_replace(" ", " ",$html); 
} 

for (
$cnt = 1; 
$cnt < strlen($html)-1; $cnt++) {
if ((
$html{$cnt} == '.') || ($html{$cnt} == ',')) { 
if (
$html{$cnt+1} != ' ') { 
$html = substr_replace($html, ' ', $cnt + 1, 0); 
} 
} 
} 
return 
$html; 
} 
}
?>
Estuve tratando de arreglar el error de distintas maneras, busque algunos tutoriales de POO con respecto a las clases y revise algunas preguntas similares, pero sigue igual.

No se porque me marca indefinida, alguien sabe como se puede solucionar este error??.

Saludos!!!
  #2 (permalink)  
Antiguo 29/11/2012, 19:53
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 19 años, 7 meses
Puntos: 137
Respuesta: Error con función indefinida

Código PHP:
Ver original
  1. $html = $this->clean($html);  // KeyPer.php linea 4
  #3 (permalink)  
Antiguo 29/11/2012, 20:59
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 17 años, 6 meses
Puntos: 29
Respuesta: Error con función indefinida

Gracias!! creo que funciono, pero ahora queda cargando hasta el infinito jaja, asi que voy a ver que es lo que le pasa al código.

Pero el error no me volvió a aparecer.

Saludos!

Etiquetas: funcion+indefinida, funciones, poo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:49.