За последние 24 часа нас посетили 45042 программиста и 6420 роботов. Сейчас ищут 1683 программиста ...

Ошибка в коде?

Тема в разделе "PHP для новичков", создана пользователем swerg, 18 май 2018.

  1. swerg

    swerg Новичок

    С нами с:
    18 май 2018
    Сообщения:
    5
    Симпатии:
    0
    Сдраствуйте! Есть код

    Код (Text):
    1. <?
    2. function lis($url){
    3. $url = "luzynka.ru";
    4. $c = curl_init("http://data.alexa.com/data?cli=10&dat=snbamz&url=".$url);
    5.         curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    6.        
    7.         $page = curl_exec($c);
    8.         curl_close($c);
    9.        
    10.         preg_match("/TEXT=\"(.\d*)\"/", $page, $ci);
    11.        
    12.         return $ci[1];
    13.     }
    14.  
    15.         $alexa = lis('$url');
    16. ?>
    17.  
    18. <?=$alexa?>
    Пишет ошибку

    Notice: Undefined offset: 1 in /var/www/www-root/data/www/luzynka.ru/wm.php on line 12

    Может кто подскажет в чем проблема?
     
  2. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    А это вообще актуально на 2018 год?
     
  3. swerg

    swerg Новичок

    С нами с:
    18 май 2018
    Сообщения:
    5
    Симпатии:
    0
    Ну мне надо так как сайт рекламной компании и у всех сайтов хотелось бы ранжирование Alexa Rank
     
  4. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Как минимум по прямому адресу "http://data.alexa.com/data?cli=10&dat=snbamz&url=luzynka.ru" Хоть что-то, но должно возвращаться. Введи в адресную строку и посмотри, что тебе показывают. Мне например ничего, нет такого.
    Если тебе что-то возвращается, посмотри что вообще лежит в переменной $ci
    это можно сделать либо через var_dump() либо через print_r()

    Как по мне, так вся это связка морально устарела и alexa давно всё поменяла. Ты бы хотя бы сказал, что ты хочешь получить.
     
  5. swerg

    swerg Новичок

    С нами с:
    18 май 2018
    Сообщения:
    5
    Симпатии:
    0
    Вот что по прямому адресу "http://data.alexa.com/data?cli=10&dat=snbamz&url=luzynka.ru"

    <!--
    Need more Alexa data? Find our APIs here: https://aws.amazon.com/alexa/
    -->
    "); vertical-align: bottom; height: 10px;"><ALEXA VER="0.9" URL="luzynka.ru/" HOME="0" AID="=" IDN="luzynka.ru/">
    <RLS PREFIX="http://" more="0"></RLS>
    <SD TITLE="A" FLAGS="" HOST="luzynka.ru"></SD>
    "); vertical-align: bottom; height: 10px;"><SD>
    <POPULARITY URL="luzynka.ru/" TEXT="2107281" SOURCE="panel"/>
    <REACH RANK="2146376"/>
    <RANK DELTA="+955759"/>
    <COUNTRY CODE="RU" NAME="Russia" RANK="318406"/>
    </SD>
    </ALEXA>
     
  6. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    хммм... а у меня ничего не открывается, возможно провайдер.

    Раз у тебя открывается, выполни такой код:

    PHP:
    1. <?
    2.  
    3. $url = "luzynka.ru";
    4. $c = curl_init("http://data.alexa.com/data?cli=10&dat=snbamz&url=".$url);
    5.         curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    6.      
    7.         $page = curl_exec($c);
    8.         curl_close($c);
    9.      
    10.         preg_match("/TEXT=\"(.\d*)\"/", $page, $ci);
    11.      
    12.         echo "<pre>";
    13.         print_r($ci);
    14.         echo "</pre>";
    15.  
    16. ?>
     
  7. swerg

    swerg Новичок

    С нами с:
    18 май 2018
    Сообщения:
    5
    Симпатии:
    0
    Пишет просто
    Array
     
  8. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    а тут ты ждешь от него return $ci[1]; а возвращает он Array() - пустой массив
    причем не просто array как ты написал. Одной строкой он тебе мог вернуть Array если ты не print_r() использовал, а echo

    А нотисом (Notice) он тебе говорит:
    Notice: Undefined offset: 1 in /var/www/www-root/data/www/luzynka.ru/wm.php on line 12

    мол нет такого $ci[1];
     
  9. swerg

    swerg Новичок

    С нами с:
    18 май 2018
    Сообщения:
    5
    Симпатии:
    0
  10. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    возможно у меня curl даже заголовки не возвращает.