#php #curl
#php #curl
Вопрос:
Привет, ребята, я использую этот curl для получения содержимого страницы и повторения этого. с помощью simply return $data;
это сработало, но после добавления if ($data == "Playing PlusMW3"){ ...
в конце кода curl он не работает, может кто-нибудь сказать мне, что не так ?!
function get_data($url)
{
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
//curl_setopt($ch, CURLOPT_POST, TRUE); // Use POST method
//curl_setopt($ch, CURLOPT_POSTFIELDS, "var1=1amp;var2=2amp;var3=3"); // Define POST data values
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
//return $data;
if ($data == "Playing PlusMW3"){
return "<img src="./friends/assets/img/plusmw3.png" alt="OfFline">";
}elseif ($data == "Playing PlusOPS2"){
return "<img src="./friends/assets/img/plusops2.png" alt="OfFline">";
}elseif ($data == "Playing PlusOPS"){
return "<img src="./friends/assets/img/plusops.png" alt="OfFline">";
}elseif ($data == "offline"){
return "<img src="./friends/assets/img/offline.png" alt="OfFline">";
}else{
return $data;
}
}
$stat = get_data('http://plusmaster.ir:13060/pe/95/__body');
echo $stat;
Комментарии:
1. Это
elseif
неelse if
так .2. «не работает» практически ничего нам не говорит. Как насчет сообщения об ошибке? Примечание : я бы рекомендовал использовать
strcmp
для сравнения строк или, по крайней мере===
.3.
var_dump($data)
Вы должны убедиться, что получаете все, что ожидаете… возможно, даже использоватьtrim()
.4. ошибки нет, просто пустая страница. мне интересно, форматирует ли данные в формате html, так может ли это повлиять на это ?! если да, то как я могу исправить и получить данные ?!
5. Мой комментарий дает ответ на ваш вопрос. Видите строку(17)? Это означает, что есть 17 символов, но вы проверяете только 15..
Ответ №1:
Вам нужно удалить конечные пробелы из результата:
$data = trim($data);
if ($data == "Playing PlusMW3") { //... then the rest should remain unchanged