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 ("\\nIndex 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