2008年7月7日 星期一

SCMP php 原始檔公開

共分兩個檔
第一個檔為 scmp.php
用於顯示新聞標題

  1. <?
  2. header('Content-type:text/html; charset=utf-8');
  3. $out = "<title>SCMP.com</title>\r\n";
  4. $out .= "<b><font size=5>SCMP</font></b><br>\r\n";
  5. $main = file_get_contents('http://www.scmp.com/portal/site/SCMP/');
  6. preg_match('/<td colspan=\"3\" style="padding-top: 3px; font-size:12px;font-family:Arial\;\" align=\"center\" valign=\"middle\">(.*?)<\/td>/s',$main,$issue);
  7. $out .="$issue[1]<hr>\r\n";
  8. $tt = array('Hong Kong','China','Asia','World','Education');
  9. $l = array('hong_kong','china','asia','world','education');
  10. $baseurl = 'http://www.scmp.com/rss/';
  11. for($i=0;$i<5;$i++){
  12. $url = "$baseurl"."$l[$i].xml";
  13. $content = file_get_contents($url);
  14. if (ereg('<item>',$content)){
  15. $out .= "<p><b><font color=#656565>$tt[$i]</font></b><br>\r\n"
  16. $content = preg_replace('/(.*?)<item>(.*?)<\/item>/s',"$2",$content);
  17. $content = preg_replace('/<pubDate>(.*?)<\/pubDate>/s','',$content);
  18. $content = preg_replace('/<description>(.*?)<\/description>/s','',$content);
  19. $content = preg_replace('/<title>(.*?)<\/title>(.*?)<link>(.*?)<\/link>/s',"<li><a href=scmp_view.php?link=$3>$1</a></li>\r\n",$content);
  20. $content = eregi_replace('<!\[CDATA\[','',$content);
  21. $content = eregi_replace('\]\]>','',$content);
  22. $out .= $content;
  23. }
  24. }
  25. $out .= "<hr><img src=http://static.flickr.com/60/219160214_e6ed15d559_o.gif>";
  26. echo $out;
  27. ?>


第二個檔為 scmp_view.php (2009-3-15 更新)
用於顯示新聞內文

  1. <?
  2.     header('Content-type:text/html; charset=utf-8');
  3.     ini_set('user_agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)');
  4.     $link = $_GET['link'];
  5.     $content = file_get_contents($link);
  6.     preg_match('/printform_target\">(.*?)<\/form>/s',$content,$match);
  7.     $content = $match[1];
  8.     preg_match('/artHeadline value=\"(.*?)\">/s',$content,$hl);
  9.     preg_match('/artSubHeadline value=\"(.*?)\">/s',$content,$shl);
  10.     preg_match('/artDate value=\"(.*?)\">/s',$content,$ad);
  11.     preg_match('/artByline value=\"(.*?)\">/s',$content,$bl);
  12.     preg_match('/artBody value=\"(.*?)\">/s',$content,$ab);
  13.     $headline = $hl[1];
  14.     $subheadline = $shl[1];
  15.     $art_date = $ad[1];
  16.     $by_line = $bl[1];
  17.     $body = $ab[1];
  18.     $out .= "<title>SCMP.com $headline</title>";
  19.     $out .= "<b><font color=#656565 size=5>$headline</font></b><br>\r\n";
  20.     $out .= "$subheadline<br>\r\n";
  21.     $out .= "$art_date<br>\r\n";
  22.     $out .= "$by_line<hr>\r\n";
  23.     $out .= "$body<hr>\r\n";
  24.     $out = eregi_replace('&lt;','<',$out);
  25.     $out = eregi_replace('&gt;','>',$out);
  26.     $out = eregi_replace('&amp;quot;','"',$out);
  27.     $out .= "<img src=http://static.flickr.com/60/219160214_e6ed15d559_o.gif>";
  28.     $allowed_tags = "<u>,<b>,<li>,<br>,<hr>,<img>,<font>,<p>,<title>";
  29.     $out = strip_tags($out, $allowed_tags);
  30.     echo $out;
  31. ?>


Enjoy!

8 則留言:

  1. 請教nerver4get是如何貼出這麼漂亮的syntax highlight code with php function link的呢?

    剛剛找了一下google還是百思不得其解,希望never4get可以指點一下 :)

    回覆刪除
  2. 請問是GeSHi做出來的效果嗎?

    回覆刪除
  3. 北極熊小江兄:
    我是使用網路上的小工具
    我在這篇
    中有提到
    供您參考 :)

    回覆刪除
  4. oh...不能讀取內容了...
    scmp_view.php

    回覆刪除
  5. 謝謝樓上的告知
    原始網頁有 check user agent
    scmp_view.php 我已做了修改

    回覆刪除
  6. but without asia, world, education.
    anyway, thanks for your effort.

    回覆刪除
  7. 再次不能讀取內容了
    help.....

    回覆刪除
  8. 是喔...我也不能夠讀取內容

    回覆刪除