Search code examples
phpfile-get-contentsgetimagesize

Error handling & workarounds allow_url_fopen and allow_url_include is disabled on the server


I've got several functions in my php app that relay on calls to file_get_contents(), file_put_contents, and getimagesize().

The problem is that when allow_url_fopen an allow_url_include are disabled in php.ini I'm getting errors on these critical functions.

Warning: getimagesize() [function.getimagesize]: URL file-access is disabled in the server configuration in /home/content/.../html/_sites/mysite/wp-content/themes/mytheme/functions.php on line 2534

What are the options for working around these issues?

EDIT: These are all local files on the same webserver as the calling php script. Is there a preferred method for reading/writing file contents?


Solution

  • You can use curl to get remote pages. You can store the results of the curl request to a variable and echo() in place of using the url wrapper to fetch content.

    In theory, you could also eval() the returned data. But running remotely fetched PHP code is a ENORMOUS security risk, any PHP code included in this way can literally do anything you can. DON'T DO IT! The same goes for allow_url_include too