PHP URL ayrıştırma ve sadeleştirme

2 Cevap php

Ben web sayfalarında bulunan bağlantıları ayrıştırma, ve ben bu gibi URL'leri dönüştürmek için bir yol arıyorum:

http://www.site.com/./eng/.././disclaimer/index.htm

eşdeğer ve daha doğru için

http://www.site.com/disclaimer/index.htm

ağırlıklı olarak çoğaltmaları önlemek için.

Teşekkür ederim.

2 Cevap

böyle

function simplify($path) {
   $r = array();
   foreach(explode('/', $path) as $p) {
      if($p == '..')
        array_pop($r);
      else if($p != '.' && strlen($p))
        $r[] = $p;
   }
   $r = implode('/', $r);
   if($path[0] == '/') $r = "/$r";
   return $r;
}

ve bu bunu kullanmak nasıl

$u = parse_url($dirtyUrl);
$u['path'] = simplify($u['path']);
$clean_url = "{$u['scheme']}://{$u['host']}{$u['path']}";

S eşdeğerdir: Tam olarak ne bu iki URL düşündürüyor?

Eğer ayrıntılı bir şekilde bu soruya cevap varsa, sayfaların eşdeğer olduğunu gösterir bilmek kurallara uymak için bir regexpi veya çözümleyici kullanabilirsiniz.