+353 (0)87 1254033
+33 (0)617 104022

 
Technical Articles

Recent News & Articles

» Timeware Roster System (v2.0 S...
» Recommended site architecture ...
» Enabling Gzip compression on y...
» Secure file_get_contents PHP f...
» Puerto Plata Website Launched ...

Live Support
Contact one of our team members now to discuss your project requirements. Helpful & knowledgable team members are on hand to provide you with expert advice. Live support is currently


Secure file_get_contents PHP function

Posted: Fri, 19th November 2010 in PHP

This crops up all the time. We install a particular software suite on a clients' server and when we execute the script, it spits out an error about file_get_contents not expecting some arguments. Grrr, that's our first warning sign that we're probably running PHP4 on the server. A lot of companies continue to run PHP4 and while the upgrade from PHP4 to PHP5 is generally very smooth, not all server components update as well. Thus, rather than upgrading the entire server, we provide some simple bridging functions for some of the most commonly used PHP5 functions.
file_get_contents
is one such function.

A really handy feature added in PHP 5.0.0 was the concept of context support. A stream context can be very handy for defining such things as authorisation tokens. There is no in-built support for stream contexts within PHP 4 so we provide the following function to our clients and a small wrapper function to decide what to do depending on our environment. Here's
file_get_contents_secure
:


function file_get_contents_secure($url, $username, $password)
{
   $opts = array('http'=>
                 array('method'=>'POST',
                       'header'=>sprintf("Authorization Basic %s\r\n", 
                       base64_encode($username.':'.$password)).
                       "Content-type: application/x-www-form-urlencoded\r\n"
                      )
                );
   $context = stream_context_create($opts);
   $fh = fopen($url, 'r', false, $context);
   ob_start();
   fpassthru($fh);
   fclose($fh);
   $contents = ob_get_contents();
   ob_end_clean();
   return $contents;
}


That's it, it's really straightforward to call this function:


print file_get_contents_secure('https://mysite.com/secureurl/',
                               'myusername',
                               'mypass');


This is a really handy function that you can utilise if you are being forced to run off a PHP 4 server. We're presented with this task quite frequently and I'm sure you're no different.

As with all articles on Celtic Productions, this article is protected by international copyright laws. It may be linked to (we are of course most grateful of links to our articles), however, it may never be reproduced without the prior express permission of its owners, Celtic Productions.
About Us | Our Products | Our Services | Technical Articles | How we work | News | Contact Us | Privacy Policy