Generar contenido aleatorio para página web en PHP

  • Autor Autor Kakkonen
  • Fecha de inicio Fecha de inicio
Estado

🔒 Este tema está cerrado para nuevas respuestas.

⏰ Solo el creador del tema puede solicitar la reapertura de sus propios temas, pero únicamente dentro de los 60 días previos a la última actualización.

Kakkonen

Kakkonen

Ómicron
SEO
Verificación en dos pasos activada
Verificado por Whatsapp
hola, les cuento, tengo una pagina de turismo Tours, Hoteles, Destinos, Viajes, Playas y Turismo en Mxico y no tiene base de datos pero si es php, he usado algunos codigos como includes, mi problema esta en el index, pierdo mucho tiempo en actualizar el index, entonces lo que quiero es lo siguiente:

ya sabeis que todo el index tiene includes, a esos includes quiero ponerle una especie de random, pero que cargue archivos para que no pese tanto y generar pequeños archivos con los contenidos y que roten, asi mis usuarios veran que el index siempre esta cambiando.

he visto codigos en la web pero son para banners o bien para frases, pero yo requiero estructuras por ejemplo un include tiene esto:

PHP:
<div id="#"> <div id="#"> <div id="#"> <div id="#"> <ul> <li><div id="#"><div id="#"><div id="#" style="display:none; z-index: 100000; position: absolute;"><div id="#"></div></div> <div id="1212"> <div class="#"<span class="#"><a href="#" rel="nofollow"><img src="#" width="100" height="100"></a></span></div><div class="#"><a href="#" rel="nofollow">Tours Riviera Maya</a></div> <h1><a href="#" rel="dofollow">Río Secreto en Playa del Carmen</a></h1>  </div> </div></div></li> </ul> </div> <div id="clear"></div> </div> </div> </div>

que en el index mostraria un articulo de rio secreto dentro de mi web, lo que busco es generar varios archivos.php con este contenido y en el archivo base del include poner el script o el codigo para que randomice la lista de archivitos para que muestre diferentes contenidos

algun programador que quiera ayudarme?
 
Medio tarde, pero a ver si te doy una mano y que te sirva.

Calculo que los archivos .php con cada "articulo" ya los tenes creados.
Para hacer el codigo facil te recomiendo que a todos los archivos le pongas un nombre secuencial, por ejemplo de la siguiente forma: nota1.php, nota2.php, ......, nota200.php y asi.


Insertar CODE, HTML o PHP:
<?php
    
    //El numero de notas totales tiene que ser bastante mas grande que
    //la cantidad de notas que queres mostrar porque si no se puede generar
    //un bucle que tarde mucho o incluso un bucle infinito (en caso que el numero de notas que quieras mostrar sea mayor al total)

    $notas = array();
    //Cambiar el 5 por la cantidad de notas que queres mostrar
    for ($i = 1; $i <= 5; $i++) {
        while (!insertOne($notas)){}
    }

    function insertOne (&$notas) {
        $nota = rand(0, 20); //cambiar el 20 por el numero total de notas
        if (in_array($nota, $notas)) {
            return false;
        } else {
            $notas[] = $nota;
            return true;
        }
    }

    foreach ($notas as $n) {
        include "nota" . $n . ".php";
    }
?>
 
gracias pero no entendi en donde tengo que colgar las notas y este codigo iria dentro del archivo include?
 
En el ejemplo de Chapi, "notas" se refiere al nombre de tus archivo.php que llamas con un include.

Ejemplo:

Tienes 3 archivos.php para incluir

articulo.php
rio_secreto.php
otro_archivo.php


Y lo que tienes que hacer es renombrar esos archivos para que sea mas sencillo el código del random (también puedes usarlo tal cual, pero sería un poco mas largo el código)
Entonces quedaría así:

nota1.php
nota2.php
nota3.php


Y el código que te puso mas arriba el compañero, tienes que colocarlo en el lugar donde utilizas el include para llamar a tus archivos.
 
Exactamente, es como dice Avatar de gustavodbs.

EDIT: Te respondo el pm por aca

Este codigo deberia ir en tu index (o si no es el index en la pagina donde actualmente estas haciendo los include).
Y deberias reemplazar los includes que tenes puestos a mano (si es que estan asi) por esto que te puse aca, claro que podrias modificarlo segun tus necesidades.
Como esta hecho, contempla que el archivo que tiene los includes esta en el mismo directorio donde estan las notas, si las notas llegasen a estar en un directorio distinto solo tienes que editar el ultimo foreach apendeando el directorio al nombre del archivo.
 
Última edición:
a ver si entendi...

en el index tengo el include1 que va al archivo include1.php, dentro de ese include1.php tengo las tablas y los div que muestran el articulo que quiero mostrar, debo reemplazar ese contenido por el script y crear un archivo que se llame nota1.php con el contenido que ya tenia include1.php

espero que sea asi
 
en el index tengo el include1 que va al archivo include1.php, dentro de ese include1.php tengo las tablas y los div que muestran el articulo que quiero mostrar, debo reemplazar ese contenido por el script y crear un archivo que se llame nota1.php con el contenido que ya tenia include1.php

No es así, lo que deberías reemplazar es el include(); que esta en tu index, por el código de chapi. Lo de notas era solo un ejemplo, si todos tus archivos se llaman include*.php sería lo mismo que utilizar notas*.php, solamente deberías modificar la ultima linea de código.

PHP:
  include "include" . $n . ".php";



No entiendo muy bien lo que quieres lograr, pero entiendo lo que chapi trata de explicarte con el código que te facilitó. Espero que pueda servirte mi explicación.

que en el index mostraria un articulo de rio secreto dentro de mi web, lo que busco es generar varios archivos.php con este contenido y en el archivo base del include poner el script o el codigo para que randomice la lista de archivitos para que muestre diferentes contenidos

Si interpreto bien lo que debería hacer el código de chapi, sería lo siguiente..

Tienes el index original:
index.php
PHP:
<html>
<head><title>web</title></head>
<body>
<!--codigo por aqui-->
<?php
/*Aqui esta el include para una seccion de la web, esta sección es la que vas a reemplazar por el código de chapi */
include("archivo.php");
?>
<!-- y mas codigo por aqui-->
</body>
</html>

Reemplazas la sección del include por el código mas arriba
index.php
PHP:
<html>
<head><title>web</title></head>
<body>
<!--codigo por aqui-->
<?php
    
    //El numero de notas totales tiene que ser bastante mas grande que
    //la cantidad de notas que queres mostrar porque si no se puede generar
    //un bucle que tarde mucho o incluso un bucle infinito (en caso que el numero de notas que quieras mostrar sea mayor al total)

    $notas = array();
    //Cambiar el 5 por la cantidad de notas que queres mostrar
    for ($i = 1; $i <= 5; $i++) {
        while (!insertOne($notas)){}
    }

    function insertOne (&$notas) {
        $nota = rand(0, 20); //cambiar el 20 por el numero total de notas
        if (in_array($nota, $notas)) {
            return false;
        } else {
            $notas[] = $nota;
            return true;
        }
    }

    foreach ($notas as $n) {
        include "nota" . $n . ".php";
    }
?>
<!-- y mas codigo por aqui-->
</body>
</html>



Ahora bien, lo que has dicho en el primer post:
Insertar CODE, HTML o PHP:
he visto codigos en la web pero son para banners o bien para frases, pero yo requiero estructuras por ejemplo un include tiene esto:
<div id="#"> <div id="#"> <div id="#"> <div id="#"> <ul> <li><div id="#"><div id="#"><div id="#" style="display:none; z-index: 100000; position: absolute;"><div id="#"></div></div> <div id="1212"> <div class="#"<span class="#"><a href="#" rel="nofollow">

Lo que deberías de hacer es poner ese código que mencionas en un archivo nota*.php
Por ejemplo:

nota1.php
Insertar CODE, HTML o PHP:
<div id="#"> <div id="#"> <div id="#"> <div id="#"> <ul> <li><div id="#"><div id="#"><div id="#" style="display:none; z-index: 100000; position: absolute;"><div id="#"></div></div> <div id="1212"> <div class="#"<span class="#"><a href="#" rel="nofollow">

nota2.php
Insertar CODE, HTML o PHP:
<div id="#"> <div id="#"> <div id="#"> <div id="#"> <ul> <li><div id="#"><div id="#"><div id="#" style="display:none; z-index: 100000; position: absolute;"><div id="#"></div></div> <div id="1212"> <div class="#"<span class="#"><a href="#" rel="nofollow">

nota3.php
Insertar CODE, HTML o PHP:
<div id="#"> <div id="#"> <div id="#"> <div id="#"> <ul> <li><div id="#"><div id="#"><div id="#" style="display:none; z-index: 100000; position: absolute;"><div id="#"></div></div> <div id="1212"> <div class="#"<span class="#"><a href="#" rel="nofollow">

Y así sucesivamente dependiendo de la cantidad de código nuevo que quieras incluir.
 
Insertar CODE, HTML o PHP:
[LEFT][COLOR=#0000BB][FONT=monospace]<?php
    
    [/FONT][/COLOR][COLOR=#FF8000][FONT=monospace]//El numero de notas totales tiene que ser bastante mas grande que
    //la cantidad de notas que queres mostrar porque si no se puede generar
    //un bucle que tarde mucho o incluso un bucle infinito (en caso que el numero de notas que quieras mostrar sea mayor al total)

    [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$notas [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= array();
    [/FONT][/COLOR][COLOR=#FF8000][FONT=monospace]//Cambiar el 5 por la cantidad de notas que queres mostrar
    [/FONT][/COLOR][COLOR=#007700][FONT=monospace]for ([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$i [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]1[/FONT][/COLOR][COLOR=#007700][FONT=monospace]; [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$i [/FONT][/COLOR][COLOR=#007700][FONT=monospace]<= [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]1[/FONT][/COLOR][COLOR=#007700][FONT=monospace]; [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$i[/FONT][/COLOR][COLOR=#007700][FONT=monospace]++) {
        while (![/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]insertOne[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$notas[/FONT][/COLOR][COLOR=#007700][FONT=monospace])){}
    }

    function [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]insertOne [/FONT][/COLOR][COLOR=#007700][FONT=monospace](&[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$notas[/FONT][/COLOR][COLOR=#007700][FONT=monospace]) {
        [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$nota [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]rand[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]1[/FONT][/COLOR][COLOR=#007700][FONT=monospace], [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]20[/FONT][/COLOR][COLOR=#007700][FONT=monospace]); [/FONT][/COLOR][COLOR=#FF8000][FONT=monospace]//cambiar el 20 por el numero total de notas
        [/FONT][/COLOR][COLOR=#007700][FONT=monospace]if ([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]in_array[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$nota[/FONT][/COLOR][COLOR=#007700][FONT=monospace], [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$notas[/FONT][/COLOR][COLOR=#007700][FONT=monospace])) {
            return [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]false[/FONT][/COLOR][COLOR=#007700][FONT=monospace];
        } else {
            [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$notas[/FONT][/COLOR][COLOR=#007700][FONT=monospace][] = [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$nota[/FONT][/COLOR][COLOR=#007700][FONT=monospace];
            return [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]true[/FONT][/COLOR][COLOR=#007700][FONT=monospace];
        }
    }

    foreach ([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$notas [/FONT][/COLOR][COLOR=#007700][FONT=monospace]as [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$n[/FONT][/COLOR][COLOR=#007700][FONT=monospace]) {
        include [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"nota" [/FONT][/COLOR][COLOR=#007700][FONT=monospace]. [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$n [/FONT][/COLOR][COLOR=#007700][FONT=monospace]. [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]".php"[/FONT][/COLOR][COLOR=#007700][FONT=monospace];
    }
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]?>[/FONT][/COLOR][/LEFT]

lo logre, me generaba error ya que cargaba la nota0 que no tenia entonces cuando le tocaba el random se desfiguraba, por el momento estoy rotando los articulos de arqueologia que son mas de 60 entonces tardare 1 o 2 dias en crear todas las notas, para pasar a las demas categorias.

vean en codigo que pegue con lo que modifique

gracias

ahhh se me olvidaba, en el archivo include ahi pegue el codigo
 
Última edición:
Estado

🔒 Este tema está cerrado para nuevas respuestas.

⏰ Solo el creador del tema puede solicitar la reapertura de sus propios temas, pero únicamente dentro de los 60 días previos a la última actualización.

Temas similares

Atrás
Arriba