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];
?>