curl_close очистит возвращаемый результат curl_exec

#php #curl

#php #curl

Вопрос:

Я, конечно, подтверждаю, что результат curl_exec будет очищен curl_close .
Я должен закомментировать строку curl_close, чтобы получить результат.Моя версия php — 5.3.8.
Как мне получить результат с помощью curl_close? Вот мой код

 function curl_get_contents($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $r = curl_exec($ch);
    //curl_close($ch);
    return $r;
}
  

Комментарии:

1. вы говорите, что если вы раскомментируете //curl_close($ch); этот код завершается ошибкой?

2. Вам не нужно делать завиток близко. PHP очистит для вас, когда функция вернется и $ch выйдет за пределы области видимости.

3. @jlb Да, я должен прокомментировать эту строку.

4. Для @MarcB: Спасибо. Если нет решения, я оставлю этот комментарий.

Ответ №1:

Это не влияет на возвращаемое значение, пока данные из curl_exec(); хранятся в $r , которые вы можете возвращать по своему усмотрению.

Это работает нормально.

 function curl_get_contents($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $r = curl_exec($ch);
    curl_close($ch);
    return $r;
 }

$returnedValue = curl_get_contents($url); //Holds the contents
  

Редактировать, как указал Марк Б. :

Вам не нужно выполнять закрытие curl. PHP очистит для вас, когда функция вернется и $ch выйдет за пределы области видимости.

Следовательно, нет смысла даже закрывать его, но этого не должно произойти.

Комментарии:

1. Проблема в моем костюме xampp. Моя версия curl: 7.21.7