Ver Mensaje Individual
  #6 (permalink)  
Antiguo 19/11/2008, 01:08
Suyta
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 22 años, 1 mes
Puntos: 1
Respuesta: Cambiar links en página capturada con file_get_contents


Otra vez aquí
Resulta que para aplicar la solución de Pateketrueke necesito tomar una cadena que está contenida en otra. Uso preg_match_all así:

Código PHP:
if(preg_match_all('/<a href=\"\/imgres([\w\W]*?)\>/',$d18a,$fka)) {
  for (
$aki=0; $aki< count($fka[0]); $aki++) {
    
$full=$fka[$aki][$aki];

$a=preg_match('/href="(.+?)"/i', $full, $matchv);
echo 
$a;
$matchv = explode('?', $matchv[1]);
print_r($match);
$test = explode('&', $matchv[1]);
//print_r($test);
foreach ($test as $strk)
{
  
$sub = explode('=', $strk);

  if (
$sub[0] === 'imgrefurl')
  {
    
//echo $test[1];
    
$t=$test[1];
    
$t=str_replace("imgrefurl=", "", $t);
    
//echo $t;
    
$full=str_replace($a, '<a href="'.$t.'</a>', $d18a);
  }
}


}
}
$d23=$full; 
Esa variable $d18a es la cadenota donde tengo el texto de toda la página y $full es la parte donde quiero cambiar los links.
Pero........ no hay forma de que ese preg_match_all trabaje... vuelve siempre vacío y NO está vacío.

Código PHP:
if(preg_match_all('/<a href=\"\/imgres([\w\W]*?)\>/',$d18a,$fka)) { 
Qué esta mal ahí ? Yo uso un preg_match_all similar para otra parte del texto y trabaja pero éste nop.