Don't try running the script on this page and then emailing me that it doesn't work on this page :-)
<? header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modifieed: ". gmdate("D, d M Y H:i:s"). " GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Cache-Control: post-check=0,pre-check=0"); header("Cache-Control: max-age=0"); header("Pragma: no-cache"); /* || Takes the referrer document, only prints the content || works only with documents on the same server. good enough :-) || Vattekkat Satheesh Babu (vsbabu-removethis@vsbabu.org). || || I put an HTML comment called "document_starts_here" before || content starts and another one "document_ends_here" after || the content. If you have been following some standard like || that, it could be useful. || || Installation instructions || 1. Copy paste the code here to your favourite editor, and save it as some php3 file || 2. The file name doesn't matter. I call it printit.php3 || 3. From your other web pages make a link to printit.php3 || 4. Test it out by clicking on the links in those pages || */ if ($HTTP_REFERER) $myURL = $HTTP_REFERER; else $myURL = "http://vsbabu.csoft.net/"; // here is the starting comment for your content $START_CONT="document_starts_here"; // here is the ending comment for your content $END_CONT = "document_ends_here"; $parsed_url = parse_url($myURL); $myServer = $parsed_url['host']; $document = $parsed_url['path']; if($document[strlen($document)-1]=='/') $document = "$document/index.html"; $base_url = dirname($document); $fp=fsockopen($myServer,80,&$errno,&$errstr,30); // if you've name based virtual hosting $request = "GET $document HTTP/1.1\r\n"; $request .= "Host: $myServer\r\n\r\n"; /* if you've normal old type servers, comment out the previous two lines and use the next line instead */ //$request = "GET $document HTTP/1.0\r\n\r\n"; if(!$fp) { echo "$errstr ($errno)<br>\n"; } else { fputs($fp,$request); $content=0; $in_title=0; ?> <HTML> <HEAD> <BASE HREF="<? echo "http://$myServer$base_url/"; ?>"> <STYLE TYPE="TEXT/CSS"> <!-- body,p { background: #FFFFFF; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; margin-left: 5px; margin-top: 5px; margin-right: 5px; margin-bottom: 5px; color: #000000; text-align: justify; } TH.headerrow { background-color: #CDC8B1; font-family: verdana,courier; font-size: 10pt; color: black; } TD.datarow { font-family: verdana,courier; font-size: 10pt; color: black; } //--> </STYLE> <? while(!feof($fp)) { $line=fgets($fp,4096); // this is the stupid part - get the title // python makes this so easy :-) if(eregi("<title>",$line)){ $in_title=1; } if ($in_title==1) $title.=$line; if(eregi("</title>",$line)){ $in_title=0; if(!eregi("<title>",$line)) $title.=$line; } if(ereg($START_CONT,$line)) { $title = eregi_replace("</title>","",eregi_replace("<title>","",$title)); echo "<TITLE>$title</TITLE>\n</HEAD>\n<BODY>\n"; $content=1; } if(ereg($END_CONT,$line)) $content=0; if($content==1)echo $line; } fclose($fp); ?> <HR> <CENTER> <SMALL>Copyright © <U>Vattekkat Satheesh Babu</U>. All rights reserved.</SMALL><BR> <?echo "<A HREF=\"$myURL\"><SMALL><I>$myURL</I></SMALL></A>\n";?> </CENTER> </BODY> </HTML> <? } ?>
[2002.03.21] Debbie Sontag contributed a solution if the page that you are trying to get printer-friendly is password protected using HTTP authentication:
REPLACE THIS LINE: $request = "GET $document HTTP/1.0\r\n\r\n"; WITH THIS: $request="GET $document HTTP/1.0\r\n"; $request.="Authorization: basic ".base64_encode("username:password")." \r\n\r\n";Thanks Debbie!
Since you are seeing this, it means that your browser does not support cascading style sheets. Please download and use one of the many browsers that support web standards.