2013-03-12 74 views
1

我有一個關於在PHP中進行遞歸函數的問題。用'/'分隔URL後,打印URL的所有狀態有什麼更好的方法?PHP遞歸地打印URL的每個部分

PS:基本情況將基於URL的 e.g http://www.domain.com

我需要的是:

例如:

$url = 'http://www.domain.com/1/2/3/4'; 

function strip_states($url){ 
    ????? 
} 

strip_states(); 

// Result 
// print -> http://www.site.com.br/1/2/3 
// print -> http://www.site.com.br/1/2 
// print -> http://www.site.com.br/1 
// print -> http://www.site.com.br 

我完全失去了。

+0

我不明白你的意思了「國家」,以及上述案件的實際用途是什麼? – 2013-03-12 19:43:27

+0

我會在數據庫中搜索匹配的每個URL的「狀態」。 – 2013-03-12 20:41:33

回答

2
<?php 

$url = 'http://www.domain.com/1/2/3/4'; 

$parts = explode('/', $url); 

for ($i=count($parts); $i>=3; $i--) { 
    echo implode('/', $parts) . PHP_EOL; 
    array_pop($parts); 
} 
+0

謝謝!有用。 – 2013-03-12 20:42:02

0

對不起,這不是遞歸,但我希望它可以幫助你以某種方式:

$url = 'http://www.domain.com/1/2/3/4'; 
strip_url($url); 


function strip_url($url) 
{ 
$largo = strlen($url); 
$aux = ""; $cont = 0; 
echo $url." len $largo"."</br>"; 

for ($i=0; $i<$largo; $i++) 
{ 
    if($url[$i]=="/"){$cont++;} 
    $aux = $aux.$url[$i]; 

    if($cont > 2 && $url[$i]=="/") 
    echo $aux."</br>";  
} 
echo $aux."</br>"; 


} 

來自智利Saludos;)