Refactor
:my
=>
'code'
Codes
Refactorings
Popular
Best
Submit
Spam
Account
Logout
Login
JavaScript doesn't seem to be activated, expect things to be ugly and sloppy!
Learn How to Create Your Own Programming Language
createyourproglang.com
Recent
Ultra lightweight message "popup" at top of parent element
Good way to output menu with submenu through a module?!
Moving Code from Controller to Model
Get Site Information with PHP
Help with module?!
Node.js: Calculating total filesize of 3 files
convert single itemed sub-arrays into string
Access HashMap key by value
Language Selection
Generating a list of 3 entries with the rest hidden
Popular
Good way to output menu with submenu through a module?!
Ultra lightweight message "popup" at top of parent element
Moving Code from Controller to Model
Double 'if'
Language Selection
Help with module?!
Fetch and parse feeds with feedzirra
Generating a list of 3 entries with the rest hidden
Access HashMap key by value
Node.js: Calculating total filesize of 3 files
Pastable version of
Universal File Download Class
<div style="overflow:auto;border:solid 1px #ccc;background:#000;color:#F8F8F8"> <div class="section"> <pre style="float:left;margin:0 10px;border-right:0;color:#666;">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203</pre> <pre class="sunburst"><?php <span style="color:#99CF50;">class</span> <span style="text-decoration:underline;">RequestFile</span> { <span style="color:#99CF50;">public</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>StatusLogOn</span> <span style="color:#E28964;">=</span> <span style="color:#3387CC;">FALSE</span><span style="color:#E28964;">;</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>turn logging on/off (TRUE/FALSE)</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>tries different methods for retrieving a url as </span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>each hosting company tends to screw this up in one way or another</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>it logs the successful one in the db for use next time</span> <span style="color:#99CF50;">public </span><span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">get_file</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>url</span>) { <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>attempt the standard file_get_contents </span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>data</span> <span style="color:#E28964;">=</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>this</span><span style="color:#E28964;">-></span>cc_file_get_contents(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>url</span>)<span style="color:#E28964;">;</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>if that didn't work try curl</span> <span style="color:#E28964;">if</span>(<span style="color:#E28964;">!</span><span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>data</span>) { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>data</span> <span style="color:#E28964;">=</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>this</span><span style="color:#E28964;">-></span>cc_curl_file(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>url</span>)<span style="color:#E28964;">;</span> } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>if that didn't work try a socket</span> <span style="color:#E28964;">if</span>(<span style="color:#E28964;">!</span><span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>data</span>) { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>data</span> <span style="color:#E28964;">=</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>this</span><span style="color:#E28964;">-></span>cc_socket_file(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>url</span>)<span style="color:#E28964;">;</span> } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>if all else fails we can try wget (assuming we're on linux)</span> <span style="color:#E28964;">if</span>(<span style="color:#E28964;">!</span><span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>data</span>) { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>data</span> <span style="color:#E28964;">=</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>this</span><span style="color:#E28964;">-></span>cc_wget_file(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>url</span>)<span style="color:#E28964;">;</span> } <span style="color:#E28964;">return</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>data</span><span style="color:#E28964;">;</span> } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>minor modification to file_get_contents to log if it worked or not</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>note this or (fopen) will not work if allow_url_fopen = 0 in php.ini</span> <span style="color:#99CF50;">public </span><span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">cc_file_get_contents</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>url</span>) { <span style="color:#E28964;">if</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>data</span> <span style="color:#E28964;">=</span> <span style="color:#DAD085;">file_get_contents</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>url</span>)) { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>this</span><span style="color:#E28964;">-></span>log_status(<span style="color:#DAD085;">date</span>(<span style="color:#65B042;"><span style="color:#65B042;">"</span>H:i:s d-m-Y<span style="color:#65B042;">"</span></span>)<span style="color:#E28964;">.</span><span style="color:#65B042;"><span style="color:#65B042;">'</span> SUCCESS: Data Has Been Downloaded Using file_get_contents<span style="color:#65B042;">'</span></span>)<span style="color:#E28964;">;</span> <span style="color:#E28964;">return</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>data</span><span style="color:#E28964;">;</span> } <span style="color:#E28964;">else</span> { <span style="color:#E28964;">if</span> (<span style="color:#DAD085;">ini_get</span>(<span style="color:#65B042;"><span style="color:#65B042;">'</span>allow_url_fopen<span style="color:#65B042;">'</span></span>) <span style="color:#E28964;">!</span><span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>1<span style="color:#65B042;">'</span></span>) { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>msg</span> <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>fopen wrappers are disabled<span style="color:#65B042;">"</span></span><span style="color:#E28964;">;</span> } <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>this</span><span style="color:#E28964;">-></span>log_status(<span style="color:#DAD085;">date</span>(<span style="color:#65B042;"><span style="color:#65B042;">"</span>H:i:s d-m-Y<span style="color:#65B042;">"</span></span>)<span style="color:#E28964;">.</span><span style="color:#65B042;"><span style="color:#65B042;">'</span> FAIL: <span style="color:#65B042;">'</span></span><span style="color:#E28964;">.</span><span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>msg</span>)<span style="color:#E28964;">;</span> <span style="color:#E28964;">return</span> <span style="color:#3387CC;">FALSE</span><span style="color:#E28964;">;</span> } } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>try and use curl</span> <span style="color:#99CF50;">public </span><span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">cc_curl_file</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>url</span>) { <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span> make sure curl is installed</span> <span style="color:#E28964;">if</span> (<span style="color:#DAD085;">function_exists</span>(<span style="color:#65B042;"><span style="color:#65B042;">'</span>curl_init<span style="color:#65B042;">'</span></span>)) { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>ch</span> <span style="color:#E28964;">=</span> <span style="color:#DAD085;">curl_init</span>()<span style="color:#E28964;">;</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>initialize a new curl resource </span> <span style="color:#DAD085;">curl_setopt</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>ch</span>, <span style="color:#3387CC;">CURLOPT_URL</span>, <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>url</span>)<span style="color:#E28964;">;</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>set the url to fetch</span> <span style="color:#DAD085;">curl_setopt</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>ch</span>, <span style="color:#3387CC;">CURLOPT_HEADER</span>, <span style="color:#3387CC;">0</span>)<span style="color:#E28964;">;</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>don't give me the headers just the content</span> <span style="color:#DAD085;">curl_setopt</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>ch</span>, <span style="color:#3387CC;">CURLOPT_RETURNTRANSFER</span>, <span style="color:#3387CC;">1</span>)<span style="color:#E28964;">;</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>return the value instead of printing the response to browser</span> <span style="color:#DAD085;">curl_setopt</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>ch</span>, <span style="color:#3387CC;">CURLOPT_USERAGENT</span>, <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>this</span><span style="color:#E28964;">-></span>rand_user_agent())<span style="color:#E28964;">;</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>use a user agent to mimic a browser </span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>data</span> <span style="color:#E28964;">=</span> <span style="color:#DAD085;">curl_exec</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>ch</span>)<span style="color:#E28964;">;</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>run the command</span> <span style="color:#DAD085;">curl_close</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>ch</span>)<span style="color:#E28964;">;</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>remember to always close the session and free all resources</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>this</span><span style="color:#E28964;">-></span>log_status(<span style="color:#DAD085;">date</span>(<span style="color:#65B042;"><span style="color:#65B042;">"</span>H:i:s d-m-Y<span style="color:#65B042;">"</span></span>)<span style="color:#E28964;">.</span><span style="color:#65B042;"><span style="color:#65B042;">'</span> SUCCESS: Data Has Been Downloaded Using CURL<span style="color:#65B042;">'</span></span>)<span style="color:#E28964;">;</span> <span style="color:#E28964;">return</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>data</span><span style="color:#E28964;">;</span> } <span style="color:#E28964;">else</span> { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>this</span><span style="color:#E28964;">-></span>log_status(<span style="color:#DAD085;">date</span>(<span style="color:#65B042;"><span style="color:#65B042;">"</span>H:i:s d-m-Y<span style="color:#65B042;">"</span></span>)<span style="color:#E28964;">.</span><span style="color:#65B042;"><span style="color:#65B042;">'</span> FAIL: CURL is not installed<span style="color:#65B042;">'</span></span>)<span style="color:#E28964;">;</span> <span style="color:#E28964;">return</span> <span style="color:#3387CC;">FALSE</span><span style="color:#E28964;">;</span> } } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>try and use sockets - this code is untested</span> <span style="color:#99CF50;">public </span><span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">cc_socket_file</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>url</span>) { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>parsedUrl</span> <span style="color:#E28964;">=</span> <span style="color:#DAD085;">parse_url</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>url</span>)<span style="color:#E28964;">;</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>get the host name and url path</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>host</span> <span style="color:#E28964;">=</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>parsedUrl</span>[<span style="color:#65B042;"><span style="color:#65B042;">'</span>host<span style="color:#65B042;">'</span></span>]<span style="color:#E28964;">;</span> <span style="color:#E28964;">if</span>(<span style="color:#DAD085;">isset</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>parsedUrl</span>[<span style="color:#65B042;"><span style="color:#65B042;">'</span>path<span style="color:#65B042;">'</span></span>])) { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>path</span> <span style="color:#E28964;">=</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>parsedUrl</span>[<span style="color:#65B042;"><span style="color:#65B042;">'</span>path<span style="color:#65B042;">'</span></span>]<span style="color:#E28964;">;</span> } <span style="color:#E28964;">else</span> { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>path</span> <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>/<span style="color:#65B042;">'</span></span><span style="color:#E28964;">;</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>the url is pointing to the host like http://www.mysite.com</span> } <span style="color:#E28964;">if</span> (<span style="color:#DAD085;">isset</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>parsedUrl</span>[<span style="color:#65B042;"><span style="color:#65B042;">'</span>query<span style="color:#65B042;">'</span></span>])) { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>path</span> <span style="color:#E28964;">.=</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>?<span style="color:#65B042;">'</span></span><span style="color:#E28964;">.</span><span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>parsedUrl</span>[<span style="color:#65B042;"><span style="color:#65B042;">'</span>query<span style="color:#65B042;">'</span></span>]<span style="color:#E28964;">;</span> } <span style="color:#E28964;">if</span> (<span style="color:#DAD085;">isset</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>parsedUrl</span>[<span style="color:#65B042;"><span style="color:#65B042;">'</span>port<span style="color:#65B042;">'</span></span>])) { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>port</span> <span style="color:#E28964;">=</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>parsedUrl</span>[<span style="color:#65B042;"><span style="color:#65B042;">'</span>port<span style="color:#65B042;">'</span></span>]<span style="color:#E28964;">;</span> } <span style="color:#E28964;">else</span> { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>port</span> <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span>80<span style="color:#65B042;">'</span></span><span style="color:#E28964;">;</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>most sites use port 80</span> } <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>timeout</span> <span style="color:#E28964;">=</span> <span style="color:#3387CC;">10</span><span style="color:#E28964;">;</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>response</span> <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">'</span><span style="color:#65B042;">'</span></span><span style="color:#E28964;">;</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>fp</span> <span style="color:#E28964;">=</span> <span style="color:#E28964;">@</span><span style="color:#DAD085;">fsockopen</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>host</span>, <span style="color:#65B042;"><span style="color:#65B042;">'</span>80<span style="color:#65B042;">'</span></span>, <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>errno</span>, <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>errstr</span>, <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>timeout</span>)<span style="color:#E28964;">;</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>connect to the remote server</span> <span style="color:#E28964;">if</span>(<span style="color:#E28964;">!</span><span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>fp</span>) { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>this</span><span style="color:#E28964;">-></span>log_status(<span style="color:#DAD085;">date</span>(<span style="color:#65B042;"><span style="color:#65B042;">"</span>H:i:s d-m-Y<span style="color:#65B042;">"</span></span>)<span style="color:#E28964;">.</span><span style="color:#65B042;"><span style="color:#65B042;">'</span> FAIL: Socket Failed Cannot Retrieve <span style="color:#65B042;">'</span></span><span style="color:#E28964;">.</span><span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>url</span>)<span style="color:#E28964;">;</span> <span style="color:#E28964;">return</span> <span style="color:#3387CC;">FALSE</span><span style="color:#E28964;">;</span> } <span style="color:#E28964;">else</span> { <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>send the necessary headers to get the file</span> <span style="color:#DAD085;">fputs</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>fp</span>, <span style="color:#65B042;"><span style="color:#65B042;">"</span>GET <span style="color:#8A9A95;"><span style="color:#8A9A95;">$</span>path</span> HTTP/1.0<span style="color:#DDF2A4;">\r</span><span style="color:#DDF2A4;">\n</span><span style="color:#65B042;">"</span></span> <span style="color:#E28964;">.</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>Host: <span style="color:#8A9A95;"><span style="color:#8A9A95;">$</span>host</span><span style="color:#DDF2A4;">\r</span><span style="color:#DDF2A4;">\n</span><span style="color:#65B042;">"</span></span> <span style="color:#E28964;">.</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>User-Agent: <span style="color:#65B042;">"</span></span><span style="color:#E28964;">.</span><span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>this</span><span style="color:#E28964;">-></span>rand_user_agent()<span style="color:#E28964;">.</span><span style="color:#65B042;"><span style="color:#65B042;">"</span><span style="color:#DDF2A4;">\r</span><span style="color:#DDF2A4;">\n</span><span style="color:#65B042;">"</span></span> <span style="color:#E28964;">.</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>Accept: */*<span style="color:#DDF2A4;">\r</span><span style="color:#DDF2A4;">\n</span><span style="color:#65B042;">"</span></span> <span style="color:#E28964;">.</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>Accept-Language: en-us,en;q=0.5<span style="color:#DDF2A4;">\r</span><span style="color:#DDF2A4;">\n</span><span style="color:#65B042;">"</span></span> <span style="color:#E28964;">.</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7<span style="color:#DDF2A4;">\r</span><span style="color:#DDF2A4;">\n</span><span style="color:#65B042;">"</span></span> <span style="color:#E28964;">.</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>Keep-Alive: 300<span style="color:#DDF2A4;">\r</span><span style="color:#DDF2A4;">\n</span><span style="color:#65B042;">"</span></span> <span style="color:#E28964;">.</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>Connection: keep-alive<span style="color:#DDF2A4;">\r</span><span style="color:#DDF2A4;">\n</span><span style="color:#65B042;">"</span></span> <span style="color:#E28964;">.</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>Referer: http://<span style="color:#8A9A95;"><span style="color:#8A9A95;">$</span>host</span><span style="color:#DDF2A4;">\r</span><span style="color:#DDF2A4;">\n</span><span style="color:#DDF2A4;">\r</span><span style="color:#DDF2A4;">\n</span><span style="color:#65B042;">"</span></span>)<span style="color:#E28964;">;</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>retrieve the response from the remote server</span> <span style="color:#E28964;">while</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>line</span> <span style="color:#E28964;">=</span> <span style="color:#DAD085;">fread</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>fp</span>, <span style="color:#3387CC;">4096</span>)) { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>response</span> <span style="color:#E28964;">.=</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>line</span><span style="color:#E28964;">;</span> } <span style="color:#DAD085;">fclose</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>fp</span>)<span style="color:#E28964;">;</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>strip the headers</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>pos</span> <span style="color:#E28964;">=</span> <span style="color:#DAD085;">strpos</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>response</span>, <span style="color:#65B042;"><span style="color:#65B042;">"</span><span style="color:#DDF2A4;">\r</span><span style="color:#DDF2A4;">\n</span><span style="color:#DDF2A4;">\r</span><span style="color:#DDF2A4;">\n</span><span style="color:#65B042;">"</span></span>)<span style="color:#E28964;">;</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>response</span> <span style="color:#E28964;">=</span> <span style="color:#DAD085;">substr</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>response</span>, <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>pos</span> <span style="color:#E28964;">+</span> <span style="color:#3387CC;">4</span>)<span style="color:#E28964;">;</span> } <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>this</span><span style="color:#E28964;">-></span>log_status(<span style="color:#DAD085;">date</span>(<span style="color:#65B042;"><span style="color:#65B042;">"</span>H:i:s d-m-Y<span style="color:#65B042;">"</span></span>)<span style="color:#E28964;">.</span><span style="color:#65B042;"><span style="color:#65B042;">'</span> SUCCESS: Data Has Been Downloaded Via A Socket Connection<span style="color:#65B042;">'</span></span>)<span style="color:#E28964;">;</span> <span style="color:#E28964;">return</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>response</span><span style="color:#E28964;">;</span> } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>try and use wget if on linux</span> <span style="color:#99CF50;">public </span><span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">cc_wget_file</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>url</span>) { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>cmd</span> <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>wget '<span style="color:#65B042;">"</span></span><span style="color:#E28964;">.</span><span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>url</span><span style="color:#E28964;">.</span><span style="color:#65B042;"><span style="color:#65B042;">"</span>'<span style="color:#65B042;">"</span></span><span style="color:#E28964;">;</span> <span style="color:#DAD085;">exec</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>cmd</span>)<span style="color:#E28964;">;</span> <span style="color:#E28964;">if</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>data</span> <span style="color:#E28964;">=</span> <span style="color:#DAD085;">file_get_contents</span>(<span style="color:#65B042;"><span style="color:#65B042;">"</span>broadcast<span style="color:#65B042;">"</span></span>)) <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>the file gets saved as file simply called broadcast</span> { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>this</span><span style="color:#E28964;">-></span>log_status(<span style="color:#DAD085;">date</span>(<span style="color:#65B042;"><span style="color:#65B042;">"</span>H:i:s d-m-Y<span style="color:#65B042;">"</span></span>)<span style="color:#E28964;">.</span><span style="color:#65B042;"><span style="color:#65B042;">'</span> SUCCESS: File Downloaded Using wget<span style="color:#65B042;">'</span></span>)<span style="color:#E28964;">;</span> <span style="color:#E28964;">return</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>data</span><span style="color:#E28964;">;</span> } <span style="color:#E28964;">else</span> { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>this</span><span style="color:#E28964;">-></span>log_status(<span style="color:#DAD085;">date</span>(<span style="color:#65B042;"><span style="color:#65B042;">"</span>H:i:s d-m-Y<span style="color:#65B042;">"</span></span>)<span style="color:#E28964;">.</span><span style="color:#65B042;"><span style="color:#65B042;">'</span> FAILED: Data Could not be retrieved using wget and file_get_contents<span style="color:#65B042;">'</span></span>)<span style="color:#E28964;">;</span> <span style="color:#E28964;">return</span> <span style="color:#3387CC;">FALSE</span><span style="color:#E28964;">;</span> } } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>select an random user agent from the db</span> <span style="color:#99CF50;">public </span><span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">rand_user_agent</span>() { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>sql</span> <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span><span style="color:#E28964;">SELECT</span> * <span style="color:#E28964;">FROM</span> cc_user_agents <span style="color:#E28964;">ORDER BY</span> rand()<span style="color:#65B042;">"</span></span><span style="color:#E28964;">;</span> <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>code to get a record from the database goes here</span> <span style="color:#E28964;">if</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>row</span> <span style="color:#E28964;">=</span><span style="color:#E28964;">=</span><span style="color:#E28964;">=</span> <span style="color:#3387CC;">FALSE</span> <span style="color:#E28964;">||</span> <span style="color:#E28964;">!</span><span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>row</span>[<span style="color:#3387CC;">0</span>]) { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>this</span><span style="color:#E28964;">-></span>log_status(<span style="color:#DAD085;">date</span>(<span style="color:#65B042;"><span style="color:#65B042;">"</span>H:i:s d-m-Y<span style="color:#65B042;">"</span></span>)<span style="color:#E28964;">.</span><span style="color:#65B042;"><span style="color:#65B042;">'</span> FAIL: Could Not Retrieve Random User Agent - Using Default<span style="color:#65B042;">'</span></span>)<span style="color:#E28964;">;</span> <span style="color:#E28964;">return</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3<span style="color:#65B042;">"</span></span><span style="color:#E28964;">;</span> } <span style="color:#E28964;">else</span> { <span style="color:#E28964;">return</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>row</span>[<span style="color:#3387CC;">0</span>]<span style="color:#E28964;">;</span> } } <span style="color:#AEAEAE;font-style:italic;"><span style="color:#AEAEAE;font-style:italic;">//</span>log status to a file</span> <span style="color:#99CF50;">public </span><span style="color:#99CF50;">function</span> <span style="color:#89BDFF;">log_status</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>msg</span>) { <span style="color:#E28964;">if</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>this</span><span style="color:#E28964;">-></span><span style="color:#3E87E3;">StatusLogOn</span> <span style="color:#E28964;">=</span><span style="color:#E28964;">=</span><span style="color:#E28964;">=</span> <span style="color:#3387CC;">TRUE</span>) { <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>path</span> <span style="color:#E28964;">=</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span>RequestFile.status.log<span style="color:#65B042;">"</span></span><span style="color:#E28964;">;</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>data</span> <span style="color:#E28964;">=</span> <span style="color:#DAD085;">file_get_contents</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>path</span>)<span style="color:#E28964;">;</span> <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>data</span> <span style="color:#E28964;">.=</span> <span style="color:#65B042;"><span style="color:#65B042;">"</span><span style="color:#DDF2A4;">\n</span><span style="color:#65B042;">"</span></span><span style="color:#E28964;">.</span><span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>msg</span><span style="color:#E28964;">;</span> <span style="color:#DAD085;">file_put_contents</span>(<span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>data</span>, <span style="color:#3E87E3;"><span style="color:#3E87E3;">$</span>path</span>)<span style="color:#E28964;">;</span> } <span style="color:#E28964;">return</span> <span style="color:#3387CC;">TRUE</span><span style="color:#E28964;">;</span> } } ?> </pre> </div> </div> <a href="http://refactormycode.com/codes/440-universal-file-download-class" style="color:#fff" title="As seen on RefactorMyCode.com"><img alt="Small_logo" src="http://refactormycode.com/images/small_logo.gif" style="border:0" /></a>