2011-11-12 34 views
0

這裏是我用來刮名稱和網址的代碼,但每個名字都以~開頭。 我想刪除~的一部分。我試過使用str_replace,但從看它看起來不太合適。 (也測試了它和相同的結果)如何刪除我從網站上刮下的純文本中的一部分?

foreach ($div_category as &$div){ 
    $a_list = $div->find("a"); 
    foreach ($a_list as &$anchor){ 
     //put the data into an array and then write array out to a csv file. 
     $csv_array=array($anchor->plaintext, $anchor->getAttribute("href")); 
     $anchor = str_replace('~', ' ', $anchor); 
     fputcsv($csv_out, $csv_array); 

當前結果例子:

name  url 
~john  www.john.com 
~bob  www.bob.com 
~rob  www.rob.com 
+1

我討厭這些問題。我本人是一名網站管理員,我討厭那些無法創造自己的東西,但只能「刮」我勞動成果的人。我甚至應該幫助他們! –

回答

1
<?php 
$str = "~~~~~~"; 
$str = str_replace("~","!",$str); 
echo $str; 
?> 

我的作品。所以替換部分應該沒問題。您必須正確處理錨點的屬性「不正確」。嘗試打印錨用:

print_r($anchor) 

看你應該使用什麼屬性

編輯:

foreach ($div_category as &$div){ 
    $a_list = $div->find("a"); 
    foreach ($a_list as &$anchor){ 
     //put the data into an array and then write array out to a csv file. 
    -> $csv_array=array($anchor->plaintext, $anchor->getAttribute("href")); // line X 
    -> $anchor = str_replace('~', ' ', $anchor);       // line Y 
     fputcsv($csv_out, $csv_array); 

問題是秩序的X和Y線標與箭頭。切換它們,它應該工作。

EDIT2:

$anchor = str_replace('~', ' ', $anchor); 

應該

$anchor->plaintext = str_replace('~', '', $anchor->plaintext); 
+0

當我print_r($ anchor)函數結束時,它只顯示名稱列表,它們是可點擊的(這是附加到它的url)但沒有符號。但是,當我放!正如你所建議的,它會在打印輸出中顯示!john。所以我似乎把它們打印出來,但在csv文件中它仍然顯示〜符號。 – merrill

+0

OK看看編輯答案,你應該有解決方案 – abcde123483

+0

其實我切換他們周圍早些時候,它給了我一個錯誤 致命錯誤:調用一個成員函數的getAttribute()非對象 上線X部分 – merrill

相關問題