2013-02-03 62 views
0

我寫了一個函數來從URL中剝離參數,功能看起來像這樣的preg_replace不替換值

function remove_it($c_link){ 

     $regex = array(); 
     $award = array(); 

     $regex[] = '/[\?&](?<name>sa)=(?<value>[^&=]+)/'; 
     $regex[] = '/[\?&](?<name>ei)=(?<value>[^&=]+)/'; 
     $regex[] = '/[\?&](?<name>ved)=(?<value>[^&=]+)/'; 
     $regex[] = '/[\?&](?<name>usg)=(?<value>[^&=]+)/'; 

     foreach($regex as $remove){ 

      $c_link = preg_replace($remove,'',$c_link); 

     } 

     return $c_link; 

    } 

當我使用一個testurl這樣

$test = 'http://forum.gofeminin.de/forum/dietetique/__f2955_dietetique-Diatpillen.html&sa=U&ei=8doOUa6HOsfKtAaDpICIBQ&ved=0CB0QFjAA&usg=AFQjCNEcFS48QvteNkSNcszXv5RG6VUe2g'; 

它沃金完美。現在我想在我的代碼中使用它。所以我打電話與我的數據功能,它不會影響字符串。在$測試1像

$TEST-> http://forum.gofeminin.de/forum/dietetique/__f2955_dietetique-Diatpillen.html&sa=U&ei=C9wOUZuvCoeQtQavpoHoDg&ved=0CB0QFjAA&usg=AFQjCNHkRBKRpZXZX7idJ6YmSG0AIxtOdw 
print_r-> http://forum.gofeminin.de/forum/dietetique/__f2955_dietetique-Diatpillen.html&sa=U&ei=C9wOUZuvCoeQtQavpoHoDg&ved=0CB0QFjAA&usg=AFQjCNHkRBKRpZXZX7idJ6YmSG0AIxtOdw 

爲我所用的所有的調試方法,我知道的,我真的不知道我應該開始尋找:我用的print_r看是否串看起來很奇怪,但它只是1 ...任何指針?

我做了antoher testrun,並將所有數據保存在一個數組中,稍後我想剝離1個url的參數。在這裏,testcode:

echo '<pre>'; 
    print_r($test).'</br>'; 
    echo remove_it($test[0]); 
    echo '</pre>'; 
    break; 

輸出像:

Array 
(
    [0] => http://forum.gofeminin.de/forum/dietetique/__f2955_dietetique-Diatpillen.html&sa=U&ei=LOIOUaqQGITntQbmmIHYBQ&ved=0CDUQFjAA&usg=AFQjCNGgMS-nHM2JY_PkIt7C_RT2dr9bUw 
    [1] => http://www.fitforfun.de/abnehmen/gesund-essen/diaetpillen/diaetpillen-appetitzuegler_aid_2100.html&sa=U&ei=LOIOUaqQGITntQbmmIHYBQ&ved=0CEEQFjAB&usg=AFQjCNG60KJy3wLR8DnLm9gKQEn-uR6l3w 
    [2] => http://www.stern.de/ernaehrung/uebergewicht-abnehmen/diaetpillen-check-welche-mittel-machen-duenn-das-abc-der-schlankmacher-615772.html&sa=U&ei=LOIOUaqQGITntQbmmIHYBQ&ved=0CEYQFjAC&usg=AFQjCNGLzi5UMG4g5INDkeBdMpENgY4gHg 
    [3] => http://getslim.de/diaetpillen-im-test&sa=U&ei=LOIOUaqQGITntQbmmIHYBQ&ved=0CEoQFjAD&usg=AFQjCNEcZnpSlVVxLgskK9DfhBF9AHGC2w 
    [4] => http://www.br.de/fernsehen/bayerisches-fernsehen/sendungen/gesundheit/themenuebersicht/medizin/schlankheitspillen-diaet-tabletten100.html&sa=U&ei=LOIOUaqQGITntQbmmIHYBQ&ved=0CFQQFjAE&usg=AFQjCNHujKjdfNsOkarYf6MwHCPODcISjw 
    [5] => http://www.diaetpillenvergleich.de/beste-diatpillen/&sa=U&ei=LOIOUaqQGITntQbmmIHYBQ&ved=0CFoQFjAF&usg=AFQjCNFBgbYjgutHJfp-eQztXTsKYk7rTw 
    [6] => http://www.diaetpillen-online.de/&sa=U&ei=LOIOUaqQGITntQbmmIHYBQ&ved=0CF4QFjAG&usg=AFQjCNF083onO0rkMuQjY0tEIhhdSM4Igg 
    [7] => http://diaet.erdbeerlounge.de/Diaetpillen/&sa=U&ei=LOIOUaqQGITntQbmmIHYBQ&ved=0CGIQFjAH&usg=AFQjCNFhNr-gsFxK1-vfjhnC1A5qQi1ZjQ 
    [8] => http://diaet.erdbeerlounge.de/abnehmen-forum/Diaetpillen-_t2698848s1&sa=U&ei=LOIOUaqQGITntQbmmIHYBQ&ved=0CGcQFjAI&usg=AFQjCNHhHY3zUnJtwF6-HV-DbsxaVUFxsg 
    [9] => http://www.gutefrage.net/tag/diaetpillen/1&sa=U&ei=LOIOUaqQGITntQbmmIHYBQ&ved=0CG0QFjAJ&usg=AFQjCNHPYODXZA1Sa2rs6ItnUWTOYkJj3w 
) 
http://forum.gofeminin.de/forum/dietetique/__f2955_dietetique-Diatpillen.html&sa=U&ei=LOIOUaqQGITntQbmmIHYBQ&ved=0CDUQFjAA&usg=AFQjCNGgMS-nHM2JY_PkIt7C_RT2dr9bUw 
+0

適合我。你能發佈不符合的測試代碼嗎? – BeaverusIV

+0

對我來說也適用 – UberMouse

+0

它是一個來自捲曲解析的url字符串,即print_r數據來自那裏,但正如你可以看到它是1:1相同的url。所以即時變得瘋狂,爲什麼它不工作。當我用$ test測試它時,它也與我一起工作,當我在測試中複製URL並運行它們時,它們也會被剝離。但是當我直接調用這個函數時,它不能和curl給出的數據一起工作。這是一個正常形成的字符串與網址在它...即時通訊發瘋:D – Johnny000

回答

0

我做了測試數組,它爲我工作。看起來你的代碼是好的,而其他的東西是錯的。

嘗試在雙引號中包裝函數輸入。

remove_it("$test[0]"); 
+0

如何用「從curl給定的數據」直接調用函數? – drolex

+0

我解析HTML中的鏈接,並將它們打包在函數 – Johnny000

+0

中您可以顯示該部分嗎? – drolex