PHP - Lista determinada de links en que se muestren en orden a los usuarios

dcmdcm Seguir

Beta
SEO
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
15 Nov 2012
Mensajes
77
Hola Foro.
Tengo la siguiente consulta de PHP, lenguaje en el que no soy muy diestro.

Quiero hacer una lista de links definida, 4 links digamos.
Busco que cuando un usuario entre a la pagina en donde este este codigo de php se le muestre el 1er link, que al proximo usuario al entrar se le muestre el siguiente link de la lista, que al proximo el siguiente link y que al terminar la lista vuelva al primero.

Luego a la variable de php que seria como $linkquesemuestra la puedo llamar por HTML o javascript.

Entiendo que mas o menos lo que necesito es un ciclo for que vaya pasando de link a link desde el lado del servidor y luego cada usuario que entra vea el link que le toque.
Esto es distinto a que le aparezca un enlace al azar, porque de este modo con 20 usuarios cada link se mostraria 5 veces.

Se que algo asi seria mas o menos para que sea random, pero lo que busco es que recorra la lista de forma secuencial cosa que si entran 4 usuarios a cada uno se le muestre un link distinto.
PHP:
<?php

$link[1] = "http://www.sitio1.com";

$link[2] = "http://www.sitio2.com";

$link[3] = "http://www.sitio3.com";

$link[4] = "http://www.sitio4.com";

$id = rand(1,count($link));
 
echo $link[$id];
?>

Alguien podria decirme como seria el codigo?
Entiendo que es simple como destapar una gaseosa pero en php soy como un niño con garfios en vez de manos.
 

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.101

con esto solucionas tu dilema
PHP:
<?php
	$NUM = @file_get_contents('numeros.txt');
	if($NUM<=0) $NUM = 0;
	$LNK[] = 'http://www.sitio0.com';
	$LNK[] = 'http://www.sitio1.com';
	$LNK[] = 'http://www.sitio2.com';
	$LNK[] = 'http://www.sitio3.com';
	$LNK[] = 'http://www.sitio4.com';
	$LNK[] = 'http://www.sitio5.com';

	if(count($LNK[$NUM])>$NUM) $NUM = 0;
	echo $LNK[$NUM];

	file_put_contents('numeros.txt',$NUM++);
?>

1- se abre un archivo numeros.txt
2- se ve si el numero del array es vacio, si es asi el numero es 0
3- se crea el array de links
4- si la cantidad de link es mayor al numero guardado se inicia desde 0
5- se muestra el link
6- se guarda el nuevo numero
 

dcmdcm

Beta
SEO
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
15 Nov 2012
Mensajes
77
Gracias Cicklow!
Entiendo, pero hay forma de hacerlo sin necesitar de un archivo txt ?
Esto no haria que con 10000 visitas se consuma y tarde mucho en la lectura y escritura?
 

Facundo

Xi
Desde
15 Abr 2009
Mensajes
4.432
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Gracias Cicklow!
Entiendo, pero hay forma de hacerlo sin necesitar de un archivo txt ?
Esto no haria que con 10000 visitas se consuma y tarde mucho en la lectura y escritura?

Es solo lectura de un .txt, cuando vos cargás una página, se leen muchos archivos, uno más (y muy chico) no te va a hacer mucha mucha diferencia.


Saludos!

Si no, la solución es hacerlo random, aunque no es lo mismo, evitás lectura en disco adicional.
 

jtsamper

Beta
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
26 Dic 2013
Mensajes
60
Esa es la unica forma dcmdcm ya que necesitas guardar en el servidor el ultimo acceso, podrias hacerlo por base de datos.

Pero esto es una función simple y eficaz y recuerda tener creado el archivo o tener permisos en la carpeta para poder escribirlo.
 
Arriba