[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите обрезать HTTP заголовки
realgleb
POST /mm/send.php HTTP/1.1
Host: marketsms.ru
Accept-Charset: windows-1251
Content-Type: text/xml
Content-Length: 264

<?xml version="1.0" encoding="UTF-8"?>
<request uid="804"><message><text>Новый заказ на сумму 500 руб.выапывапывапыв, </text><abonent phone="79539214831"></abonent></message><security><login value="testorders"></login><sign value="a5a58df216e675c279c34accc97e880b"></sign></security></request>


Подскажите как обрезать все заголовки до <?xml ?> так чтобы если потом появится еще какой нить заголовок не пришлось править код!
т.е такой вариант не подходит
 $result = substr($result, 245, strlen($result)); 

спасибо




Спустя 12 минут, 39 секунд (6.04.2012 - 10:38) h234 написал(а):
Как вариант:
$str = '
POST /mm/send.php HTTP/1.1
Host: marketsms.ru
Accept-Charset: windows-1251
Content-Type: text/xml
Content-Length: 264
<?xml version="1.0" encoding="UTF-8"?>
<request uid="804"><message><text>Новый заказ на сумму 500 руб.выапывапывапыв, </text><abonent phone="79539214831"></abonent></message><security><login value="testorders"></login><sign value="a5a58df216e675c279c34accc97e880b"></sign></security></request>'
;

$pattern = '/.*(?=\<\?xml version="1.0" encoding="UTF-8"\?\>)/si';
$str = preg_replace($pattern, '', $str);
echo htmlspecialchars($str);

Спустя 4 минуты, 19 секунд (6.04.2012 - 10:42) Игорь_Vasinsky написал(а):
$result = 'POST /mm/send.php HTTP/1.1
Host: marketsms.ru
Accept-Charset: windows-1251
Content-Type: text/xml
Content-Length: 264

<?xml version="1.0" encoding="UTF-8"?>
<request uid="804"><message><text>Новый заказ на сумму 500 руб.выапывапывапыв, </text><abonent phone="79539214831"></abonent></message><security><login value="testorders"></login><sign value="a5a58df216e675c279c34accc97e880b"></sign></security></request>
'
;

$piece = explode('<?xml', $result);

echo '<?xml'.$piece[1];

Спустя 5 минут, 44 секунды (6.04.2012 - 10:48) realgleb написал(а):
Че то не работаю ваши варианты((

Спустя 4 минуты, 30 секунд (6.04.2012 - 10:52) h234 написал(а):
Результат echo htmlspecialchars($str);
<?xml version="1.0" encoding="UTF-8"?> <request uid="804"><message><text>Новый заказ на сумму 500 руб.выапывапывапыв, </text><abonent phone="79539214831"></abonent></message><security><login value="testorders"></login><sign value="a5a58df216e675c279c34accc97e880b"></sign></security></request>

Что же не так то?

Спустя 4 минуты, 30 секунд (6.04.2012 - 10:57) Игорь_Vasinsky написал(а):
А такой?

Свернутый текст

<?xml version="1.0" encoding="UTF-8"?>

<request uid="804"><message><text>Новый заказ на сумму 500 руб.выапывапывапыв, </text><abonent phone="79539214831"></abonent></message><security><login value="testorders"></login><sign value="a5a58df216e675c279c34accc97e880b"></sign></security></request>

Спустя 14 минут, 41 секунда (6.04.2012 - 11:11) killer8080 написал(а):
$t = 'POST /mm/send.php HTTP/1.1
Host: marketsms.ru
Accept-Charset: windows-1251
Content-Type: text/xml
Content-Length: 264

<?xml version="1.0" encoding="UTF-8"?>
<request uid="804"><message><text>Новый заказ на сумму 500 руб.выапывапывапыв, </text><abonent phone="79539214831"></abonent></message><security><login value="testorders"></login><sign value="a5a58df216e675c279c34accc97e880b"></sign></security></request>'
;
$t = substr($t, strpos($t, "\r\n\r\n") + 4);
echo '<pre>'.htmlspecialchars($t).'</pre>';

Спустя 4 минуты, 54 секунды (6.04.2012 - 11:16) Игорь_Vasinsky написал(а):
killer8080
лишняя пустая строка или на 1 больше и поплывёт всё.

мой же надёжней вариант.

с регуляркой - дополнительно кодировку проверять надо для паттерна.

а explode - порезал и надставил.

Спустя 3 минуты, 54 секунды (6.04.2012 - 11:20) killer8080 написал(а):
Цитата (Игорь_Vasinsky @ 6.04.2012 - 11:16)
killer8080
лишняя пустая строка или на 1 больше и поплывёт всё.

Игорь_Vasinsky
HTTP - это стандарт, и по нему тело документа отделяется от заголовков двумя переводами строки. Все что идет дальше - это контент, даже если он состоит из одних пробельных символов.

Спустя 8 минут, 37 секунд (6.04.2012 - 11:29) Игорь_Vasinsky написал(а):
тогда формат дока либо windows либо unix

тогда \r\n\r\n заменить на PHP_EOL

Спустя 1 час, 37 минут, 50 секунд (6.04.2012 - 13:07) killer8080 написал(а):
Цитата (Игорь_Vasinsky @ 6.04.2012 - 11:29)
тогда формат дока либо windows либо unix

тогда \r\n\r\n заменить на PHP_EOL

Причем здесь PHP? EOL в http определяется стандартом RFC1945
Цитата
  HTTP/1.0 defines the octet sequence CR LF as the end-of-line marker
  for all protocol elements except the Entity-Body (see Appendix B for
  tolerant applications). The end-of-line marker within an Entity-Body
  is defined by its associated media type, as described in Section 3.6.

      CRLF          = CR LF
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.