![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 20.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam nietypowy problem z curlem, a mianowicie z opcją NOBODY. Teoretycznie użycie tej opcji wyklucza ciało w odpowiedzi. Celem jest wyciągnięcie nagłówków z dużego pliku. Problem w tym, że po użyciu NOBODY przetwarzany plik zwraca ciało ( gdy plik ma dyży rozmiar jest błąd 500 ). Kod:
Z góry dziękuję za pomoc (IMG:style_emoticons/default/wink.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 20.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Możesz rozwinąć? Bo nie bardzo rozumiem...
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
A czego nie rozumiesz? Specyfikacja protokołu HTTP jest dosyć jasna w tej kwestii.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 20.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przeczytałem specyfikacje protokołu ale dalej nic mi to nie mówi dlaczego opcja NOBODY nie działa, tz ciało pliku zostaje dołączone do odpowiedzi.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 194 Pomógł: 26 Dołączył: 9.01.2011 Skąd: /dev/null Ostrzeżenie: (0%) ![]() ![]() |
hmmm... curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'HEAD');
(IMG:style_emoticons/default/questionmark.gif) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 20.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie pomogło. Nagłówek wyciągnięty wraz z ciałem pliku:
Ten post edytował sparco 5.03.2012, 22:24:30 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli wykonujesz zapytanie HEAD to dostajesz własnie to co pokazałeś czyli wszystkie nagłówki. Może podaj jakiś URL do testów bo to lekko niemożliwe aby nginx serwował plik przy zapytaniu HEAD (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 20.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Z przykłądem ciężko bo plik jest zabezpieczony tokenem. DOkładnie rzecz biorąc jest to skrypt pobierający dane o pliku z hellshare.pl.
Odczytuje token, łączy się z plikiem i jego zadaniem jest odczytnie rozmiaru i nazwy pliku. Niestaty przy dużych plikach staje się to niemożliwe bo cały plik zostaje wczytywany. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Mój błąd... CURL-owska opcja NOBODY to nic innego jak ustawienie metody żądania na HEAD. Właściwie to możesz skorzystać z get_headers().
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 20.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Problem z tym, że musze wysyłać POSTa i get_headers() odpada.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Mógłbyś przygotować jakieś testowe konto i testowy plik na tej stronie? Wygląda na to, że ich serwery źle przetwarzają żądanie typu HEAD, a sam CURL, a przynajmniej PHP-owskie bindingi nie oferują niczego do przerwania odczytywania po odczytaniu nagłówków. Ewentualnie możesz spróbować bawić się z CURLOPT_READFUNCTION, ale nie wiem czy to pomoże.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 09:01 |