2008-03-04

利用 php shell 來清除網頁隱藏亂碼

在閱讀論壇時,有些東西要實作的必的,才發現 複製 & 貼上後出現一堆奇奇怪怪的文字,筆者曾利用 vim清除網頁上的隱藏亂碼,但是重要的動作一直重複,我開始也不耐煩了,於是上網查一下 命令列的 php script 寫法改用 php script 來解決這一個問題。

清除的作法和 vim 大同小異,如下:

  • 在想要 Copy  的地方,反白,選 檢視選取區域原始碼。

  • 將反白處的原始碼複製下來,貼到文字檔中(下述範例文字檔名為 content)

  • 執行 php -q clear.php content ouputcontent

  • ouputcontent 即為清除完成的文字檔。




以下為 clear.php 的程式碼:




<?php
$filename=$argv[1];
$fp=fopen($filename,'r');
$content=fread($fp,filesize($filename));
fclose($fp);
$pattern[0]="/$\n/";
$pattern[1]="/</";
$pattern[2]="/<font .*\n/m";
$pattern[3]="/<span .*\n/m";
$pattern[4]="/<.*>/";
$pattern[5]="/^\n/m";
$pattern[6]="/(&nbsp;\s?)+/m";

$replace[0]="";
$replace[1]="\n<";
$replace[2]="";
$replace[3]="";
$replace[4]="";
$replace[5]="";
$replace[6]=" ";

$tmp=preg_replace($pattern, $replace, $content);
$filename=$argv[2];
$fp=fopen($filename,"w+");
fwrite($fp,$tmp);
fclose($fp);
?>


上述的程式內容是在 unix 下以 \n 當成換行字元,若在 MS 的環境下,請自行變更換行字元!
Related Posts Plugin for WordPress, Blogger...

沒有留言 :

張貼留言

,,