Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   FAQ's de PHP (http://www.forosdelweb.com/f18/faqs-php-530600/)

korg1988 05/10/2008 16:58

Respuesta: FAQ's de PHP
 
Tema: Funciones
Pregunta: ¿Como obtengo numeros aleatorios (random) sin que se repitan entre si (unicos)?

Respuesta:

Podemos crear una funcion, la llame uni_rands (o sea , unique rands o randoms unicos, o aleatorios unicos o lo que sea :borracho:)

Aca va el codigo de la funcion
Código PHP:

function uni_rands($cant$ini$fin)
{
    
$ns = array();
    if((
$fin $ini 1) >= $cant) {
        while(
$ct $cant)
        {
            
$rnd rand($ini$fin);
            if(!
in_array($rnd$ns)) {
                
$ns[$ct] = $rnd;
                ++
$ct;
            }
        }
    } else {
        die(
"Error: Rango inferior a la Cantidad");
    }
    return 
$ns;


Y aca una implementacion de Ejemplo
Código PHP:

foreach(uni_rands(10110) as $numero)
{
    echo 
$numero."\n";


Como veran la funcion devuelve un array, y los argumentos que necesita son, la cantidad de numeros que queremos obtener, el numero minimo, y el numero maximo

Saludos
Suerte

korg1988 05/10/2008 18:03

Respuesta: FAQ's de PHP
 
Tema: Arrays
Pregunta: ¿Como se cuantos elementos estan repetidos en un array?

Respuesta:

Aca cree una funcion!.. espero que a muchos les sirva para solucionar ese problema

Código PHP:

function contar_repeticiones($array)
{
    
$repetidos 0;
    
$ya_duplicados = array();
    foreach(
$array as $item)
    {
        for(
$u=0;$u<sizeof($array); $u++)
        {
            if(
$item == $array[$u] && !in_array($item$ya_duplicados))
            {
                ++
$cont;
            }
        }
        
        if(
$cont >= 2)
        {
            
array_push($ya_duplicados$item);
            
$repetidos++;
        }
        
        
$cont 0;
    }
    return 
$repetidos;


entonces para usarla hacemos lo siguiente

Código PHP:

$array_de_ejemplo = array("hola""chau""chau""hola"1531);
echo 
"En este array hay ".contar_repeticiones($array_de_ejemplo)." elementos Repetidos"

Y la salida seria
"En este array hay 3 elementos Repetidos!"

Saludos y espero que les sirva

okram 07/10/2008 22:00

Respuesta: FAQ's de PHP
 
Tema: Funciones
Pregunta: ¿Como obtengo numeros aleatorios (random) sin que se repitan entre si (unicos)? (Otro método)

Respuesta:

Vamos a crear una función que se llame igual a la que puso korg1988 dos mensajes arriba: uni_rands()

Aca va el codigo de la funcion
Código php:
Ver original
  1. function uni_rands($cantidad, $inicio, $fin) {
  2.     $n = range($inicio, $fin);
  3.     foreach(array_rand($n, $cantidad) as $i)
  4.         $ns[] = $n[$i];
  5.     return $ns;
  6. }
El uso es el mismo
Código php:
Ver original
  1. foreach(uni_rands(7, 20, 40) as $numero) {
  2.     echo $numero."\n";
  3. }
La funcion devuelve también un array, y los argumentos que necesita son, la cantidad de numeros que queremos obtener, el numero minimo, y el numero maximo. La diferencia está en el código de la función, el cuál es más sencillo (Véase range(), array_rand())

Saludos, :adios:

Carxl 14/10/2008 17:18

Respuesta: FAQ's de PHP
 
Tema: Sesiones
Pregunta: Cómo destruyo la sesión al cerrar el navegador?
Respuesta: Configurando tu php.ini

1. Abre tu php.ini
2. Busca la linea "session.use_only_cookies" y ponla en Off
3. Asegúrate que "session.use_trans_sid" esté en Off o en 0(cero).
4. Guarda la modificación y reinicia tu servicio web.(normalmente reiniciando apache:borracho:)

Saludos:adios:

Marvin 20/11/2008 08:54

Respuesta: FAQ's de PHP
 
Tema: Fechas
Pregunta: Cómo puedo saber cuantos dias hay entre dos fechas (PHP)?
Respuesta:
Código php:
Ver original
  1. //fecha inicio  01/01/2008
  2. //fecha fin 05/01/2008
  3. $fechaInicio    = explode('/',"01/01/2008");
  4. $fechaFinal     = explode('/',"05/01/2008");
  5. $ini = mktime(12,0,0,$fechaInicio[1],$fechaInicio[0],$fechaInicio[2]);
  6. $fin = mktime(12,0,0,$fechaFinal[1],$fechaFinal[0],$fechaFinal[2]);
  7. $x = (floor(($fin - $ini)/60/60/24));
  8. echo 'Dias entre las fechas dadas: '.$x;
Suerte! :arriba:

nicolaspar 03/12/2008 13:45

Respuesta: FAQ's de PHP
 
Tema: Strings
Pregunta: Como puedo aplicar un ucfirst a un string si éste comienza con signos?
Respuesta: Mira el siguiente ejemplo:

Código php:
Ver original
  1. <?
  2. /* En tus funciones copia estas dos*/
  3. function uc_first_aux($str){
  4. return ucfirst($str[1]);
  5. }
  6. function uc_first($str){
  7. return preg_replace_callback('/([a-z]){1}/i',"uc_first_aux",$str,1);
  8. }
  9.  
  10. #luego, a un string como este
  11. $str = strtolower('¿¿¡¡COMO ESTÁN USTEDES!!??');
  12.  
  13. #Lo tratas así:
  14. echo uc_first($str); #out: ¿¿¡¡Como están ustedes!!??
  15. ?>

okram 10/01/2009 12:50

Respuesta: FAQ's de PHP
 
Tema: Cookies
Pregunta:
¿Por qué mi cookie creada con PHP funciona en algunas páginas y en otras no?

Respuesta:
Para resolver este pregunta debemos primero conocer cómo funciona la función setcookie(), con la cuál creamos las cookies con PHP.

La función setcookie acepta 6 parámetros (7 desde PHP 5.2). Usualmente las cookies las creamos con los tres primeros:
Código PHP:

setcookie(
    
'nombre_de_la_cookie'// Nombre de la cookie
    
'valor de la cookie'// Valor de la cookie
    
time() + 24 60 60 // Tiempo en segundos
); 

Y generalmente esto funciona bien. Pero muchas veces caemos en que la cookie está disponible en determinadas páginas y en otras no dentro del mismo sitio.

Esto se debe a que las cookies existen para el directorio en el que han sido creadas. Por ejemplo. Tengo un formulario de login y un script PHP que lo procesa. Ambos archivos están en una carpeta login/ dentro del directorio raíz. Aquí ocurre el problema. La cookie será válida para todos los script ubicados en login/ (o sus subdirectorios), mas no para el resto del sitio.

Para solucionar esto, hay que definir el 4to parámetro de la función setcookie(). El valor por defecto es el directorio actual del script que crea la cookie. Al asignarle el valor de '/' haremos que la cookie que se genera esté disponible en el sitio entero, independientemente del directorio donde ha sido creada.

Código PHP:

setcookie(
    
'nombre_de_la_cookie',
    
'valor de la cookie',
    
time() + 24 60 60,
    
'/' // La cookie estará disponible en el sitio entero
); 

Una manera de evitar tener que estar indicando el directorio cada vez que creamos una cookie es crear una función auxiliar que reciba los tres parámetros que siempre usamos, y que haga la llamada a la función "legal" setcookie con el 4to parámetro añadido.

:adios:

cvander 24/03/2009 06:31

Respuesta: FAQ's de PHP
 
Cerramos el FAQ para experimentar trabajando futuras consultas desde el Wiki:

http://www.forosdelweb.com/wiki/PHP


La zona horaria es GMT -6. Ahora son las 08:01.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.