» 您尚未 登錄   註冊 | 幫助 | 社區 | 無圖版


腦友記廣場 -> 新手上路 -> 把不想要的內容抽出.
 XML   RSS 2.0   WAP 

--> 本頁主題: 把不想要的內容抽出. 加為IE收藏 | 收藏主題 | 上一主題 | 下一主題
zozzen



級別: 新手上路
精華: 0
發帖: 79
威望: 80 點
金錢: 790 HKD
貢獻值: 0 點
註冊時間:2007-11-28
最後登錄:2015-03-08
查看作者資料 發送短消息 推薦此帖 引用回復這個帖子

把不想要的內容抽出.

請教各位師兄,

在這篇教程中 (http://elife.maninnet.com/read.php?tid=82&fpage=1 ),
我們可以用 eregi("下次攪珠(.*)閣下如中獎",$line,$matches) 去抽出想要的內容.

假設 $body 是主內容,
$un_want 是不想要的內容,
應該用甚麼方法把它從 $body 中抽出來呢?

謝謝大家.

[樓 主] | Posted: 2008-02-23 16:34 頂端
maninnet



級別: 管理員
精華: 0
發帖: 1903
威望: 1903 點
金錢: 19030 HKD
貢獻值: 0 點
註冊時間:2005-12-22
最後登錄:2018-02-01
查看作者資料 發送短消息 推薦此帖 引用回復這個帖子



用取代.
$body=eregi_replace($un_want,"",$body);

[1 樓] | Posted: 2008-02-23 18:15 頂端
zozzen



級別: 新手上路
精華: 0
發帖: 79
威望: 80 點
金錢: 790 HKD
貢獻值: 0 點
註冊時間:2007-11-28
最後登錄:2015-03-08
查看作者資料 發送短消息 推薦此帖 引用回復這個帖子



感謝感謝!!
[2 樓] | Posted: 2008-02-24 02:32 頂端
zozzen



級別: 新手上路
精華: 0
發帖: 79
威望: 80 點
金錢: 790 HKD
貢獻值: 0 點
註冊時間:2007-11-28
最後登錄:2015-03-08
查看作者資料 發送短消息 推薦此帖 引用回復這個帖子



好似搞唔到添...

我嘗試將 http://zh.wikipedia.org 左手邊的 sidebar 抽出來,
用的碼是這樣:

eregi('<li id="n-mainpage">(.*)<li id="n-sitesupport2">',$content,$unwant);

$content = eregi_replace($unwant,"",$content);

但翻查編碼內容, 
從 <li id="n-mainpage"> 到 <li id="n-sitesupport2"> 之間的 code 仍然存在,
真係莫名奇妙....

[3 樓] | Posted: 2008-02-24 02:53 頂端
maninnet



級別: 管理員
精華: 0
發帖: 1903
威望: 1903 點
金錢: 19030 HKD
貢獻值: 0 點
註冊時間:2005-12-22
最後登錄:2018-02-01
查看作者資料 發送短消息 推薦此帖 引用回復這個帖子



試試改為:
$content = eregi_replace($unwant[1],"",$content);

[4 樓] | Posted: 2008-02-24 06:00 頂端
zozzen



級別: 新手上路
精華: 0
發帖: 79
威望: 80 點
金錢: 790 HKD
貢獻值: 0 點
註冊時間:2007-11-28
最後登錄:2015-03-08
查看作者資料 發送短消息 推薦此帖 引用回復這個帖子



唔好意思, 再打搞一下,
似乎 $unwant 的內容是正確抽了出來,
但 eregi_replace 卻換不到.

<?

$requesturl = "http://zh.wikipedia.org";
if ($fp = fopen("$requesturl","r")){
while(!feof($fp))
{
  $line .= fgets($fp,256);
}
fclose($fp);
}

eregi('<li id=\"n-mainpage\">(.*)<li id=\"n-sitesupport2\">',$line,$unwant1);
$line = eregi_replace($unwant1[1],"",$line);

echo $unwant1[1];   // display un-wanted section
echo $line; // display trimmed result




?>

[5 樓] | Posted: 2008-02-24 13:48 頂端
maninnet



級別: 管理員
精華: 0
發帖: 1903
威望: 1903 點
金錢: 19030 HKD
貢獻值: 0 點
註冊時間:2005-12-22
最後登錄:2018-02-01
查看作者資料 發送短消息 推薦此帖 引用回復這個帖子



<?

$requesturl = "http://zh.wikipedia.org";
if ($fp = fopen("$requesturl","r")){
while(!feof($fp))
{
$line .= fgets($fp,256);
}
fclose($fp);
}

$line=eregi_replace('<li id=\"n-mainpage\">(.*)<li id=\"n-sitesupport2\">',"",$line);

echo $line; // display trimmed result
?>

[6 樓] | Posted: 2008-02-24 19:04 頂端
zozzen



級別: 新手上路
精華: 0
發帖: 79
威望: 80 點
金錢: 790 HKD
貢獻值: 0 點
註冊時間:2007-11-28
最後登錄:2015-03-08
查看作者資料 發送短消息 推薦此帖 引用回復這個帖子



咦! 點解咁奇怪既, 真係得左, 感覺 php 好古惑~~

唔該晒網兄!

[7 樓] | Posted: 2008-02-25 00:54 頂端
maninnet



級別: 管理員
精華: 0
發帖: 1903
威望: 1903 點
金錢: 19030 HKD
貢獻值: 0 點
註冊時間:2005-12-22
最後登錄:2018-02-01
查看作者資料 發送短消息 推薦此帖 引用回復這個帖子



只是直接的刪去中間內容已達到要求, 無須抽出.
$unwant[1] 內的字串太長, 會很花系統資源, 而且, 內有一些保留字符, 如 " 之類要變成 \"
未加處理, 就會不成功.

[8 樓] | Posted: 2008-02-25 06:39 頂端
zozzen



級別: 新手上路
精華: 0
發帖: 79
威望: 80 點
金錢: 790 HKD
貢獻值: 0 點
註冊時間:2007-11-28
最後登錄:2015-03-08
查看作者資料 發送短消息 推薦此帖 引用回復這個帖子



非常感激, 我經常犯這些小錯誤, 浪費了好多時間.
[9 樓] | Posted: 2008-02-25 11:37 頂端

腦友記廣場 -> 新手上路




Powered by PHPWind v4.0.1 Code © 2003-05 PHPWind
You can contact us