Foros del Web » Programando para Internet » PHP »

Expresiones regulares

Estas en el tema de Expresiones regulares en el foro de PHP en Foros del Web. Hola amig@s, tengo el siguiente problema en la siguiente direccion: http://www.malwareurl.com/listing.php?domain=bbssifu.cn , en la parte que hay el codigo: Código PHP: < tr >< td colspan ...
  #1 (permalink)  
Antiguo 15/07/2009, 08:40
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Expresiones regulares

Hola amig@s, tengo el siguiente problema en la siguiente direccion: http://www.malwareurl.com/listing.php?domain=bbssifu.cn, en la parte que hay el codigo:
Código PHP:
<tr><td colspan="5" class="table_bg"  height="20" >Malicious URLs on <b>bbssifu.cn</b></td>
</
tr><tr><td style="padding:10px;"><pre>/01.htm
/123.htm
/a.exe</pre></td></tr
tengo que hacer que recoja el dominio de la URL: bbssifu.cn y combinar con el final de la URL que en este caso seria bbssifu.cn/01.htm bbssifu.cn/123.htm bbssifu.cn/a.exe, para eso cree el siguiente codigo:
Código PHP:
$str trim($text);        
$str preg_replace("/\s\s+/"' '$str);
$regExp1="/([^ ]+\.[a-zA-Z]{1,4}[$ ]*)/";
preg_match_all($regExp1$str$patron1);
$regExp2="/(\/[^ ]*)/";
preg_match_all($regExp2$str$patron2);
$count1 count($patron2[1]);
for (
$row1 0$row1 $count1 $row1++) {
    
$string trim($patron1[1][0]).trim($patron2[1][$row1]);
    
$string ereg_replace(" """$string);
    
$h trim("http://".$string);
    echo 
$h."<br>";

pero lo que consigo solo es lo siguiente: bbssifu.cn/01.htm /123.htm /a.exe y no se como correjir este error, no se si el problema es de la expresion regula o de alguna otra cosa, alguien que me ayude
  #2 (permalink)  
Antiguo 15/07/2009, 09:02
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Expresiones regulares

Y si en vez de estar llamando trim($patron1[1][0]) en el for, creas una variable antes del for y le indicas que lo que quieres tener es lo que indicaste?

Código PHP:
$home trim($patron1[1][0]);
for (
$row1 0$row1 $count1 $row1++) { 
    
$string $home.trim($patron2[1][$row1]); 
    
$string ereg_replace(" """$string); 
    
$h trim("http://".$string); 
    echo 
$h."<br>"

  #3 (permalink)  
Antiguo 15/07/2009, 09:09
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Expresiones regulares

diferencia no hay, el problema que yo creo que hay es que esto /01.htm /123.htm /a.exe lo esta tomando como una sola palabra, como podria hacer para que reconosca los espacios que hay en esta palabra y que por cada espacio coloque el dominio? y otra cosa que me di cuenta es que no son espacios, sino saltos de linia, segun veo el codigo html, como podria hacer para que resonosca el salto de linea?
  #4 (permalink)  
Antiguo 15/07/2009, 09:38
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Expresiones regulares

podrias dar un

echo "<pre>";
print_r($patron2);
echo "</pre>";

Para poder ver que hay en el array
  #5 (permalink)  
Antiguo 15/07/2009, 10:02
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Expresiones regulares

Estoy tratando de guardar el contenido en un documento de texto y me sale esto: /01.htm/123.htm/a.exe, sin espacios con lo que me pediste que ponga me salio asi:
/01.htm
/123.htm
/a.exe, de forma escalonada
  #6 (permalink)  
Antiguo 15/07/2009, 10:14
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Expresiones regulares

Podrias indicar que hay en el $text es para poder verificar entonces bien el codigo. Si es posible escribe todo el ejemplo para poder ayudarte
  #7 (permalink)  
Antiguo 15/07/2009, 15:23
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Expresiones regulares

el $text lo que contiene es este codigo filtrado de la pagina que puse al inicio:
Código PHP:
<tr><td colspan="5" class="table_bg"  height="20" >Malicious URLs on <b>bbssifu.cn</b> </td
</
tr><tr><td style="padding:10px;"><pre>/01.htm 
/123.htm 
/a.exe</pre></td></tr 
con la primera ExRegular, lo que hice fue sacar los dominios (serian las palabras terminadas en punto (.) y de 1 a 4 palagras, por ejemplo xxxxxxx.xxx y con la segunda extraigo lo que se encuentra entre <pre> y </pre> y esta las toma por palabras que inician con el simbolo / no se si me entiendas esta parte ya que es confuso explicarlo, pero bueno el codigo el contenido de $text es el codigo html que esta al inicio, aparte uso filtros para limpiar el texto, pero bueno el codigo es este
Código PHP:
$url1  = @file_get_contents('http://........');
$text ereg_replace("</b>"" "$url1);
$text ereg_replace("<b>"" "$text);
$str trim($text);        
$str preg_replace("/\s\s+/"' '$str);
$regExp1="/([^ ]+\.[a-zA-Z]{1,4}[$ ]*)/";
preg_match_all($regExp1$str$patron1);
$regExp2="/(\/[^ ]*)/";
preg_match_all($regExp2$str$patron2);
$count1 count($patron2[1]);
for (
$row1 0$row1 $count1 $row1++) {
    
$string trim($patron1[1][0]).trim($patron2[1][$row1]);
    
$string ereg_replace(" """$string);
    
$h trim("http://".$string);
    echo 
$h."<br>";

  #8 (permalink)  
Antiguo 15/07/2009, 15:35
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Expresiones regulares

Verifica si esto te resuelve

Código PHP:
$text '<tr><td colspan="5" class="table_bg"  height="20" >Malicious URLs on <b>bbssifu.cn</b> </td> 
</tr><tr><td style="padding:10px;"><pre>/01.htm 
/123.htm 
/a.exe</pre></td></tr>'
;

$text strip_tags($text);

preg_match("|\w*\.\w{2,6}|"$text$url);
preg_match_all("|/\w*\.\w{2,6}|",$text,$web);

for(
$i=0$i<count($web[0]); $i++){
    
$string $url[0].$web[0][$i];
    
$h trim("http://".$string);
    echo 
$h."<br />";

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 14:05.