Вывод Curl не работает, добавляя if в конце

#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