При посылке серверу POST-запроса, от него приходит ответ, в котором помимо самих данных есть служебная информация. Вот пример ответа: Code: HTTP/1.1 200 OK Date: Mon, 15 Jun 2009 06:37:15 GMT Server: Apache/1.3.41 (Win32) PHP/5.2.5 X-Powered-By: PHP/5.2.5 Connection: close Transfer-Encoding: chunked Content-Type: text/html 4f <HTML> <BODY> <DIV id='d1'> array(0) { } </DIV> </BODY> </HTML> 0 Интересуют значение 4f и 0 Ну понятно что 4f - это длина блока, а 0, видимо, его окончание. Но как их отфильтровать? Как это дело грамотно обработать без танцев с бубном? Во всех применрах что я нашел, получение ответа сводится к PHP: $Response = ''; while (!feof($sock)) { $Response .= fgets($sock); }
указывай размер принимаемого ответа и режь всё ненужное PHP: while ( ! feof ( $fp ) ) { $line = fgets ( $fp, 128 ); }
ну это не верно. А правильно будет так. Вариант 1. Посылать запрос не HTTP 1.1 а HTTP 1.0 тогда в ответе не будет данных значений. Вариант 2. Обрабатывать данные после получения пакета, по стандартам RFC, то есть искать первый \r\n\r\n. считывать длину пакета по маске [a-z0-9] в твоем случае это 4F, брать это кол-во байт, и отсчитывать их, от следующего за числом переводом строки, там повторять это же действие, пока число не станет равным 0.