X-Git-Url: http://git.harvie.cz/?a=blobdiff_plain;ds=sidebyside;f=php%2Fhhttpd%2Fhttp_server.pdf;fp=php%2Fhhttpd%2Fhttp_server.pdf;h=a4e198bc80ec28de4c43ea3cf7a6478f61f2da82;hb=eb313e17c964b3227fbdbb54bbcda05a9d84f7ac;hp=0000000000000000000000000000000000000000;hpb=94d82b9aa29f5b84d1a82e95b5f7b4b81e36e38a;p=mirrors%2FPrograms.git
diff --git a/php/hhttpd/http_server.pdf b/php/hhttpd/http_server.pdf
new file mode 100755
index 0000000..a4e198b
--- /dev/null
+++ b/php/hhttpd/http_server.pdf
@@ -0,0 +1,1152 @@
+%PDF-1.3
+%Çì¢
+1 0 obj
+<>
+endobj
+2 0 obj
+<>
+endobj
+3 0 obj
+<>
+endobj
+4 0 obj
+<>
+endobj
+5 0 obj
+<>
+stream
+BT 1 0 0 1 72 762 Tm
+/F1 11 Tf 0 0 0 rg (#!usr/bin/php)Tj
+0 -13.2 TD
+/F2 11 Tf 0 0 1 rg ()Tj
+( )Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (\))Tj
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($port)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+( )Tj
+0 0 0.498 rg (trim)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($argv)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (]\);)Tj
+T*
+( )Tj
+0 0 0.498 rg (if)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($argc)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (>)Tj
+( )Tj
+/F1 11 Tf 0 0.498 0.498 rg (2)Tj
+/F2 11 Tf 0 0 0 rg (\))Tj
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($interface)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+( )Tj
+0 0 0.498 rg (trim)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($argv)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (2)Tj
+/F2 11 Tf 0 0 0 rg (]\);)Tj
+T*
+(})Tj
+T*
+ET
+endstream
+endobj
+6 0 obj
+<>
+stream
+BT 1 0 0 1 72 762 Tm
+/F2 11 Tf 0 0 0 rg /F1 11 Tf 0 0.498 0 rg (///FUNCTIONS//////////////////////////////////////////////////////////////////////)Tj
+0 -13.2 TD
+/F2 11 Tf 0 0 0.498 rg (function)Tj
+/F1 11 Tf 0 0 0.200 rg ( send_dir_listing)Tj
+/F2 11 Tf 0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($fp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($directory)Tj
+/F2 11 Tf 0 0 0 rg (\))Tj
+( )Tj
+({)Tj
+T*
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($num)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg ("0")Tj
+/F2 11 Tf 0 0 0 rg (;)Tj
+( )Tj
+T*
+( )Tj
+/F1 11 Tf 0 0.498 0 rg (//Header)Tj
+T*
+0 0 0.200 rg ( @)Tj
+/F2 11 Tf 0 0 0.498 rg (fwrite)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($fp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg ("\\n
Index of )Tj
+0 0 0.498 rg ($directory)Tj
+0 0 1 rg (\\n\\n")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+/F1 11 Tf 0 0 0.200 rg ( @)Tj
+/F2 11 Tf 0 0 0.498 rg (fwrite)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($fp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg ("Available volumes:
\\n")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+T*
+( )Tj
+/F1 11 Tf 0 0.498 0 rg (//Special folders)Tj
+T*
+0 0 0.200 rg ( @)Tj
+/F2 11 Tf 0 0 0.498 rg (fwrite)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($fp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg ("[/]\\n")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+( )Tj
+/F1 11 Tf 0 0.498 0 rg (//Server root)Tj
+T*
+( )Tj
+/F2 11 Tf 0 0 0.498 rg (if)Tj
+0 0 0 rg (\()Tj
+0 0 0.498 rg (is_dir)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 1 rg ("/")Tj
+/F2 11 Tf 0 0 0 rg (\)\))Tj
+( )Tj
+({)Tj
+( )Tj
+/F1 11 Tf 0 0.498 0 rg (//Unix root)Tj
+T*
+0 0 0.200 rg ( @)Tj
+/F2 11 Tf 0 0 0.498 rg (fwrite)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($fp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg ("[//]\\n")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+(})Tj
+T*
+( )Tj
+T*
+( )Tj
+/F1 11 Tf 0 0.498 0 rg (//Available volumes)Tj
+T*
+( )Tj
+0 0 0.498 rg ($dsks)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg ("cdefghijklmnopqrstuvwxyz")Tj
+/F2 11 Tf 0 0 0 rg (;)Tj
+( )Tj
+/F1 11 Tf 0 0.498 0 rg (//Show this volumes \(if available\))Tj
+T*
+( )Tj
+/F2 11 Tf 0 0 0.498 rg (for)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($i)Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+/F1 11 Tf 0 0.498 0.498 rg (0)Tj
+/F2 11 Tf 0 0 0 rg (;)Tj
+/F1 11 Tf 0 0 0.498 rg ($i)Tj
+/F2 11 Tf 0 0 0 rg (<)Tj
+0 0 0.498 rg (strlen)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($dsks)Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+/F1 11 Tf 0 0 0.498 rg ($i)Tj
+/F2 11 Tf 0 0 0 rg (++\))Tj
+( )Tj
+({)Tj
+T*
+( )Tj
+0 0 0.498 rg (if)Tj
+0 0 0 rg (\()Tj
+0 0 0.498 rg (is_dir)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($dsks)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0 0.498 rg ($i)Tj
+/F2 11 Tf 0 0 0 rg (].)Tj
+/F1 11 Tf 0 0 1 rg (":")Tj
+/F2 11 Tf 0 0 0 rg (\)\))Tj
+( )Tj
+({)Tj
+T*
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($vol)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($dsks)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0 0.498 rg ($i)Tj
+/F2 11 Tf 0 0 0 rg (];)Tj
+T*
+/F1 11 Tf 0 0 0.200 rg ( @)Tj
+/F2 11 Tf 0 0 0.498 rg (fwrite)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($fp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg ("[)Tj
+0 0 0.498 rg ($vol)Tj
+0 0 1 rg (:]\\n")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+(})Tj
+T*
+( )Tj
+/F1 11 Tf 0 0.498 0 rg (//echo\($dsks[$i].":"\);)Tj
+T*
+( )Tj
+/F2 11 Tf 0 0 0 rg (})Tj
+T*
+/F1 11 Tf 0 0 0.200 rg ( @)Tj
+/F2 11 Tf 0 0 0.498 rg (fwrite)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($fp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg ("
\\n\\n")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+T*
+( )Tj
+/F1 11 Tf 0 0.498 0 rg (//Directory listing)Tj
+T*
+0 0 0.200 rg ( @)Tj
+/F2 11 Tf 0 0 0.498 rg (fwrite)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($fp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg ("Directory listing of )Tj
+0 0 0.498 rg ($directory)Tj
+0 0 1 rg ( :
\\n\\n")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+/F1 11 Tf 0 0 0.200 rg ( @)Tj
+/F2 11 Tf 0 0 0.498 rg (fwrite)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($fp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg ("[DIR] Parent Directory \(../\)
\\n")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($files)Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+0 0 0.498 rg (opendir)Tj
+( )Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($directory)Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+( )Tj
+T*
+( )Tj
+0 0 0.498 rg (while)Tj
+( )Tj
+0 0 0 rg (\()Tj
+0 0 0.498 rg (false)Tj
+0 0 0 rg (!==\()Tj
+/F1 11 Tf 0 0 0.498 rg ($file)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+( )Tj
+0 0 0.498 rg (readdir)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($files)Tj
+/F2 11 Tf 0 0 0 rg (\)\)\))Tj
+( )Tj
+T*
+( )Tj
+({)Tj
+( )Tj
+T*
+( )Tj
+0 0 0.498 rg (if)Tj
+( )Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($file)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (!=)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg (".")Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (&&)Tj
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($file)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (!=)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg ("..")Tj
+/F2 11 Tf 0 0 0 rg (\))Tj
+( )Tj
+T*
+( )Tj
+({)Tj
+( )Tj
+T*
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($num)Tj
+/F2 11 Tf 0 0 0 rg (++;)Tj
+T*
+( )Tj
+0 0 0.498 rg (if)Tj
+0 0 0 rg (\()Tj
+0 0 0.498 rg (is_dir)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 1 rg (")Tj
+0 0 0.498 rg ($directory)Tj
+0 0 1 rg (/)Tj
+0 0 0.498 rg ($file)Tj
+0 0 1 rg (")Tj
+/F2 11 Tf 0 0 0 rg (\)\))Tj
+( )Tj
+({)Tj
+T*
+( )Tj
+0 0 0.498 rg (fwrite)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($fp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg (")Tj
+0 0 0.498 rg ($num)Tj
+0 0 1 rg ( - [DIR] )Tj
+0 0 0.498 rg ($file)Tj
+0 0 1 rg (
\\n")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+(})Tj
+( )Tj
+0 0 0.498 rg (else)Tj
+( )Tj
+0 0 0 rg ({)Tj
+T*
+( )Tj
+0 0 0.498 rg (fwrite)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($fp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg (")Tj
+0 0 0.498 rg ($num)Tj
+0 0 1 rg ( - )Tj
+0 0 0.498 rg ($file)Tj
+0 0 1 rg (
\\n")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+(})Tj
+T*
+( )Tj
+(})Tj
+( )Tj
+T*
+( )Tj
+(})Tj
+T*
+( )Tj
+T*
+( )Tj
+/F1 11 Tf 0 0.498 0 rg (//Footer)Tj
+T*
+( )Tj
+/F2 11 Tf 0 0 0.498 rg (fwrite)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($fp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg ("
\\nTotal: )Tj
+0 0 0.498 rg ($num)Tj
+0 0 1 rg (\\n\\n")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+(})Tj
+T*
+T*
+/F1 11 Tf 0 0.498 0 rg (///CODE///////////////////////////////////////////////////////////////////////////)Tj
+T*
+/F2 11 Tf 0 0 0.498 rg (echo)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 1 rg ("\\n\\tStarting Harvie's HTTPd at:\\n\\ttcp://)Tj
+0 0 0.498 rg ($interface)Tj
+0 0 1 rg (:)Tj
+0 0 0.498 rg ($port)Tj
+0 0 1 rg (\\n\\n")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+/F1 11 Tf 0 0.498 0 rg (//system\("title Harvie's HTTPd at tcp://$interface:$port"\); //Microsoft Windows only)Tj
+T*
+/F2 11 Tf 0 0 0.498 rg (set_time_limit)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0.498 0.498 rg (0)Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+/F1 11 Tf 0 0 0.498 rg ($sss)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+( )Tj
+0 0 0.498 rg (stream_socket_server)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 1 rg ("tcp://)Tj
+0 0 0.498 rg ($interface)Tj
+0 0 1 rg (:)Tj
+0 0 0.498 rg ($port)Tj
+0 0 1 rg (")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+T*
+0 0 0.498 rg (while)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (\))Tj
+( )Tj
+({)Tj
+T*
+/F1 11 Tf 0 0 0.200 rg ( @)Tj
+0 0 0.498 rg ($sfp)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+( )Tj
+0 0 0.498 rg (stream_socket_accept)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($sss)Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+ET
+endstream
+endobj
+7 0 obj
+<>
+stream
+BT 1 0 0 1 72 762 Tm
+/F2 11 Tf 0 0 0 rg ( )Tj
+0 0 0.498 rg (if)Tj
+0 0 0 rg (\(!)Tj
+/F1 11 Tf 0 0 0.498 rg ($sfp)Tj
+/F2 11 Tf 0 0 0 rg (\))Tj
+( )Tj
+0 0 0.498 rg (continue)Tj
+0 0 0 rg (;)Tj
+0 -13.2 TD
+T*
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($loop)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+( )Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (;)Tj
+T*
+( )Tj
+0 0 0.498 rg (while)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($sfp)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (&&)Tj
+( )Tj
+(!@)Tj
+0 0 0.498 rg (feof)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($sfp)Tj
+/F2 11 Tf 0 0 0 rg (\))Tj
+( )Tj
+(&&)Tj
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($loop)Tj
+/F2 11 Tf 0 0 0 rg (\))Tj
+( )Tj
+({)Tj
+T*
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+( )Tj
+0 0 0.498 rg (fgets)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($sfp)Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+/F1 11 Tf 0 0.498 0 rg (//echo\($line\);)Tj
+T*
+( )Tj
+/F2 11 Tf 0 0 0.498 rg (if)Tj
+0 0 0 rg (\()Tj
+0 0 0.498 rg (eregi)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 1 rg ("\(GET|POST\)")Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg (\)\))Tj
+( )Tj
+({)Tj
+T*
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+( )Tj
+0 0 0.498 rg (trim)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+/F1 11 Tf 0 0.498 0 rg (//echo\($line\);)Tj
+T*
+( )Tj
+0 0 0.498 rg ($line)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+( )Tj
+0 0 0.498 rg (explode)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 1 rg (" ")Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+T*
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (])Tj
+( )Tj
+(=)Tj
+( )Tj
+0 0 0.498 rg (trim)Tj
+0 0 0 rg (\()Tj
+0 0 0.498 rg (urldecode)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (]\)\);)Tj
+T*
+( )Tj
+T*
+( )Tj
+T*
+( )Tj
+0 0 0.498 rg (if)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (])Tj
+( )Tj
+(==)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg ("/")Tj
+/F2 11 Tf 0 0 0 rg (\))Tj
+( )Tj
+({)Tj
+T*
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (])Tj
+( )Tj
+(=)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg ("./")Tj
+/F2 11 Tf 0 0 0 rg (;)Tj
+T*
+( )Tj
+(})Tj
+( )Tj
+0 0 0.498 rg (else)Tj
+( )Tj
+0 0 0 rg ({)Tj
+T*
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (])Tj
+( )Tj
+(=)Tj
+( )Tj
+0 0 0.498 rg (substr)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (],)Tj
+( )Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+(})Tj
+T*
+( )Tj
+T*
+( )Tj
+T*
+( )Tj
+0 0 0.498 rg (if)Tj
+0 0 0 rg (\()Tj
+0 0 0.498 rg (is_file)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (]\)\))Tj
+( )Tj
+({)Tj
+( )Tj
+/F1 11 Tf 0 0.498 0 rg (//200 OK FILE)Tj
+T*
+( )Tj
+/F2 11 Tf 0 0 0.498 rg (fwrite)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($sfp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($okheader)Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+0 0 0.498 rg (echo)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 1 rg ("200 ")Tj
+/F2 11 Tf 0 0 0 rg (.)Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (]\);)Tj
+T*
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($fp)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+( )Tj
+0 0 0.498 rg (fopen)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (],)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg ("rb")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+0 0 0.498 rg (while)Tj
+0 0 0 rg (\()Tj
+( )Tj
+0 0 0.498 rg (fwrite)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($sfp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+0 0 0.498 rg (fgets)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($fp)Tj
+/F2 11 Tf 0 0 0 rg (\)\))Tj
+( )Tj
+(\);)Tj
+T*
+/F1 11 Tf 0 0 0.200 rg ( @)Tj
+/F2 11 Tf 0 0 0.498 rg (fclose)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($sfp)Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+0 0 0.498 rg (echo)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 1 rg (" SENT!\\n")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+(})Tj
+T*
+( )Tj
+T*
+( )Tj
+0 0 0.498 rg (elseif)Tj
+0 0 0 rg (\()Tj
+0 0 0.498 rg (is_dir)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (]\)\))Tj
+( )Tj
+({)Tj
+( )Tj
+/F1 11 Tf 0 0.498 0 rg (//200 OK DIR)Tj
+T*
+( )Tj
+/F2 11 Tf 0 0 0.498 rg (if)Tj
+0 0 0 rg (\()Tj
+0 0 0.498 rg (substr)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (],)Tj
+( )Tj
+0 0 0.498 rg (strlen)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (]\)-)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (\))Tj
+( )Tj
+(!=)Tj
+( )Tj
+/F1 11 Tf 0 0 1 rg ("/")Tj
+/F2 11 Tf 0 0 0 rg (\))Tj
+( )Tj
+({)Tj
+( )Tj
+/F1 11 Tf 0 0.498 0 rg (//301 MOV DIR)Tj
+T*
+( )Tj
+0 0 0.498 rg ($header)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+( )Tj
+(\()Tj
+/F1 11 Tf 0 0 1 rg ("/")Tj
+/F2 11 Tf 0 0 0 rg (.)Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (].)Tj
+/F1 11 Tf 0 0 1 rg ("/")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+0 0 0.498 rg (echo)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 1 rg ("301 ")Tj
+/F2 11 Tf 0 0 0 rg (.)Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (].)Tj
+/F1 11 Tf 0 0 1 rg (" -> )Tj
+0 0 0.498 rg ($header)Tj
+0 0 1 rg (\\n")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($header)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+( )Tj
+0 0 0.498 rg (str_replace)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 1 rg ("%DIR%")Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($header)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($dirheader)Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+/F1 11 Tf 0 0.498 0 rg (//$header = str_replace\("./", "./", $dirheader\);)Tj
+T*
+( )Tj
+(//echo\($header\);)Tj
+T*
+( )Tj
+/F2 11 Tf 0 0 0.498 rg (fwrite)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($sfp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($header)Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+/F1 11 Tf 0 0 0.200 rg ( @)Tj
+/F2 11 Tf 0 0 0.498 rg (fclose)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($sfp)Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+0 0 0.498 rg (break)Tj
+0 0 0 rg (;)Tj
+T*
+( )Tj
+(})Tj
+T*
+( )Tj
+0 0 0.498 rg (echo)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 1 rg ("200 [DIR] ")Tj
+/F2 11 Tf 0 0 0 rg (.)Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (].)Tj
+/F1 11 Tf 0 0 1 rg ("\\n")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+/F1 11 Tf 0 0 0.200 rg ( send_dir_listing)Tj
+/F2 11 Tf 0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($sfp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (]\);)Tj
+T*
+( )Tj
+(})Tj
+T*
+( )Tj
+T*
+( )Tj
+0 0 0.498 rg (else)Tj
+( )Tj
+0 0 0 rg ({)Tj
+( )Tj
+/F1 11 Tf 0 0.498 0 rg (//404 NOT FOUND)Tj
+T*
+( )Tj
+/F2 11 Tf 0 0 0.498 rg (echo)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 1 rg ("404 ")Tj
+/F2 11 Tf 0 0 0 rg (.)Tj
+/F1 11 Tf 0 0 0.498 rg ($line)Tj
+/F2 11 Tf 0 0 0 rg ([)Tj
+/F1 11 Tf 0 0.498 0.498 rg (1)Tj
+/F2 11 Tf 0 0 0 rg (].)Tj
+/F1 11 Tf 0 0 1 rg ("\\n")Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+0 0 0.498 rg (fwrite)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($sfp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($badheader)Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+0 0 0.498 rg (fwrite)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($sfp)Tj
+/F2 11 Tf 0 0 0 rg (,)Tj
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($err404)Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+/F1 11 Tf 0 0 0.200 rg ( @)Tj
+/F2 11 Tf 0 0 0.498 rg (fclose)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($sfp)Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+( )Tj
+(})Tj
+T*
+( )Tj
+T*
+( )Tj
+/F1 11 Tf 0 0 0.498 rg ($loop)Tj
+( )Tj
+/F2 11 Tf 0 0 0 rg (=)Tj
+( )Tj
+/F1 11 Tf 0 0.498 0.498 rg (0)Tj
+/F2 11 Tf 0 0 0 rg (;)Tj
+ET
+endstream
+endobj
+8 0 obj
+<>
+stream
+BT 1 0 0 1 72 762 Tm
+/F2 11 Tf 0 0 0 rg ( )Tj
+(})Tj
+0 -13.2 TD
+( )Tj
+(})Tj
+T*
+/F1 11 Tf 0 0 0.200 rg ( @)Tj
+/F2 11 Tf 0 0 0.498 rg (fclose)Tj
+0 0 0 rg (\()Tj
+/F1 11 Tf 0 0 0.498 rg ($sfp)Tj
+/F2 11 Tf 0 0 0 rg (\);)Tj
+T*
+(})Tj
+T*
+T*
+0 0 1 rg (?>)Tj
+T*
+ET
+endstream
+endobj
+9 0 obj
+<> >>
+endobj
+10 0 obj
+<>
+endobj
+11 0 obj
+<>
+endobj
+12 0 obj
+<>
+endobj
+13 0 obj
+<>
+endobj
+14 0 obj
+<>
+endobj
+15 0 obj
+<>
+endobj
+xref
+0 16
+0000000000 65535 f
+0000000015 00000 n
+0000000111 00000 n
+0000000212 00000 n
+0000000316 00000 n
+0000000424 00000 n
+0000004520 00000 n
+0000012303 00000 n
+0000020898 00000 n
+0000021205 00000 n
+0000021291 00000 n
+0000021394 00000 n
+0000021497 00000 n
+0000021600 00000 n
+0000021703 00000 n
+0000021780 00000 n
+trailer
+<< /Size 16 /Root 15 0 R
+>>
+startxref
+21828
+%%EOF