[轉貼]PHP: 完美實現ASP.NET MasterPage的方法

[轉貼]PHP: 完美實現ASP.NET MasterPage的方法

ASP.NET中的MasterPage實在是太好用了,而在PHP裏面如果只是用傳統的方法,那麼只能夠把主要版面分段,然後個別使用include()的方式將主要版面湊出來,總覺得說不出來的彆扭。而且如果切割不好,那麼主要版面一旦改版,那麼內容頁就會改到死。使用傳統方法的程式碼大概像這樣:
<body>
<div><?php include('menu.php');?></div>
<div><?php include($page_content);?></div>
<div><?php include('footer.php');?></div>
</body>
如果沒有想過這個問題,也不會去找網路資源,原來早就有人找到方法了。主板頁面就是很一般的頁面,主要用了兩個變數$pagetitle和$pagemaincontent,看名字就知道是頁面標題和主要內容。
<?php
define('app_root',$_SERVER['DOCUMENT_ROOT']);
require_once(app_root."/shared/opendb.inc");
?>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title><?php echo $pagetitle ?></title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<link href="./style/globalreset.css" rel="stylesheet" media="screen" type="text/css" />
<link href="./style/layout.css" rel="stylesheet" media="screen" type="text/css" />
</head>
<body>
<div id="page">
<div id="header">
<div id="title">
<h1><a href="./index.php"><img src='./images/logo_full.jpg' height='50' /></a></h1>
</div>
<div id="cart">
<?php //require_once(app_root."/shared/login.inc"); ?>
</div>
</div>
<div id="wrapper">
<div id="sidebar">
<div id="menubox">
<?php //require_once(app_root."/shared/navigation.inc"); ?>
</div>
</div>
<div id="mainbox">
<div id="mainarea">
<?php echo $pagemaincontent; ?>
</div>
</div>
</div>
<div id="footer">
</div>
</div>
</body>
</html>
而內容頁面只要定義$pagetitle就好了,完整頁面的輸出就請看注解的部份。雖然這樣子做可能會小小的造成伺服器的負擔,但是跟維護比較起來,這一點點的負擔是絕對值得的。
<?php
define('app_root',$_SERVER['DOCUMENT_ROOT']);
require_once(app_root."/shared/opendb.inc");
$pagetitle = "頁面標題";
//將整個頁面輸出放到緩衝區
ob_start();
?>
頁面內容,隨便你輸出
<?php
//將緩衝區的內容放到變數裏面,然後清除緩衝區
$pagemaincontent = ob_get_contents();
ob_end_clean();
//套用主板頁面
include(app_root."/shared/master.php");
?>

php抓取網頁特定div區塊及圖片

[部分轉貼]php抓取網頁特定div區塊及圖片

//舉一反三
<?php  
//取得指定位址的內容,並儲存至text  
$text=file_get_contents(‘http://www.moea.gov.tw/Mns/populace/activephoto/ActivePhoto.aspx?menu_id=3874&ap_id=1666’);   

//取出div標籤且id為PostContent的內容,並儲存至陣列match  
preg_match(‘/<div[^>]*style=”margin-left: 37px”[^>]*>(.*?) </div>/si’,$text,$match);  
  
//印出match  
//print_r($match);
$length = count($match);
while ($i <= $length) {
echo($match[$i]);
$i++;
}
?>
//
昨天有個朋友在問我說,php怎麼抓取網頁某個div區塊的內容。像funp推推王那樣每次推文都會顯示文章內的圖片,提供縮圖撰擇,又是怎麼做到的?其實這語法出乎意料的簡短…
php抓取網頁特定div區塊及圖片
1. 取得指定網頁內的所有圖片測試
  1. <?php  
  2. //取得指定位址的內容,並儲存至text  
  3. $text=file_get_contents(‘http://andy.diimii.com/’);   
  4.   
  5. //取得所有img標籤,並儲存至二維陣列match  
  6. preg_match_all(‘#<img[^>]*>#i’$text$match);  
  7.   
  8. //印出match  
  9. print_r($match);  
  10. ?>  
2. 取得指定網頁內的第一張圖片測試
  1. <?php  
  2. //取得指定位址的內容,並儲存至text  
  3. $text=file_get_contents(‘http://andy.diimii.com/’);  
  4.   
  5. //取得第一個img標籤,並儲存至陣列match(regex語法與上述同義)  
  6. preg_match(‘/<img[^>]*>/Ui’$text$match);  
  7.   
  8. //印出match  
  9. print_r($match);  
  10. ?>  
3. 取得指定網頁內的特定div區塊(藉由id判斷)測試
  1. <?php  
  2. //取得指定位址的內容,並儲存至text  
  3. $text=file_get_contents(‘http://andy.diimii.com/2009/01/seo%e5%8c%96%e7%9a%84%e9%97%9c%e9%8d%b5%e5%ad%97%e5%bb%a3%e5%91%8a%e9%80%a3%e7%b5%90/’);   
  4.   
  5. //去除換行及空白字元(序列化內容才需使用)  
  6. //$text=str_replace(array(“r”,”n”,”t”,”s”), ”, $text);     
  7.   
  8. //取出div標籤且id為PostContent的內容,並儲存至陣列match  
  9. preg_match(‘/<div[^>]*id=”PostContent”[^>]*>(.*?) </div>/si’,$text,$match);  
  10.   
  11. //印出match[0]  
  12. print($match[0]);  
  13. ?>  
4. 上述2及3的結合測試
  1. <?php  
  2. //取得指定位址的內容,並儲存至text  
  3. $text=file_get_contents(‘http://andy.diimii.com/2009/01/seo%e5%8c%96%e7%9a%84%e9%97%9c%e9%8d%b5%e5%ad%97%e5%bb%a3%e5%91%8a%e9%80%a3%e7%b5%90/’);      
  4.   
  5. //取出div標籤且id為PostContent的內容,並儲存至陣列match  
  6. preg_match(‘/<div[^>]*id=”PostContent”[^>]*>(.*?) </div>/si’,$text,$match);     
  7.   
  8. //取得第一個img標籤,並儲存至陣列match2  
  9. preg_match(‘/<img[^>]*>/Ui’$match[0], $match2);   
  10.   
  11. //印出match2[0]  
  12. print_r($match2[0]);  
  13. ?>  

後記:用正規表達式Regex來做真的很方便,但老實說我規則常會忘掉,記錄一下幾篇文章好了(Regular Expression DetailsPCRE Functions | Introduction to PHP Regex | 天殺的正規表示式…

[轉貼]CSS圖片透明

http://www.dotblogs.com.tw/rab/archive/2011/01/21/css-cross-browser-support-alpha-display.aspx

要如何設定網頁中物件的透明度,又讓眾家瀏覽器都能閱讀,可利用下列的設定方式
  
.div_alpha{
 filter:alpha(Opacity=50, Style=0);/*for ie*/ 
 -moz-opacity:0.5;/* Moz + FF */ 
 opacity: 0.5;/* CSS3的標準語法,FOR支援CSS3的瀏覽器(FF 1.5)*/
}
filter:alpha(opacity)是屬於IE的私有屬性,-moz-opacity是屬於Mozilla跟FireFox的私有屬性,opacity則是標準的CSS規則,部分Moz Family也支援CSS3。後面的數值以百分比為單位,IE的Filter數值為0~100,-moz與opacity兩種數值為0~1之間,三種都設定可以確保透明的效果在以上的瀏覽器裡正確執行。
至於Mac上的Opera並不支援透明度屬性的設定,可是他支援png圖檔,所以可以利用png半透明圖檔設定為背景,也可以達到半透明背景的效果。
設定透明度會讓物件本身與子元素都一起半透明,所以文字也會一起變半透明,如果是要作遮罩效果,記得要將物件拆開設定,才不會讓文字也一併被透明化了喔!!
範例網址 / css_alpha_setting.htm

DOS樹狀清單

DOS樹狀清單

先執行
cmd /u
切到該資料夾
執行
檔名.bat

//code============================

@echo on
rem 註解 把 cmd/u註解(rem) 再輸入test.bat執行

cmd /u

pause
DIR /S /A:-D /B /O:N >> list.txt
list.txt

//================================

http://pbice.blogspot.tw/2010/11/dirunicode.html

用Dir指令列出Unicode檔名清單

我原本就知道MS-DOS模式底下的dir指令可以將結果輸出成文字檔,這樣可以很方便的將所有檔案的檔名做成清單。不過,遇到Unicode檔名該如何處理?看了這篇文章〈利用 dir 將檔案總管中的目錄裏的檔名轉成文字檔〉,覺得很實用,摘記如下:

  1. 先新增一個文字檔(例如list.txt),將編碼改成Unicode。
  2. 輸入cmd /u,以Unicode模式執行。
  3. 執行dir指令,dir >> list.txt。如果只想列出檔名、不要日期、路徑等資訊,可以加參數 b
  4. 注意輸出時一定要有2個輸出符號>>,否則會亂碼。

[轉貼]HTTrack 3.47.27 免安裝中文版 – 網站離線閱讀下載軟體

http://www.azofreeware.com/2011/04/httrack-3441.html

HTTrack
網站下載工具 – HTTrack,想要把整個網站的內容下載下來嗎?可以試試這個自由軟體,它具有續傳下載功能,也可以用於更新現存的鏡射網站。(阿榮)(葒荳推薦)(下載



HTTrack is a free (GPL, libre/free software) and easy-to-use offline browser utility.

It allows you to download a World Wide Web site from the Internet to a local directory, building recursively all directories, getting HTML, images, and other files from the server to your computer. HTTrack arranges the original site’s relative link-structure. Simply open a page of the “mirrored” website in your browser, and you can browse the site from link to link, as if you were viewing it online. HTTrack can also update an existing mirrored site, and resume interrupted downloads. HTTrack is fully configurable, and has an integrated help system.

關鍵字:HTTrack Website Copier, winhttrack

[官方載點]

※中文切換說明:開機時選擇「Chinese-BIG5」,或者,「Preferences」→「Language preference…」→選擇「Chinese-BIG5」

下載連結→ [按此下載免安裝中文版]


免安裝版 [3.47.27] [3.47.26] [3.47.24] [3.47.23] [3.47.22] [3.47.21] [3.47.20] [3.47.19] [3.47.18] [3.47.17] [3.47.16] [3.47.14] [3.47.11] [3.47.7] [3.47.6] [3.47.2] [3.46.1

[轉貼]「密碼查看器 1.5」 星號密碼顯示工具

http://file.minwt.com/2013/02/15.html


        大部分的軟體,為了防止密碼外洩,因此當密碼欄的部分,都會採用星號來作保護,由於軟體本身會幫忙記憶,但人的記憶力總是有限的,一段時間不用時,早也忘了當初所設定的密碼是什麼,但這時就可透過「密碼查看器」,將這些星號的密碼,現出原形來,如此一來就不用擔心,當初所設定的密碼是什麼了,也便於日後密碼的管理。 

AutoPager Chrome

autopager-00 (by 異塵行者)
當我們在Google搜尋時,必須透過點擊下一頁才能瀏覽更多結果;當我們來到一些線上新聞媒體網站時,很多長篇評論也會讓我們花上許多時間點擊換頁;又或者當我們來到購物網站時,不斷翻頁查找商品的經驗想必很繁瑣;還有像是在論壇瀏覽文章時,如果能一氣呵成把好幾頁文章直接在同一頁看完,除了爽快之外也能節省不少時間。

下載點:https://chrome.google.com/webstore/detail/autopager-chrome/mmgagnmbebdebebbcleklifnobamjonh?hl=zh-TW

[轉貼][網路工具]FreeProxy 讓一群電腦輕鬆共用 Internet 連線

http://toget.pchome.com.tw/category/network/12322.html

‧軟體名稱:FreeProxy
‧軟體分類:架站軟體
‧軟體性質:Freeware
‧更新日期:2004-12-29
‧最近版本:3.81
‧作業系統:Windows XP/2000/Me/98/95/NT
‧語言界面:英文
‧購買金額:-
‧試用限制:-
‧原創公司:Hand-Crafted Software
‧評  等:

‧軟體下載:

【軟體簡介】
當你和一群同事或朋友到外地想要使用自己的電腦,但牆上只有一個網路插孔?或是你想和朋友共用同一個無線網路帳號,以節省上網費用?FreeProxy 可以將一台普通的 Windows 系統變成一個功能強大,且具備網路資料快取機能的代理伺服器,讓你的電腦能帶著其他人一起遨遊網路。
【詳細說明】
編輯/黃力堯(2004-12-29)
當有很多人都想使用自己的筆記電腦連上 Internet,但當時只能找到一個網路接孔的時候,想必一定是很尷尬的狀況吧.究竟該讓誰先連上網路呢?還是要大家一起共用那個網路接孔?這些狀況現在你都不需要再擔心了,因為如果你有了 FreeProxy 代理伺服器軟體,下次在碰到這種一堆人搶一個網路孔的狀況時,你就可以大聲的說:先讓我連上網路,因為我可以將連線分享給你們用!

安裝了 FreeProxy 軟體之後,你的電腦就馬上成為一台連線代理伺服器.FreeProxy 共支援下列幾種通訊協定的代理作業:

.HTTP (網頁傳輸通訊協定)

.POP (郵件收取通訊協定)

.SMTP (郵件寄送通訊協定)

.Telnet (終端機通訊協定)

.FTP (檔案傳輸通訊協定)

.SOCKS (SOCKS 代理伺服器協定)

.NNTP (新聞伺服器協定)

這些通訊協定已經涵蓋了大部分人一般會使用的通訊協定,你還可以指定各個通訊協定要在哪個通訊埠號接受連線,或是只在特定的網路卡上接受連線。設定完成後你就可以開始將你的 Internet 連線分享給其他人使用了,例如牆上只有一個網路插孔,而你擁有具備無線網路的筆記電腦,你就可以使用點對點無線連線方式將網路連線分享給其他具備無線網路的電腦使用。

此外 FreeProxy 所帶給你的還不僅只有陽春的代理功能喔,它還內建了多重的使用者管制功能,時間限制功能等,使得 FreeProxy 也很適合使用在須對使用者進行管制的企業使用。而且當主要的網際網路連線斷線時,FreeProxy 還內建了撥號連線功能。只要你的電腦具備數據機,你就可以在緊急的時候使用數據機作緊急備援用,不讓重要的網路連線中斷。

【下載資訊】
‧檔案大小:-
‧下載連結:togethandcraftedsoftware.cyberemail.orghandcraftedsoftware.cyberemail.org