2012-08-16 98 views
0

我使用PHP Simple HTML DOM Parser來抓取我需要的一些值。 我現在要做的是抓住一部分URL。通過PHP抓取外部網站上的鏈接的一部分

這是源的樣子:

<a class="base-header-soldier-link" href="/bf3/soldier/someprofile/stats/123456789/"> 
    someprofile 
</a> 

我試圖檢索值「123456789」,而URL的其餘部分。

我使用這個代碼來檢索的網址:

foreach($html->find('.base-header-soldier-name a') as $e) 
{ 
    $battlelog_id = $e->href; 
} 

所以基本上我想要去除它的URL的其餘部分。

URL可以根據用戶名更改,因此「someprofile」將被替換。

你們能幫助我嗎?

+1

[什麼都有你嘗試過?](http://whathaveyoutried.com/) – DaveRandom 2012-08-16 14:57:20

+1

explode()使用/是一個開始,或者看一下preg_match() – Waygood 2012-08-16 15:09:29

+0

雖然我知道我可以很容易地檢索用戶名,但是在嘗試去除URL的其餘部分時遇到了問題。我根本沒有這方面的知識。我已經試過使用「preg_replace」和「,但是我不能設法讓它工作,我現在正在測試preg_match。 – 2012-08-16 15:14:36

回答

3

你可以做一對夫婦的方式最簡單的就是basename()

<?php 
$url = '/bf3/soldier/someprofile/stats/123456789/'; 
echo basename($url);//123456789 
?> 

還是更可靠的方法是pathinfo()

<?php 
$url = '/bf3/soldier/someprofile/stats/123456789/'; 
$url_parts = pathinfo($url); 
/* 
Array 
(
    [dirname] => /bf3/soldier/someprofile/stats 
    [basename] => 123456789 
    [filename] => 123456789 
) 
*/ 

echo $url_parts['filename']; //123456789 
?> 

甚至explode()

<?php 
$url = '/bf3/soldier/someprofile/stats/123456789/'; 
$url_parts = explode('/', rtrim($url,'/')); 

echo end($url_parts);//123456789 
?> 
+0

它完美的工作!我不知道basename,但是謝謝! – 2012-08-16 15:44:09