PHP產生便於列印的網頁_PHP

來源:互聯網
上載者:User
關鍵字 網頁 列印 便於 產生 fcontents 頁面 p
很多新聞和資訊網站都提供了一種產生便於列印的網頁的方法,所產生的頁面的排版布局更有利於印表機的列印輸出,這種方法方便了我們從網頁上直接列印我們所需的內容,而不必為格式不規整傷腦筋,或者粘貼到文字編輯器中重新排版。然而,我卻沒看到有多少網站詳細解釋這些是如何?的,在這裡我提供一小段代碼——用PHP來實現產生便於列印的網頁並不是像想象的那麼難,希望對大家有協助。

要產生便於列印的網頁,需要我們做哪些工作呢?這主要取決於你的網站特點,和你想要產生的版式特徵,不過有一些基本處理需要完成:

1、 頁寬——產生頁面的寬度必須限制,要列印A4的紙,大約網頁要在630像素寬。
2、 頁面背景色——為了美觀,很多網頁使用了不同的背景色和背景圖片,但是作為要列印的網頁,最合適效果的還是白底黑字為好。
3、 廣告條——移除頁面上的廣告
4、 表格的背景色——我們經常在表格中用顏色來強調資訊和標題,這些也必須移除。
5、 連結——頁面中的超連結也必須改變以使URL可見,例如:GBDirect應顯示為GBDirect (http://www.gbdirect.co.uk/)
6、 菜單——菜單是最難被禁止的,然而如果你的頁面是使用模板來構建的話,那麼最簡單的方法是換用便於列印的沒有菜單的模板。

這些產生便於列印頁面的所有方法,都是非常簡單的,需要實現的時候你可以被下面的代碼放到網頁中:
//從環境變數中得到檔案的相對路徑
$page=substr($SCRIPT_NAME,1);

// 顯示一個表徵圖並串連到Printer Friendly Pages
// 便於列印頁面的產生程式pfp.php
?>
">;
alt="Click here to produce a printer friendly page">


Printer Friendly Version


把當前頁面的名稱傳遞到pfp.php程式中,這個程式使用PHP的“file”函數把頁面作為一個字串來處理。當這個頁面被載入的時候,程式就可以增加、改寫或刪除HTML片段。

ereg('^.*/',$SCRIPT_FILENAME,$tmp);
$page_path = substr($tmp[0],0,-1);
?>






Printer Friendly Page





















// check if the filename for the page exists
if (!file_exists("$page.inc"))
{
echo "Error - The page ".
"does not exist on this site.
";
}
else
{
// 得到頁面的內容並把它放到一個字串中
$fcontents = join(', file("$page.inc"));

// 忽略顏色屬性,轉換以’ignore’替代’color’

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

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

// 替換標記
$fcontents = ereg_replace('',',$fcontents);

// 顯示URL的絕對位址
$fcontents = ereg_replace(']*>;([^]*)',
'\\2(\\1)',$fcontents);

// 把相對連結轉為絕對連結
$fcontents = ereg_replace(
']*>([^]*)',
"\\2(http://$HTTP_HOST/\\1)";,
$fcontents);

// 背景顏色改回白色
$fcontents = ereg_replace('
// if any markers left restore link end element
$fcontents = ereg_replace(','',$fcontents);

// 輸出頁面
echo $fcontents;
}
?>








這樣便於列印的頁面就產生了,希望對大家能有協助。

(譯自PHPBulider/Mark Spink)
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.