¿Cómo puedo hacer esto con los enlaces?

  • Autor Autor Cristhian
  • Fecha de inicio Fecha de inicio
:O Creo que si me servirá amigo, muchas gracias por tu aporte, ahora lo pruebo xD No hagas caso al comentario que dejé en TD, después de anlizarlo veo que puede servirme. Saludos!

Pues es cuestión de acomodarlo, pero de que captura el título, lo hace 🙂
 
Espero la contribución del script del anonimizador entonces 🙂

De momento aquí está lo que hice:

Titulo de la URL de una página con PHP

Obviamente no voy a obligarlos a entrar, porque si no me pongo autobombero y se arma un lío.

El código que armé es este:

[...]

Saludos.

PD: Si no lo entienden, se los explico, aunque es bastante sencillo de entender, los números 7 son debido a la longitud de las cadenas titles.

Nunca probe ese método, pero en Favs (Un proyecto medio abandonado que tengo -.-) estoy usando este y funciona perfecto... por ahi le sirve a alguien 🙂

PHP:
   function get_site_name($url)
   	{
		$page = file_get_contents($url);

		preg_match('#<title>(.*)</title>#s', $page, $title);
		if(!empty($title[1]))
		{
			return $title[1];
		}
		else
		{
			return "No se obtuvo el t&iacute;tulo";
		}
	}

Solo lo modifiqué para utilizar file_get_content, originalmente estaba usando cURL.
 
PHP:
<?
global $link_head;
global $link_time;
?>
<html>
<head>
<title>Redirigiendo a <?=$link_head?></title>
<meta http-equiv="refresh" content="<?=$link_time?>; URL=<?=$link_head?>">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<center>
<h1>Cargando la URL...</h1>
<br />
<img src="http://crix.us/loading.gif" />
<p>Por Favor espere <?=$link_time?> segundos mientras es redirigido hacia <strong><a href="<?=$link_head?>"><?=$link_head?></a></strong> Gracias.</p>

<?php
 
  $url = "<?=$link_head?>";
  $html = file_get_contents($url);
 
  $ini = strpos ($html, '<title>');
  $fin = strpos ($html, '</title>');
 
  $long = $fin - $ini - 7;
 
  $titulo = substr ($html, ($ini+7),$long);
 
  echo $titulo;
 
  // Si no se imprimen correctamente las tildes, quitar el siguiente comentario
  // echo utf8_encode($titulo); 
 
?>

<br />
</center>
<div class="clearer"></div>
</div>
</body>
</html>

Pongo algo así, pero no me funciona 🙁 Disculpen mi ignorancia. No sé como hacerlo funcionar, sólo quiero que meustre el titulo de la página para la relevancia en los anuncios. Es solo un fragmento del código, no es todo el código jejeje

Espero que lo haya hecho mal, por que espero que funcione de alguna manera xD Gracias!
 
[...]

Pongo algo así, pero no me funciona 🙁 Disculpen mi ignorancia. No sé como hacerlo funcionar, sólo quiero que meustre el titulo de la página para la relevancia en los anuncios. Es solo un fragmento del código, no es todo el código jejeje

Espero que lo haya hecho mal, por que espero que funcione de alguna manera xD Gracias!

PHP:
<?
global $link_head;
global $link_time;
?>
<html>
<head>
<title>Redirigiendo a <?=$link_head?></title>
<meta http-equiv="refresh" content="<?=$link_time?>; URL=<?=$link_head?>">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<center>
<h1>Cargando la URL...</h1>
<br />
<img src="http://crix.us/loading.gif" />
<p>Por Favor espere <?=$link_time?> segundos mientras es redirigido hacia <strong><a href="<?=$link_head?>"><?=$link_head?></a></strong> Gracias.</p>

<?php
 
  $url = $link_head;
  $html = file_get_contents($url);
 
  $ini = strpos ($html, '<title>');
  $fin = strpos ($html, '</title>');
 
  $long = $fin - $ini - 7;
 
  $titulo = substr ($html, ($ini+7),$long);
 
  echo $titulo;
 
  // Si no se imprimen correctamente las tildes, quitar el siguiente comentario
  // echo utf8_encode($titulo); 
 
?>

<br />
</center>
<div class="clearer"></div>
</div>
</body>
</html>

Supongo que sera eso, pero... de donde sacas las variables $link_head y $link_time?

pd: Por si no se nota, edite la linea $url = $link_head;
PHP:
<?=$xxx?>
Es la forma "corta" (Además de no ser oficial y estar deprecada) para imprimir algo en la página (echo). En esa linea no se necesitas imprimir nada, solo "asociar" su contenido a otra variable.
 
Última edición:
Son variables desde el archivo index.php, este archivo es page_redirect.php, el cual es el template de la redirección.

Con el codigo que mostré no funciona Santiago 🙁
 
Son variables desde el archivo index.php, este archivo es page_redirect.php, el cual es el template de la redirección.

Con el codigo que mostré no funciona Santiago 🙁

Tendríamos que ver el código completo.
El script de knxdt funciona perfecto, por ahí no está el problema.

Nota: algo que se me acaba de ocurrir... tu hosting permite conectarse a páginas remotas?
Es decir, permite utilizar file_get_content()?
 
Última edición:
No obtienes ningún error?

Prueba con esto, por las dudas:
PHP:
<?
global $link_head;
global $link_time;
?>
<html>
<head>
<title>Redirigiendo a <?=$link_head?></title>
<meta http-equiv="refresh" content="<?=$link_time?>; URL=<?=$link_head?>">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<center>
<h1>Cargando la URL...</h1>
<br />
<img src="http://crix.us/loading.gif" />
<p>Por Favor espere <?=$link_time?> segundos mientras es redirigido hacia <strong><a href="<?=$link_head?>"><?=$link_head?></a></strong> Gracias.</p>

<?php
 
  $url = $link_head;

	$ch = curl_init();

	curl_setopt($ch, CURLOPT_URL,$url);

	curl_setopt($ch, CURLOPT_POST, 1);

	curl_setopt($ch, CURLOPT_POSTFIELDS, $urlstring);

	curl_setopt($ch, CURLOPT_REFERER, "http://www.tusitio.com");

	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

	$data = curl_exec($ch);

	curl_close($ch);

	$titulo = 'No se pudo obtener el t&iacute;tulo';

	if($data)
	{
		$ini = strpos ($html, '<title>');
		$fin = strpos ($html, '</title>');
		
		$long = $fin - $ini - 7;
		
		$titulo = substr ($html, ($ini+7),$long);
	}
	  echo $titulo;
 

 
  // Si no se imprimen correctamente las tildes, quitar el siguiente comentario
  // echo utf8_encode($titulo); 
 
?>

<br />
</center>
<div class="clearer"></div>
</div>
</body>
</html>
 
Mmm, no bro, no funciona.
Fijate

Gracias por la ayuda 😉
 
😛 parece que a varios nos llamo la antencion hacer esto.
Yo dejo mi aporte, aunque veo que Kn ya hizo lo que querian.

PHP:
<?
function extraertituloenlaces($web){
$viewsource = file_get_contents($web)or die('FAK!! no existe o algo esta mal');
$iniciotitulo = strpos($viewsource, '<title>') ;
$finaltitulo = strpos($viewsource, '</title>') - $iniciotitulo;
$titulo = substr($viewsource, $iniciotitulo+7, $finaltitulo-7);
echo  '<a href='.$web.'>'. $titulo.'</a>' ;
}
extraertituloenlaces('http://www.forobeta.com');

?>

Lo que yo hice imprime un link + el titulo
¿Cómo puedo hacer esto con los enlaces? - Página 3
 
Última edición:
Mmm, no bro, no funciona.
Fijate

Gracias por la ayuda 😉

Proba este:
PHP:
<?
global $link_head;
global $link_time;
?>
<html>
<head>
<title>Redirigiendo a <?=$link_head?></title>
<meta http-equiv="refresh" content="<?=$link_time?>; URL=<?=$link_head?>">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<center>
<h1>Cargando la URL...</h1>
<br />
<img src="http://crix.us/loading.gif" />
<p>Por Favor espere <?=$link_time?> segundos mientras es redirigido hacia <strong><a href="<?=$link_head?>"><?=$link_head?></a></strong> Gracias.</p>

<?php
 
  $url = $link_head;

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL,$url);

    curl_setopt($ch, CURLOPT_POST, 1);

    curl_setopt($ch, CURLOPT_POSTFIELDS, $urlstring);

    curl_setopt($ch, CURLOPT_REFERER, "http://www.tusitio.com");

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    $data = curl_exec($ch);

    curl_close($ch);



    if($data)
    {
        $ini = strpos ($html, '<title>');
        $fin = strpos ($html, '</title>');
        
        $long = $fin - $ini - 7;
        
        $titulo = 'Titulo curl: ' . substr ($html, ($ini+7),$long);
    }
    else
    {
        $titulo = 'No se pudo obtener el t&iacute;tulo';
     }
      echo $titulo;
 
  // Si no se imprimen correctamente las tildes, quitar el siguiente comentario
  // echo utf8_encode($titulo); 
 
?>

<br />
</center>
<div class="clearer"></div>
</div>
</body>
</html>

Si sigue sin funcionar (Desconozco porque no funciona ahora):

Crea un nuevo archivo PHP y pega esto:
PHP:
<?php phpinfo(); ?>

Súbelo y pasanos la URL...
 
Tonto de mi... -.-
PHP:
<?
global $link_head;
global $link_time;
?>
<html>
<head>
<title>Redirigiendo a <?=$link_head?></title>
<meta http-equiv="refresh" content="<?=$link_time?>; URL=<?=$link_head?>">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<center>
<h1>Cargando la URL...</h1>
<br />
<img src="http://crix.us/loading.gif" />
<p>Por Favor espere <?=$link_time?> segundos mientras es redirigido hacia <strong><a href="<?=$link_head?>"><?=$link_head?></a></strong> Gracias.</p>

<?php
 
  $url = $link_head;

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL,$url);

    curl_setopt($ch, CURLOPT_POST, 1);

    curl_setopt($ch, CURLOPT_POSTFIELDS, $urlstring);

    curl_setopt($ch, CURLOPT_REFERER, "http://www.tusitio.com");

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    $html = curl_exec($ch);

    curl_close($ch);



    if($html)
    {
        $ini = strpos ($html, '<title>');
        $fin = strpos ($html, '</title>');
        
        $long = $fin - $ini - 7;
        
        $titulo = 'Titulo curl: ' . substr ($html, ($ini+7),$long);
    }
    else
    {
        $titulo = 'No se pudo obtener el t&iacute;tulo';
     }
      echo $titulo;
 
  // Si no se imprimen correctamente las tildes, quitar el siguiente comentario
  // echo utf8_encode($titulo); 
 
?>

<br />
</center>
<div class="clearer"></div>
</div>
</body>
</html>
 
Gracias friend, pero una vez más lanza este error:
Titulo curl: 405 Method Not Allowed
Un amigo me dijo que es imposible con PHP, que sólo se puede con AJAX. Gracias por toda la ayuda amigos!
 
Con PHP SI se puede. Con Ajax creería que si, aunque no estoy seguro.

Y ahora mismo está funcionando! No con Google, por lo visto bloquea algunas cositas:
Redirigiendo a http://forobeta.com
 
:O Funciona! Es cierto, sólo con algunos enlaces, pero está perfecto amigo, te lo agradezco mucho!!! Gracias por tu tiempo y por tu aporte amigo.
 
:O Funciona! Es cierto, sólo con algunos enlaces, pero está perfecto amigo, te lo agradezco mucho!!! Gracias por tu tiempo y por tu aporte amigo.

No hay problema 😉
Solo unas cosa, agrega esto:
PHP:
curl_setopt($ch,CURLOPT_FOLLOWLOCATION);
Para que quede así:
PHP:
    curl_setopt($ch, CURLOPT_REFERER, "http://www.tusitio.com");
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

Y edita tusitio.com por la URL de tu sitio, obviamente 😛

PD: Elimina el archivo info.php 😉
 
Listo. Buenisimo amigo, dime que te parece como ha quedado, vendrían bien algunas sugerencias 😉 Redirigiendo a http://www.forobeta.com/
 
Ya llege, pero que tu no querias convertir todo un texto con links a enlaces con el nombre de la web? . Pense que era más complicado.
 
Si, queria eso bro, este que puse ahora no reconoce los titulos de muchas páginas. Igual te agradecería que me pases eso que programaste para probarlo 😀 Saludos!
 
Atrás
Arriba