Autor Zpráva
crea
Profil *
Zdravím, pomocí curl získávám hlavičku vzdáleného souboru. Nějakým způsobem bych z ní potřeboval získat velikost toho souboru. S preg_match_all se nemůžu domluvit :-((

HTTP/1.1 200 OK Date: Sun, 11 Oct 2009 07:57:55 GMT Server: Apache Last-Modified: Mon, 31 Dec 2007 22:20:13 GMT ETag: "7b0773ab-4d5-72ab4140" Accept-Ranges: bytes Content-Length: 1237 Connection: close Content-Type: image/gif GIF

Script vrátí int 1237


Předem děkuji
Alphard
Profil
preg_match_all("~Content-Length: (\d+)~", $a, $b);
crea
Profil *
Díky, ale nějak mi to nefunguje. Získávám vůbec tu hlavičku správně?

$url = "http://file...";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HEADER, 1);
$result= curl_exec ($ch);
if(!preg_match('~Content-Length: ([\d]+)\s~',$result,$match))
exit('Neznámá velikost.');
echo $filesize = (int) $match[1];
curl_close ($ch);


Moderátor Alphard: Vkládejte prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Alphard
Profil
Než to nějak studovat, bude jednodušší, když na šestý řádek vložíte echo $result; a zkontrolujete výsledek.
V dalším kroku potom výpis print_r($match); poskytne dobrý přehled o výsledku hledání.
crea
Profil *
echo $result; //vrati 1

print_r($match); //vrati Array ( [0] => Array ( ) [1] => Array ( ) )


Vážně nevím, kde je problém :(

Ještě mám problém s tím, že to nestahuje a nevrací pouze hlavičku, ale celý soubor, nevíte prosím proč?

HTTP/1.1 200 OK Date: Sun, 11 Oct 2009 09:34:23 GMT Server: Apache Last-Modified: Mon, 31 Dec 2007 22:20:13 GMT ETag: "7b0773ac-846-72ab4140" Accept-Ranges: bytes Content-Length: 1237 Connection: close Content-Type: image/gif GIF89a�J��N#���Їq���y���"��ʨ&����Ĺ�n[㪖�oL��↳���ú,����M5�)�3���������������������������ֵ��.�0�����̮�����ʘ�幧�}�>c���������Ѡ6������������������������������������������������T��!�,�J��pH,�Ȥ2)X:�ШtJ�Z�X((��z��xކ��z�n?A�3�M���Rx(������d  zq!}����I p��g��~���u(����{������_��� �����������������!� ��ˆ���������܏ ϡ�ѣ���������w �����疉������$�a^=`�M�f�ص $LHQ�3��WN�-�Ψ�P@�I�,@�2A��̨aGQ��h�d���O��� Ҵ��9�!)���C��� �<�5�9� �ɩ\���$AVl��I7�ݥLz� ��Ԣl��x��[L��f�����BZ!�����`��& F|o���S:;����ON��+��͛�z�옔_����ڎ�a�uw���n�{)���6���R�px��X�V>�=;�r�%.V ���nW�3��O v�� ��O���:����W�� ���gZ~�um'_O`�ZE$�]U :��_��[�&��� �-�Z.|��x�9�^t�(�R$0�H��_��dh�݃�H�Bt� ?D)��!�D.�PN9%$LA�^N��L��eJ��Pt�攝�w��4JȢ)v��f>@�iG��'�Q�� Z&�N<�藑:ʉ�w"�]�d�䡓�Ё��,��R.A��V������ �� �F��$��e I�ꫠI�*l��"�(��$�+��X���D ˚�D��vK緈.��.L����E�%��� J�j�<(�D(kf���o�� 0�? <WA�I���L ���T���G��C���Ȋ3G�ւX�\�O���j�`�sv-��n� �TR|�ަ�Q[f�J�MD�RGa6�F􍶳eB�� >ɍ�u��x�m�̩��K̩�Ě#��%#��>�Q�)����:�+�I�GH>���Ώ �~��������{\��Q3߯��+!}��סc�SQv�Q_\��Q����#�]���(��m ݓ�ކ��iiz�K`��W9�-e�_�$�e�U�j�ޠ�7���Y7C�k3@p*��PU��� �á�L�>�i��C�j����6����tOa�s��� �0}v�O �h;$B�U_|��r��d+l�wd���.�Ip��ZH��VVdC|lƆ��p�K��:b1 ��qs?�1�K��@�9!� �����;�]��m2��̈����}K#�$���k�h�@W2�3��(�V�(%Mx^����2(���s�.�2|��JS ��<�}�o?Хև��<���9�5��F:�1�� �r�O��$QX]����aE!ۛ�z�E0�0T��V=0OD-����p�� �~�6�юrtk� <�%J�u�%�ߤ�)a��i��4�e��!,�0���J"�1`s_P�'ז�S  B%�ԦL��c� HA�1����YCQk%�JM �O(U�9��*o�D0k�n���kI@�z��CxS�Z��GUU��&,|3j0�K��$H�)�,�"u(�C�ie��>Z�9�[(tX�C��� ���(����-�D�u�' xl�[�@RvD�j��Y$X��4�%�ڵ�5t��\��L[�f�AZ&����=�Ơ�Z!X0Hc^� ��� �A���b����$�2�����.���=��3�[PkQ¨W��0ba�@�#,��)`�64 �t���py!�� �O��`�� A;
Alphard
Profil
crea:
echo $result; //vrati 1
Něco podobného jsem tak trochu očekával.
Viz curl_exec(): Returns TRUE on success or FALSE on failure. However, if the CURLOPT_RETURNTRANSFER option is set, it will return the result on success, FALSE on failure.
Takže zkuste doplnit:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
crea
Profil *
Mockrát vám děkuji za pomoc. Funguje to
crea
Profil *
Mohl by mi ještě někdo prosím parsovat tohle?

<td>Zbyva:</td><td
align=right><b><script>document.write(setzeTT(""+Math.ceil(9952779/1000)));</s
cript> b</b></td>



Potřebuji získat hodnotu 9952779

Předem děkuji
crea
Profil *
vyřešeno :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0