dev-master
9999999-devhypertext (HTT)
Apache 2.0
The Requires
hypertext (HTT)
Content-Length
)
> ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌContentInterface
ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²Π»ΠΈΡΡΡ Π½Π° Π»ΡΠ±ΠΎΠΉ ΡΠΏΠ΅ΠΊΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌTransfer-Encoding: chunked
Camelize
ΡΡΠΈΠ»Ρ.ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ, (*1)
Camelize
ΡΡΠΈΠ»Ρ)Π Π°Π·Π±ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, (*2)
['value' => null, 'params' => [], 'elements' => []]
ΠΡΠΎΡΠ΅ΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°: ΠΠΎΠΊΡΠΌΠ΅Π½Ρ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌ ΠΎΡ ContentInterface ΡΠΎ Π²Π½ΡΡΡΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π΄ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°., (*3)
ΠΠΎΠ½ΡΠ΅Π½Ρ ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌ, ΠΊΠ°ΠΊ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΡΠΈΠΏΠ° ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ(Π΅ΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ContentInterface)., (*4)
ΠΡΠΈ ΠΏΠ°ΡΡΠΈΠ½Π³Π΅: ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΈΠ· ΡΡΡΠΎΠΊΠΈ, ΡΠ°ΠΊ-ΠΆΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ. ΠΠΎΡΠ»Π΅ ΠΏΠ°ΡΡΠΈΠ½Π³Π°: ΠΠΎΠΊΡΠΌΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΆΠ΅ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΡΠΉ, Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π½Π°ΡΠΈΠ²Π½ΠΎΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, (*5)
Π‘ΡΠΎΠΈΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ Π·Π΄Π΅ΡΡ ΡΡΠΎ ΠΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π‘ΡΠΈΡΠ°Π½/ΠΠ°ΠΏΠΈΡΠ°Π½ Ρ ΡΠ°Π·Π½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ [ΠΈΠ· ΡΡΡΠΎΠΊΠΈ ΠΈ Π² ΡΡΡΠΎΠΊΡ] ΠΈΠ»ΠΈ [ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠ° / Π² ΠΏΠΎΡΠΎΠΊ]. ΠΡΠΈ ΠΏΠΎΡΠΎΡΠ½ΠΎΠΌ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡΠΈΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Transfer-Encoding (Π½Π΅ ΠΏΡΡΠ°ΡΡ Ρ Content-Transfer-Encoding) ΠΡΠ»ΠΈ ΠΎΠ½ ΡΠ°Π²Π΅Π½ chunked, ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΡΠ°Π·Π±ΠΎΡ ΡΠ°ΡΡΠ΅ΠΉ(ΡΠ°Π½ΠΊΠΎΠ²/chunks) ΠΏΡΡΠΌΠΎ ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠ°, Π’Π΅ΠΊΡΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°Π½ ΠΈΠ· ΡΠ°Π½ΠΊΠΎΠ² ΠΈ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΡΠΆΠ΅ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ°Π·Π±ΠΎΡΠ° ΠΏΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌ., (*6)
<?php namespace Jungle\Util\Specifications\Htt; include '../../loader.php'; /** ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ cp1253, koi8-r, iso-8859-5, etc...*/ $DOCUMENT_CHARSET = 'iso-8859-5'; $document = new Document(); $document->setHeaders([ '' => 'POST / HTTP/1.1', 'Accept' => 'text/html', //'Content-Transfer-Encoding' => 'quoted-printable', //'Content-Transfer-Encoding' => 'base64', 'Content-Type' => 'text/html; charset=' . $DOCUMENT_CHARSET ]); $multipart = new Content\Multipart(); $raw_document = <<<'TAG' Content-Type: image/gif Content-Disposition: attachment; filename=gif1.gif; name=part1 Π’Π΅ΠΊΡΡ Π²ΡΠ΅-ΠΆΠ΅ Π² Π½ΡΠΆΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅, Ρ Π΄ΡΠΌΠ°Ρ) TAG; $multipart->addPart(new Document($raw_document)); $document->setContent($multipart); /** * ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅Ρ PHP ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡ charset=utf-8, * ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ, ΡΠΎ ΡΠΈΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΌΡ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΠΌ. * ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΡΠ»ΡΡΠΈΠ±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΠΈΡ ΡΡ ΠΎΡ utf-8 * ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ ΠΎΡΠ²Π΅ΡΠ° charset=$DOCUMENT_CHARSET * * Π’Π°ΠΊ-ΠΆΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠ°ΠΉΠ» Π½Π°ΠΏΠΈΡΠ°Π½ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ utf-8, Π²Π΅ΡΡ Π²ΠΈΠ΄ΠΈΠΌΡΠΉ Π² ΡΠ°ΠΉΠ»Π΅ ΡΠ΅ΠΊΡΡ. Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΠΉ, * Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ ΠΎΡΠ²Π΅ΡΠ° charset=$DOCUMENT_CHARSET, ΡΠΎ Π²Π΅ΡΡ Π²ΠΈΠ΄ΠΈΠΌΡΠΉ Π² ΡΠ°ΠΉΠ»Π΅ ΡΠ΅ΠΊΡΡ ΡΡΠ°Π½Π΅Ρ Π½Π΅ΡΠΈΡΠ°Π΅ΠΌΡΠΌ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, * Π° ΠΌΡΠ»ΡΡΠΈΠ±Π°ΠΉΡΠΎΠ²ΡΠΉ ΡΠ΅ΠΊΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ°Π½Π΅Ρ Π²ΠΈΠ΄ΠΈΠΌΡΠΌ. * ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΌΠ΅Π½ΠΈΠ² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΡΡΠ°Π½ΠΈΡΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. * * @code: ini_set('default_charset',$DOCUMENT_CHARSET); * ΠΠΎΠΆΠ½ΠΎ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΠΎΠΏΠΈΡΠ°ΡΠΈΡ, Π² ΡΡΡΠ½ΡΡ ΡΠΌΠ΅Π½ΠΈΠ² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΡΡΠ°Π½ΠΈΡΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. * */ //ini_set('default_charset',$DOCUMENT_CHARSET); echo '<h3>ΠΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎ ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°</h3>'; echo '<pre style="font-family: Lucida Console">'; echo ">> ΠΠΎΠ»ΡΡΠΈΠΌ ΠΠ°ΡΡΠΈΡΠΈΡ ΠΌΡΠ»ΡΡΠΈΠΏΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, Ρ Content-Disposition: name='part1' ΠΈ Π²ΡΠ²Π΅Π΄Π΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅\r\n"; echo '<br/>'; echo $multipart->getPartByDispositionName('part1')->getContent(); echo '</pre>'; echo '<h3>Π Π΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΡΡΡΡΠΊΡΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π² ΡΡΡΠΎΠΊΡ</h3>'; echo '<pre style="font-family: Lucida Console">'; $inline_document = "$document"; echo $inline_document; echo '</pre>'; $hash = md5($inline_document); echo '<h3>ΠΠ°ΡΡΠΈΠ½Π³ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΈΠ· ΡΡΡΠΎΠΊΠΈ, ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°</h3>'; $document = new Document($inline_document); echo '<pre style="font-family: Lucida Console">'; echo $inline_re_document = $document; echo '</pre>'; $hash_re = md5($inline_re_document); echo '<h2>Π Π°Π·Π½ΠΈΡΠ° <u>render(structure) > parse(rendered) > render(parsed_structure)</u>: '.strcmp($inline_document, $inline_re_document).'</h2>'; echo '<h2>Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ Ρ Π΅ΡΠΈ</h2>'; echo '<div>Π Π΅Π½Π΄Π΅ΡΠΈΠ½Π³ 1: '.$hash.'</div>'; echo '<div>Π Π΅Π½Π΄Π΅ΡΠΈΠ½Π³ 2: '.$hash_re.'</div>';
hypertext (HTT)
Apache 2.0