with texto strip_tags remove limpiar from eliminar allow all php arrays include shuffle

php - texto - string strip_tags



Archivos de inclusiĆ³n aleatoria de PHP(ed) (3)

Cuando escribe $banner1 = include ''file1.php''; , el archivo está incluido. Esa es la estrategia llamada por valor . Eso significa que, cuando asigna un valor a una variable, el valor se calcula (y aquí, sus archivos están incluidos).

Esto es lo que hace tu script:

<?php // Include file1, and put include''s return value in $banner1 $banner1 = include ''file1.php''; // Include file2, and put include''s return value in $banner2 $banner2 = include ''file2.php''; // Create an array with these return values, shuffle $banners = array( $banner1, $banner2); shuffle($banners); // And print one return value print $banners[0]

Eso no es lo que quieres. Desea elegir aleatoriamente un archivo y luego incluirlo. Tus scripts deberían verse así:

<?php $banners = array(''file1.php'', ''file2.php''); shuffle($banners); include $banners[0];

Entonces, como dijo Fred-ii, podrías probar array_rand . http://php.net/manual/en/function.array-rand.php

Estoy tratando de usar la función SHUFFLE para mostrar FILE1.php o FILE2.php al azar. Aquí está mi código:

<?php $banner1 = include ''file1.php''; $banner2 = include ''file2.php''; $banners = array( $banner1, $banner2); shuffle($banners); print $banners[0] ?>

El problema que tengo - si en vez de hacerlo incluye ''file1.php''; Solo uso texto o código, funciona bien.

Pero si mezclo la función INCLUDE, muestra BOTH file1.php y file2.php al mismo tiempo.

Por favor ayuda.


Está incluyendo ambos archivos cuando los asigna a las variables. Incluya el archivo elegido de la matriz mezclada. Prueba esto:

$banner1 = ''file1.php''; $banner2 = ''file2.php''; $banners = array($banner1, $banner2); shuffle($banners); include($banners[0]);


Primero, no desea asignar el valor de retorno de include() , ya que solo devolverá falso o 1. Para obtener más información, consulte el manual: http://php.net/manual/en/function.include.php

Y una cita de allí:

Manejo de devoluciones: include devuelve FALSE en caso de error y genera una advertencia. El éxito incluye, a menos que sea anulado por el archivo incluido, devolver 1

Esto debería funcionar para usted:

<?php ob_start(); require_once("file1.php"); $banner1 = ob_get_contents(); ob_clean(); require_once("file2.php"); $banner2 = ob_get_contents(); ob_end_clean(); $banners = [$banner1, $banner2]; shuffle($banners); echo $banners[0]; ?>