特定の URL をベース URL に変換するにはどうすればよいですか? つまり、"http://test.com/folder/it.html?gsa=5" がある場合、スクリプトは "http://test.com/folder/" を返す必要があります。
私は試した:
preg_match('~.*/~', $cur_url, $match);
$base=($match[0]=='http://') ? $cur_url : $match;
うまくいきません。
試すparse_url
php.net からのサンプル
<?php $url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH); ?>
戻り値
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
/path
.com 以降のすべてを保持する正規表現文字列を使用します。可能なサイト末尾を使用できるように設定するだけです。サンプル文字列でまもなく更新されます。
- 編集 -
このphp正規表現文字列は、任意のURLからベースアドレスを取得するために機能します(テスト済み)。
![a-zA-Z]+(.com/|.ca/|.gov/)!
注: この文字列は、.com、.ca、および .gov ドメインでのみ機能するように設定されていますが、| で区切る括弧内に他のドメインを追加できます。
- 編集 -
あなたの投稿を読み直して、末尾のファイルを除く URL のすべてが必要な場合に備えて、別の文字列を設計しました。
!([a-zA-Z]*+(.com/|.ca/|.gov/))+([a-zA-Z/]*[/])!
注: 末尾にファイルがない URL でこれを使用する場合、ディレクトリにはまだスラッシュが必要です。そうしないと、最後のディレクトリも削除されます。
URLから $_GET 変数を削除したい場合
?hello=somethin&something=somethingelse
以下はうまくいくかもしれません:
$fullurl = $_SERVER['REQUEST_URI'];
$urlarray = explode($fullurl, "?");
$urlnoget = $urlarray[0];
これは、URL を ? ごとにビットに分解します。ありませんか?$_GET url をクリアするため、実際のファイル/fooldr 名で使用します。
JavaScript の使用を検討したことはありますか?
もっと簡単な方法があれば申し訳ありませんが、これが私が知っていることです。