Condición que no detecta el valor de una variable

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

xaiborweb

Programador
No recomendado
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
hola, estoy programando un php para buscar id_imdb a partir del titulo y año así:

PHP:
<?php
$type = 'movie';
$titulo = '%5B16%2B%5D+Sausage+Party';
$year = '2015';
$ch = curl_init('http://www.imdb.com/find?q='.$titulo.'&s=tt'); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_REFERER, 'http://www.imdb.com/');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36');
curl_setopt($ch, CURLOPT_HTTPHEADER,array('Accept-Language: en'));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$results = curl_exec($ch); 
curl_close($ch);
preg_match_all("(<tr class=\"findResult(.*)</tr>)siU", $results, $html_result);
if ($type == 'movie'){
	if (!stripos($html_result[1][0], 'TV Series')||!stripos($html_result[1][0], 'TV Episode')){
	    if (stripos($html_result[1][0], $year)){
	    	preg_match_all("(href=\"(.*)\")siU", $html_result[1][0], $link_imdb);
	    	$idimdb = explode('/',$link_imdb[1][0]);
	    	echo $id_imdb = $idimdb[2];
	    }else{
	    	$año = $year + 1;
	    	echo $año;
	    	if (stripos($html_result[1][0], $año)){
	    		echo 'hola';
	    	}
	    }
	}
}
para el ejemplo anterior el año real en imdb es 2016, pero le pase un año 2015 asi que tomo la variable year y le sumo 1 y lo imprimo y efectivamente al 2015+1=2016
PHP:
$año = $year + 1;
pero luego cuando meto la variable $año dentro del if no me detecta el contenido de $año=2016, por que no se cumple la condición entrando a imprimir hola, y no se el motivo, agradezco si sabes cual es gracias.
 
y si probas esto

PHP:
if (stripos($html_result[1][0], (int)$año)){ 
                echo 'hola'; 
            }
 
y si probas esto

PHP:
if (stripos($html_result[1][0], (int)$año)){ 
                echo 'hola'; 
            }
hola gracias por responder acabo de probarlo y no funciona, lo raro es que imprimo la variable
PHP:
$año = $year + 1;  //2016 para el ejemplo
y si cambio el $año por el numero si me funciona, entonces es por eso que me parece muy extraño el error.
PHP:
if (stripos($html_result[1][0], "2016")){
	    		echo 'hola';
	    	}
 
Entonces prueba esto...

PHP:
if (stripos($html_result[1][0],(string)$año)){ 
                echo 'hola'; 
}
 
intenta no usar la ñ y cambiale por n
 
intenta no usar la ñ y cambiale por n

probé con muchas variables para descartar eso y pasaba lo mismo, al final lo pude soluciona gracias al usuario DzignsWeb asi:
PHP:
if (stripos($html_result[1][0],(string)$año)){ 
                echo 'hola'; 
}
 
Atrás
Arriba