Programming :  Student Freelance Forum For Work Experience Builders' (CertificationPoint) The fastest message board... ever.
 
PHPrint
Posted by: adcertpoint (Moderator)
Date: April 29, 2020 04:30PM

By Sijis Aviles

on January 16, 2003

-
Version: 1.45

Type: Full Script

Category: HTML

License: Other

Description: Printer friendly pages from anywhere on a website.
This dynamic “Print This Page” script works right out of the box – cut and paste. Has the option to leave images in the new print friendly page if required. Just link to this script, and it will give a printer friendly version of any page, whether it’s a PHP, ASP, CGI, or HTML page.





?


<?php
/************************************************************************
** PHPrint originally created by MikeNew.Net
* Version 1.3
*
** Updated for use with PHP 4.1.xx 9-22-02
** Updated opening and reading of html page 9-22-02
** Updated functions to pass values by reference 9-22-02
** Updated function i_denude() to strip all img tags 9-25-02
** Addition of Javascript printWin() function 9-22-02
** Updated i_denudef function; Added ability to 1-16-03
** parse php code (except looping type code)
** Added ability to get remove file by url
** querystring.
** Collaborative effort by: lunadesign.org
* looneynav.com
* thejehm.net
* sijis.cjb.net
*
** Legal: Users of this script are responsible for any damages caused
* by use of this script. (Not that it will, probably. Never has.)
* This script will make your pages printer friendly.
* By default this version will strip images as well.
*
** Use: Link the page you would like to print to this page with a
* standard html <a href="">Link</a> tag.
* Examples:
* php: <a href="print.php?url=<?= $_SERVER['PHP_SELF']; ?>">Print this page</a>
* html <a href="print.php?url=/directory/file.html">Print another page</a>
*
** To leave images intact change line 52 to $stripImages = "no";
*
** This page must be in the root directory.
*
** Place <!-- startprint --> at the beginning of the content you
* would like to print and <!-- stopprint --> at the end.
*
** That's all there is to it.
*************************************************************************/
// Begin: Functions used.
function i_denude(&$variable){
//STRIP ALL TAGS THAT START WITH <img...
return eregi_replace("< *img[^>]* *>", "", $variable);
}

function i_denudef(&$variable){
$tmpText = preg_replace("/(< *font[^>]* *>winking smiley(.*)((< */ *font[^>]* *>winking smiley)/i","$2", $variable);
return $tmpText;
}
// End functions used.

// Set Variables
$url = $_REQUEST['url'];
$url = ereg_replace("^/?", "", $url); //strip slashes for security
$stripImages = "yes";
$startingpoint = "<!-- startprint -->";
$endingpoint = "<!-- stopprint -->";
$referer = $_SERVER['HTTP_REFERER'];

// Open and read file specified in URL.
$file = $url; // $chage $url to $_SERVER['HTTP_REFERER'];
// to use as older version.
$str_value = "";
$read = fopen($file, "rb"winking smiley;
while(!feof($read)){
$str_value .= fread($read, filesize($file));
}
fclose($read);

// Get length of print text
$str_start = strpos($str_value, "$startingpoint"winking smiley;
$str_finish = strpos($str_value, "$endingpoint"winking smiley;
$str_length = $str_finish-$str_start;
$str_value = substr($str_value, $str_start, $str_length);

// Got length of string between $startingpoint and $endpoint
// and send to other $variable. Easy to debug for later revision
$PHPrint = $str_value;

// Strip HTML font tag and/or HTML img tags.
if ($stripImages == "yes"winking smiley {
$PHPrint = i_denude($PHPrint);
}
$PHPrint = i_denudef($PHPrint);
$PHPrint = stripslashes($PHPrint);
?>
<html>
<head>
<title>Print this Page</title>
<script language="Javascript">
function printWindow() {
bV = parseInt(navigator.appVersion);
if (bV >= 4) window.print();
}
</script>
</head>
<body onload="printWindow();">
<?php
// Put stripped $string into array to filter for php code
// for parsing on the page.
// Currently it doesn't output looping statements.
$mode = 0; // 0 for printing , 1 for executing.
$arrfile = explode("n",$PHPrint);
foreach($arrfile as $line){
if(strstr($line,"<?"winking smiley && strstr($line,"?>"winking smiley){
eval('?>'.$line);
}
else{
if (strstr($line,"<?"winking smiley){
$mode = 1;
}
elseif (strstr($line,"?>"winking smiley){
$mode = 0;
}
elseif ($mode){
if(strstr($line,";"winking smiley){
eval($line);
}
}
else {
echo $line;
}
}
}
echo "This page was printed from: $referer";
flush ();
?>
</body>
</html>

Options: ReplyQuote


Sorry, only registered users may post in this forum.
This forum powered by Phorum.