`

php打印网页的代码举例

    博客分类:
  • PHP
阅读更多
本文出处参考:http://www.jbxue.com/article/6793.html
为大家介绍一个可以生成方便打印的页面的php代码,很多新闻网站都有这个功能,生成的页面简洁大方,去掉了部分多余的元素,整个页面只包括标题、发布时间、内容等主要元素。这个不同于window.print()的功能哦。

具体实现代码如下:
<?
//从环境变量中得到文件的相对路径
$page=substr($SCRIPT_NAME,1);

// 显示一个图标并连接到打印页
// 便于打印页面的生成程序pfp.php
?>
<a href="pfp.php?page=<?=$page?>">;<img src="printer.gif" width="36" height="36" border="0" alt="点我跳转打印页面">打印本页</a>


把当前页面的名称传递到pfp.php程序中,这个程序使用PHP的“file”函数把页面作为一个字符串来处理。当这个页面被载入的时候,程序就可以增加、改写或删除HTML片段。
<?
ereg('^.*/',$SCRIPT_FILENAME,$tmp);
$page_path = substr($tmp[0],0,-1);
?>
<html>
<head>
<base href="http://<? echo $HTTP_HOST ?>/">
<meta name="robots" content="no index, no follow">
<title>Printer Friendly Page</title>
</head>
<body bgcolor="white">
<table border="0" cellpadding="5" cellspacing="0" width="630" >
<tr>
<td valign="top">
<?
// check if the filename for the page exists
if (!file_exists("$page.inc"))
{
echo "<strong>Error - The page <?=$page?>".
"does not exist on this site.</strong>";
}
else
{
// 得到页面的内容并把它放到一个字符串中
$fcontents = join('', file("$page.inc"));

// 忽略颜色属性,转换以'ignore'替代'color'

$fcontents = ereg_replace('color','ignore',$fcontents);

// 去除超链接中的 “_blank”
$fcontents = ereg_replace('target=\"_blank\"','',$fcontents);

// 替换</a>标记
$fcontents = ereg_replace('</a>','',$fcontents);

// 显示URL的绝对地址
$fcontents = ereg_replace('<a[^h]*href="(http://[^"]*)"[^>]*>;([^]*)',
'<strong>\\2</strong><em>(\\1)</em>',$fcontents);

// 把相对链接转为绝对链接
$fcontents = ereg_replace(
'<a[^h]*href="([^"]*)"[^>]*>([^]*)',
"<strong>\\2</strong><em>(http://$HTTP_HOST/\\1)</em>";,
$fcontents);

// 背景颜色改回白色
$fcontents = ereg_replace('<body bgignore','<body bgcolor', $fcontents);

// if any markers left restore link end element
$fcontents = ereg_replace('','</a>',$fcontents);

// 输出页面
echo $fcontents;
}
?>
</td>
</tr>

<tr>
<td align="center"><hr width="90%"></td>
</tr>

<tr>
<td align="center">
<? include("$page_path/footer.inc"); ?>
</td></tr></table>
</body></html>

分享到:
评论

相关推荐

    PHP基础教程 是一个比较有价值的PHP新手教程!

    看看这个页面你就知道你的PHP安装使用的选项了。 2.3 语法 就像前面提到的一样,你可以混合编写你的PHP代码和HTML代码。因此你必须有办法将两者区别开来。以下就是你可以采用的几种方法。你可以选用其中一种你最...

    最新先发信达付款PHP第三第四方支付源代码适用H5二维码支付微信收钱钱夹快捷支付功能.txt

    - **第四方支付**:又称为聚合支付或聚合服务提供商(PSP),它并不直接参与到资金结算环节,而是为商户提供包括但不限于多种支付渠道接入、订单管理、数据分析等功能在内的综合解决方案。 ##### (二)H5二维码...

    CodeIgniter:php敏捷开发框架web快速开发详解

    复制代码到剪贴板HTML 代码&lt;a href="http://www.mysite.com/index.php/start/hello/fred"&gt;say hello to Fred&lt;/a&gt;后来,你决定转移网站到其他 URL。这意谓你必须仔细地去查找并修改代码中的每一处 URL,否则它们将...

    ChatGPT 在编程中的 9 个实际应用

    ChatGPT 是一款基于人工智能的对话模型,它在编程领域有着广泛的应用,可以帮助开发者提高工作效率,解决编程过程中遇到的问题。以下是从标题、描述和部分内容中提取的9个具体应用: 1. **生成高效算法**:ChatGPT ...

    php页面缓存方法小结_.docx

    举例说明,以下代码展示了如何使用上述缓存机制: ```php &lt;?php $_time = 10; $dir = "D:\php\"; function cache_start($_time, $dir) { $cachefile = $dir . '/' . sha1($_SERVER['REQUEST_URI']) . '.html'; $...

    PHP+Mysql开发入门

    ##### 1.10 网页访问流程原理分析 - **请求发送**:客户端向服务器发送HTTP请求。 - **服务器处理**:服务器解析请求,执行相应的脚本或程序。 - **响应返回**:服务器将处理结果以HTML等形式返回给客户端。 ##### ...

    PHP课程笔记

    //打印输出所有的值,通过document.write输出数组时,将自动转换成一个字符串输出 document.write(arr); 方式二:创建指定长度的数组,()中只有一个整数 var arr = new Array(3); //创建一个包含3个元素的数组 ...

    php.ini中文版-第一团购网.pdf

    对于优化代码性能和解决兼容性问题至关重要。 ### 1. 文件位置和命名 `php.ini` 必须命名为“php.ini”,PHP会在启动时尝试从以下位置寻找这个文件: - 当前工作目录 - 环境变量`PHPRC`指定的路径 - 编译时指定的...

    PHP3程序设计

    PHP是最流行的Web脚本语言之一,它运行在Web服务器端,根据用户请求或服务器端的数据产生动态网页;它功能强大,和HTML脚本融合在一起,并内建访问数据库的能力;它能够作为Apache Web 服务器的模块执行,也使得其...

    微信公众平台开发最佳实践 源代码

    微信公众平台开发最佳实践的源代码,没有加密。微信公众平台开发最佳实践讲的很详细,图文并茂。 其目录如下: 前 言 第1章 微信公众平台介绍 1 1.1 微信及其两大平台 1 1.2 微信公众平台 2 1.2.1 功能 2 1.2.2...

    PHP大牛线上培训班课-静态代理请求对象静态代理.zip

    【PHP静态代理请求对象】是PHP开发中一种重要的设计模式,它在软件工程中扮演着...通过这次培训,学员将能够熟练地运用静态代理请求对象这一设计模式,提升代码的可维护性和扩展性,从而在PHP开发中更高效地解决问题。

    PHP调试的强悍利器之PHPDBG

    举例来说,你可以创建两个PHP文件,一个包含需要调试的代码,另一个引入这个代码。然后使用PHPDBG启动调试会话,设置断点,观察代码执行过程。 通过这些功能,PHP开发者能够更高效地调试PHP应用程序,发现并修复...

    PHP超低内存遍历目录文件和读取超大文件的方法

    这不是一篇教程,这是一篇笔记,所以我不会很系统地论述原理和实现,只简单说明和举例。 前言 我写这篇笔记的原因是现在网络上关于 PHP 遍历目录文件和 PHP 读取文本文件的教程和示例代码都是极其低效的,低效就算...

    PHP数组实例总结与说明

    在PHP编程语言中,数组是一种数据结构,用于存储一系列有序的数据。数组实例总结与说明主要集中在如何使用PHP处理...理解数组的概念及其操作方式,不仅可以优化代码的可读性和效率,还能帮助解决各种复杂的编程问题。

    php中unserialize返回false的解决方法

    文章最后举例演示了使用这两个自定义函数后,能够成功解决由于编码不一致和特殊字符导致的unserialize函数返回false的问题。通过这个例子,能够看到在反序列化失败的情况下,通过编程方式修正序列化字符串,再进行反...

    PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function

    4. **解决举例**: - **重复声明类**:如果你在同一个文件或不同文件中两次声明了类`Foo`,删除其中一个定义,或者给类重新命名。 - **重复包含文件**:如果一个类文件被多个文件多次包含,改用`include_once`或`...

    php观察者模式应用场景实例详解

    * 免责声明:本文只是以哈票网举例,示例中并未涉及哈票网任何业务代码,全部原创,如有雷同,纯属巧合。 * * 场景描述: * 哈票以购票为核心业务(此模式不限于该业务),但围绕购票会产生不同的其他逻辑,如: *...

    php使用fopen创建utf8编码文件的方法

    举例来说,可以使用以下PHP代码来创建一个UTF-8编码的文件,并写入字符串内容: ```php &lt;?php // 定义要写入的新文件名称 $filename = 'example.txt'; // 定义待写入文件的内容 $str = '好呀'; // 使用fopen以写入...

Global site tag (gtag.js) - Google Analytics