删除第三个斜杠前的字符

时间:2014-01-17 04:56:00

标签: php regex

我只想在第三个斜杠之前删除所有字符。

示例:

C:/wamp/www/project/modules/File

becomes:

project/modules/File

我会感激帮助。谢谢。

5 个答案:

答案 0 :(得分:1)

尝试以下代码,希望这对您有帮助。

$str = "C:/wamp/www/project/modules/File";
$positions = mb_stripos_all($str,"/");
echo substr($str,$positions[2]+1);
function mb_stripos_all($haystack, $needle) {

  $s = 0;
  $i = 0;

  while(is_integer($i)) {

    $i = strpos($haystack, $needle, $s);

    if(is_integer($i)) {
      $aStrPos[] = $i;
      $s = $i + strlen($needle);
    }
  }

  if(isset($aStrPos)) {
    return $aStrPos;
  } else {
    return false;
  }
}

答案 1 :(得分:1)

我想到的一个优雅的解决方案是:

$text = "C:/wamp/www/project/modules/File";

$arr = explode("/", $text);
//shifting array three times, increase if necessary
array_shift($arr);array_shift($arr);array_shift($arr);
//implode and return
return implode("/", $arr);

简单明了。

答案 2 :(得分:0)

<?
$str = 'C:/wamp/www/project/modules/File';
if (preg_match('%.*?/.*?/.*?/(.*)%', $str, $regs)) {
    $str = $regs[1];
}
echo $str;
?>

Result: project/modules/File

答案 3 :(得分:0)

$text="C:/wamp/www/project/modules/File";
$pieces = explode("/", $text);
$i=0;
foreach ($pieces as $valor) {
$i++;
if($i>3)
    echo $valor.'/';
}

返回

  

project/modules/File/

答案 4 :(得分:0)

$text="C:/wamp/www/project/modules/File";
$pieces = explode("/", $text);

 $len=sizeof($pieces);
 for($i=3;$i<$len; $i++)
 {
    $path.=$pieces[$i]."/";
 }

$path1 = substr($path, 0, -1);
 echo $path1;

 I think this will print how long contents after file..
 try it...