2013-03-12 56 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;)