あなたは、クエリ文字列を持っていない場合は、/で爆発することができます。それは、あなたのURLの前にその缶混乱を//://またはhttps:あなたは、クエリ文字列を持つことになります場合は、HTTPを使用している場合、あなたは、このような
$url = preg_replace('/?.*$/','',$url);
...として、その最初を削除する必要がありますまた、だから、
$url = preg_replace('~^https*://~','',$url);
さて、あなただけexample.com/some/path/to/somethingとしてURLを持っている...それを削除します。 $の大きさは、あなたが望むものよりも1以上になります
$a = explode('/',$url);
:あなたは上の爆発/カウントを得ることができます。だから、あなたは1減算する必要があります。
$深さ=はsizeofを($ A)-1; example.com/links.htmlだけではなく0だから、1のように出てくるような
新たな問題が...私はちょうど爆発する前に、私は、ファイル名を取り除く必要があり、ファイル自体を数えます。しかし...それがファイルかディレクトリかどうか私はどのように知っていますか?これはURLの仕様に組み込まれていません。例えば、example.com/testは、ファイルをすることができたり、それは(と、それが自動的にexample.com/test/index.htmlに行く)ディレクトリである可能性があります。
ちょうど楽しみのために、ここで一緒にPHPの
parse_url()
とその
PHP_URL_PATH
戻り値を使用して、私の安価でcheezyソリューションです
$url = preg_replace('~/[^/]+.(html|php|gig|png|mp3)$~','',$url);
'/'の前に '?'のカウント数はありますか? –