PHP - Problema utilizando if con file_get_contents

   
Vista:

Problema utilizando if con file_get_contents

Publicado por manuloco (1 intervención) el 30/07/2015 00:46:54
Hola a todos,

Estoy intentando hacer funcionar un script que tiene lo siguiente:

$url es otro script en el que se comprueban varios datos por medio de $_GET. Al entrar directamente desde el navegador a $url, aparecen los textos "ok", "no" o "vacio" en función de los datos introducidos.

$validar = file_get_contents($url);


if($validar == "ok") { echo "todo correcto"; }

else if($validar == "no") { echo "no existe"; }

else if($validar == "vacio") { echo "muestro una cosa"; }

El problema es que el script no pilla el resultado, es decir, aunque el script de $url muestre cualquiera de los tres mensajes, ni el if ni los else if reconocen ese texto en el file_get_contents.

Espero haberme explicado con claridad, ya que es algo un poco complicado.

Muchas gracias por adelantado.

Saludos! :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema utilizando if con file_get_contents

Publicado por unoMasDelMonton (32 intervenciones) el 30/07/2015 12:06:00
Es probable que se deba a los carácteres de fin de archivo. Intenta hacer:
$validar=trim(file_get_contents($url));
trim() quita los carácteres como espacios y saltos de linea del inicio y el fin del string.

A muy malas puedes hacer un var_dump($validar) y comprobar qué tipo de dato tienes en $validar y si existe o no el salto de linea o espacios. Aun que probablemente te funcione con el trim()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas

Problema utilizando if con file_get_contents

Publicado por Vainas (254 intervenciones) el 30/07/2015 12:12:12
Buenas:

He hecho el siguiente ejemplo:

url.php:
1
2
3
4
5
6
7
8
9
10
<?php
$texto = $_GET['ok'];
if($texto == 'ok'){
echo "ok";
}elseif($texto == 'no'){
	echo "no";
}else{
	echo "vacio";
}
?>

index.php:
1
2
3
4
5
6
<?php
$validar = file_get_contents('http://localhost/.../lurl.php?ok=no');
if($validar == "ok") { echo "todo correcto"; }
elseif($validar == "no") { echo "no existe"; }
elseif($validar == "vacio") { echo "muestro una cosa"; }
?>

A mi asi me funciona. Ten en cuenta que si la otra web devuelve algo mas que un "ok", "no" o "vacio" (etiquetas body por ejemplo o alguna otra...) tendras que sanear primero lo que devuelves.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar