腦友記廣場 -> 新手上路 -> 把不想要的內容抽出. 登錄 -> 註冊 -> 回復主題 -> 發表主題

zozzen 2008-02-23 16:34
請教各位師兄,

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

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

謝謝大家.

maninnet 2008-02-23 18:15
用取代.
$body=eregi_replace($un_want,"",$body);

zozzen 2008-02-24 02:32
感謝感謝!!

zozzen 2008-02-24 02:53
好似搞唔到添...

我嘗試將 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 仍然存在,
真係莫名奇妙....

maninnet 2008-02-24 06:00
試試改為:
$content = eregi_replace($unwant[1],"",$content);

zozzen 2008-02-24 13:48
唔好意思, 再打搞一下,
似乎 $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




?>

maninnet 2008-02-24 19:04
<?

$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
?>

zozzen 2008-02-25 00:54
咦! 點解咁奇怪既, 真係得左, 感覺 php 好古惑~~

唔該晒網兄!

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

zozzen 2008-02-25 11:37
非常感激, 我經常犯這些小錯誤, 浪費了好多時間.


查看完整版本: [-- 把不想要的內容抽出. --] [-- top --]


Powered by PHPWind v4.0.1 Code © 2003-05 PHPWind
Gzip enabled

You can contact us