Curl сохранение результатов в переменную и использование на другой странице

Тема в разделе "Как сделать...", создана пользователем silmarion, 3 май 2014.

  1. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    195
    Симпатии:
    19
    Добрый день
    Есть функция
    Код:
      function curl( $url ) {
      $ch = curl_init( $url );
      curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
      curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
      curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
    $response = curl_exec( $ch );
    
    $resp=explode(':',$response);   
    $resp = str_replace( array('{','}',']','"'), '', $resp);
    //print_r($resp);   
    $inserting=end($resp);
    
    curl_close( $ch );
    return json_decode($response , true);
    }
    
    Выводит результат на страницу, как кроме вывода на страницу сохранить значение в переменную, чтобы можно было после вывода оперировать переменной $inserting?
     
  2. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
    $inserting = curl($url);
    Не?
     
  3. ivan.petrov

    ivan.petrov Постоялец

    Регистр.:
    12 апр 2013
    Сообщения:
    94
    Симпатии:
    41
    Не очень понятно объясняетесь. Возможно вам вот это следует прочесть?
     
  4. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    195
    Симпатии:
    19
    Мне нужно использовать переменную
    $inserting вне функции.
    Пролистал вашу ссылку
    Пример #1 Использование global
    Вроде бы как подходит


    но
    Код:
    function curl( $url ) {
    $ch = curl_init( $url );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
    global $inserting;
    $response = curl_exec( $ch );
    
    $resp=explode(':',$response);
    $resp = str_replace( array('{','}',']','"'), '', $resp);
    //print_r($resp);
    $inserting=end($resp);
    
    curl_close( $ch );
    return json_decode($response , true);
    }
    curl();
    echo $inserting;
    
    echo $inserting; ничего не выводит
    Может неправильно понял как использовать?
     
  5. ivan.petrov

    ivan.petrov Постоялец

    Регистр.:
    12 апр 2013
    Сообщения:
    94
    Симпатии:
    41
    global позволяет использовать переменную внутри функции, для использования ее вне функции инициализируйте ее вне функции.

    Код:
    $inserting='';
    function curl( $url ) {
    $ch = curl_init( $url );
     
  6. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.405
    Симпатии:
    1.185
    У вас на возврат идёт return json_decode($response , true); Если в $response будет невалидный json, то echo вернёт пустую строку.

    Пробуйте заменить на return $inserting;

    По ходу выполнения скрипта расставьте var_dump(); с именами ваших переменных, чтобы лучше понимать что происходит.
     
  7. Rollo

    Rollo Постоялец

    Регистр.:
    28 сен 2012
    Сообщения:
    53
    Симпатии:
    20
    постойте...
    curl();
    echo $inserting;

    У вас адрес должен передаваться функции curl()
    разве нет?
    В вашем коде он пустой, это опечатка или вы скрыли просто переменную?
     
  8. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    195
    Симпатии:
    19
    Я тут что-то замудрил уже с ним.

    В общем пошел немного другим способом
    Вывожу тем же скриптом информацию на страницу

    далее использовал вот такое
    Код:
    <script type='text/javascript'>
    var xxx = document.getElementById("video").innerHTML;
    document.write(xxx);
    </script>
    
    Получаю всю нужную мне информацию, но никак не могу найти нормальный способ, как поместить этот xxx в php переменную $xxx чтобы затем с ней поработать?

    Нашел
    Код:
    <script type='text/javascript'>
    var xxx = document.getElementById("video").innerHTML;
    
    </script>
    
      
    <?
    $ups = "<script type='text/javascript' language='javascript'>document.write(xxx);</script>";
    
    echo $ups;
    
    ?>
    
     
  9. Rollo

    Rollo Постоялец

    Регистр.:
    28 сен 2012
    Сообщения:
    53
    Симпатии:
    20
    Вы из яваскрипта таким образом не передадите в php значение переменной
    яваскрипт исполняется после того как пхп сгенерил страницу

    Поясните что вам сделать-то нужно? я правильно ли понял задумку вашу?
     
  10. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    195
    Симпатии:
    19
    Да, нашел косяк свой

    Код:
    <script type='text/javascript'>
    var xxx = document.getElementById("video").innerHTML;
    </script>
    <?
    $ups = "<script type='text/javascript' language='javascript'>document.write(xxx);</script>";
    echo $ups;
    ?>
    
    мне этот $ups надо подставить сюда
    Код:
    $sql = "INSERT INTO `table` (`id`, `article`) VALUES  ($myid, $ups)";
    
    :alko::alko::alko:

    Может аяксом как-то можно?
     
    Последнее редактирование: 4 май 2014