|
Posted by petersprc on 10/29/06 05:12
Hi,
You could fetch a remote URL using PHP's URL wrappers. For example,
readfile can stream the contents of a remote URL:
readfile('http://site/content/page.html');
You could also do this with mod_proxy:
ProxyPass /my/mirror/ http://site/content/
Requests for /my/mirror/* will be internally sent to the remote site.
If the page contains internal links that use absolute URLs, you may
want to use mod_proxy_html to rewrite those URLs or use an output
buffer handler. More info on using mod_proxy_html:
<http://www.wlug.org.nz/ApacheReverseProxy>
You could also use a proxy application such as PHP Proxy
(www.phpproxy.com).
Since many browsers can automatically decompress gzip-compressed
content, you wouldn't need to worry about decompressing it yourself. If
you still wanted to do this however, you could use a shell command.
Some code to do that:
<?
// Sample usage:
//
// zcatUrl('http://site/file.html.gz')
//
// That will decompress the remote URL and stream content
// to the browser.
function zcatUrl($url)
{
$errors = tempnam('/tmp', 'zcatUrl-');
$cmd = 'wget -O - ' . escapeshellarg($url) .
' 2> ' . escapeshellarg($errors) . ' | zcat';
passthru($cmd, $exitCode);
if ($exitCode != 0) {
$msg = "Command \"$cmd\" failed with exit code $exitCode";
$err = false;
if (is_file($errors)) {
$err = file_get_contents($errors) or
trigger_error("Failed to read file $errors.");
}
$msg .= $err !== false ? ": $err" : '.';
trigger_error($msg);
}
if (is_file($errors)) {
unlink($errors) or
trigger_error("Failed to delete file $errors");
}
}
?>
* Tong * wrote:
> Hi,
>
> I'm wondering if you can show me an example php page that allows me to
> retrieve and display 3rd party pages. I.e.,
>
> when my php script is called as http://site/path/getit.php?file_key
> it can retrieve from http://3rd.party/path2/name-with-file_key.htm
> and display the result back to the browser.
>
> I don't know php, and start to learning it. So I hope you can give me a full
> php page, not a segment. I don't think it'd be too long though. Luckily, I'm
> a programmer, so you don't need to comment it much, unless it is too
> convoluted.
>
> Further, if you can throw in handling of gzipped files, that'd be super.
>
> If you have Firefox, it can automagically gunzipped gzipped files, like
>
> http://www.gnu.org/software/bash/manual/bashref.html.gz
>
> So I hope the script http://site/path/getit.php?bashref
>
> can display the content of
>
> http://www.gnu.org/software/bash/manual/bashref.html.gz
>
> thanks
>
>
> --
> Tong (remove underscore(s) to reply)
> http://xpt.sourceforge.net/
>
>
> --
> Posted via a free Usenet account from http://www.teranews.com
Navigation:
[Reply to this message]
|