Rango php a una variable?

  • Autor Autor xaiborweb
  • Fecha de inicio Fecha de inicio
xaiborweb

xaiborweb

Dseda
Programador
No recomendado
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
hola compañeros de forobeta.

Tengo una variable, ejemplo
PHP:
$año = '2000';
y quiero transformarla en un rango, ejemplo
PHP:
$año1 = '1998';
$año2 = '1999';
$año3 = '2001';
$año4 = '2002';
es posible hacerlo de alguna manera o obtener un resultado similar? gracias.
 
mmm te referís a un array?

PHP:
$ano = ['2000', '2001', '2002', '2003', '2004'];

Después accedes de la siguiente manera.

PHP:
echo $ano[1]; // Devuelve 2001
 
mmm te referís a un array?

PHP:
$ano = ['2000', '2001', '2002', '2003', '2004'];

Después accedes de la siguiente manera.

PHP:
echo $ano[1]; // Devuelve 2001

no es que obtengo años así: 2000, 2005, 2016 de películas los cuales los valido con imdb, pero algunas veces el año no coincide entonces con un:

PHP:
        if(!empty($idimdb)){
            return $idimdb;
        }else {
            detecto el año y le asigno un rango de 2 años por encima y 2 por debajo, e intento con cada uno de estos años generados por el array verificar si coincide con el año de imdb.

            }
        }
 
[MENTION=35077]xaiborweb[/MENTION] Algo así lo haria yo:

PHP:
$anio = 2000;
$arr = [];

for ($i=-2; $i < 3; $i++) { 
	if ($i != 0) {
		$arr[] = $anio + $i;
	}
}
 
gracias por responder amigo, pero realmente no soy programador y no me queda muy claro como implementarlo, esto es lo que logre programar:

de un archivo php le envió el titulo y año a otro php
PHP:
<?php 
include("validaciones.php");
$validaciones = new validaciones();

$titulo = 'The+Pianist';
$año = '2003';
$id_tmdb = $validaciones->buscarmovietmdb($titulo, $año);

if(empty($id_tmdb)){
    
}else{
    echo $id_tmdb;
}
en este recibo el titulo y año y busco el $id_tmdb; pero si no lo encuentro con ese año tambien lo busco con un año menos y si tampoco lo encuentro entonces con un año mas, si tampoco lo consigo retorno falso, pero como ves todo es manual y tendria que escribir eso para todos los años que quiero y asin todos desde 1950 ;( me voy a volver marika escribiendo eso, ves la forma de optimizarlo con lo que tu me pasaste ? gracias
PHP:
public function buscarmovietmdb($titulo, $año){
        function curl($titulo, $year){
            $ch = curl_init('http://api.themoviedb.org/3/search/movie?query='.$titulo.'&primary_release_year='.$year.'&api_key=minumeroapi'); 
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_FAILONERROR, 1);
            $results = curl_exec($ch); 
            curl_close($ch); 

            preg_match_all('/"id":(.*?),/', $results, $tmdb);
            $id_tmdb = $tmdb[1][0];
            return $id_tmdb; 
        } 
        $year = $año;   $id_tmdb = curl($titulo, $year);  

        if(!empty($id_tmdb)){
            return $id_tmdb;
        }else {
             //2016
            if ($año == '2016'){
                    $year = '2015';    $id_tmdb = curl($titulo, $year); 
                if(!empty($id_tmdb)){
                    return $id_tmdb;
                }else{
                    $year = '2017';    $id_tmdb = curl($titulo, $year);
                    if(!empty($id_tmdb)){return $id_tmdb;}else{return false;}
                } 
            }//2015
            elseif ($año == '2015'){
                    $year = '2014';    $id_tmdb = curl($titulo, $year); 
                if(!empty($id_tmdb)){
                    return $id_tmdb;
                }else{
                    $year = '2016';    $id_tmdb = curl($titulo, $year);
                    if(!empty($id_tmdb)){return $id_tmdb;}else{return false;}
                } 
            }//2014
            elseif ($año == '2014'){
                    $year = '2013';    $id_tmdb = curl($titulo, $year); 
                if(!empty($id_tmdb)){
                    return $id_tmdb;
                }else{
                    $year = '2015';    $id_tmdb = curl($titulo, $year);
                    if(!empty($id_tmdb)){return $id_tmdb;}else{return false;}
                } 
            }//2013
            elseif ($año == '2013'){
                    $year = '2012';    $id_tmdb = curl($titulo, $year); 
                if(!empty($id_tmdb)){
                    return $id_tmdb;
                }else{
                    $year = '2014';    $id_tmdb = curl($titulo, $year);
                    if(!empty($id_tmdb)){return $id_tmdb;}else{return false;}
                } 
            }//2012
            elseif ($año == '2012'){
                    $year = '2011';    $id_tmdb = curl($titulo, $year); 
                if(!empty($id_tmdb)){
                    return $id_tmdb;
                }else{
                    $year = '2013';    $id_tmdb = curl($titulo, $year);
                    if(!empty($id_tmdb)){return $id_tmdb;}else{return false;}
                } 
            }//2011
            elseif ($año == '2011'){
                    $year = '2010';    $id_tmdb = curl($titulo, $year); 
                if(!empty($id_tmdb)){
                    return $id_tmdb;
                }else{
                    $year = '2012';    $id_tmdb = curl($titulo, $year);
                    if(!empty($id_tmdb)){return $id_tmdb;}else{return false;}
                } 
            }else{
                return false;
            }
        }
    }
 
Última edición:
[MENTION=35077]xaiborweb[/MENTION] El siguiente codigo funciona y lo hice para realizar pruebas. Adaptalo

PHP:
$titulo = 'The+Pianist';
$año = '2007';
$id_tmdb = buscarmovietmdb($titulo, $año);

echo $id_tmdb;


function curl($titulo, $year){
    $ch = curl_init('http://api.themoviedb.org/3/search/movie?query='.$titulo.'&primary_release_year='.$year.'&api_key=minumeroapi'); 
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FAILONERROR, 1);
    $results = curl_exec($ch); 
    curl_close($ch); 

    preg_match_all('/"id":(.*?),/', $results, $tmdb);
    $id_tmdb = isset($tmdb[1][0]) ? $tmdb[1][0] : false;
    return $id_tmdb; 
} 


function buscarmovietmdb($titulo, $año){   
    $id_tmdb = curl($titulo, $año);  

    if ($año >= 1950) {
        if(is_numeric($id_tmdb)){
            return $id_tmdb;
        }else {
            $año--;    
            $id_tmdb = curl($titulo, $año); 
            if(is_numeric($id_tmdb)){
                return $id_tmdb;
            }else{
                return buscarmovietmdb($titulo, $año);
            }
        }               
    }
}
 
[MENTION=49061]ismadobe[/MENTION] muy bien man, pero que pasa si por casualidad la pelicula es del 2008 y no del 2007.??
creo que [MENTION=35077]xaiborweb[/MENTION] deberia hacer la busqueda del año acual para abajo XD
 
Última edición:
[MENTION=49061]ismadobe[/MENTION] muy bien man, pero que pasa si por casualidad la pelicula es del 2008 y no del 2007.??
creo que [MENTION=35077]xaiborweb[/MENTION] deberia hacer la busqueda del año acual para abajo XD

Claro. Así ponga 2016 para ese caso mostraría el ID de una película del 2006 y no la del 2003, la cual probablemente sea la que el necesita. Mostrará la primera coincidencia entre el año y título. El debe establecer la mejor manera de poner los parámetros, ya sea bajando los años a un rango donde el sepa que puede estar el correcto
 
Ah si man tienes razon!!! :encouragement:
 
Atrás
Arriba