-1

特定の 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;

うまくいきません。

4

3 に答える 3

2

試す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
于 2012-08-23T19:03:14.297 に答える
0

.com 以降のすべてを保持する正規表現文字列を使用します。可能なサイト末尾を使用できるように設定するだけです。サンプル文字列でまもなく更新されます。

- 編集 -

このphp正規表現文字列は、任意のURLからベースアドレスを取得するために機能します(テスト済み)。

![a-zA-Z]+(.com/|.ca/|.gov/)!

注: この文字列は、.com、.ca、および .gov ドメインでのみ機能するように設定されていますが、| で区切る括弧内に他のドメインを追加できます。

- 編集 -

あなたの投稿を読み直して、末尾のファイルを除く URL のすべてが必要な場合に備えて、別の文字列を設計しました。

!([a-zA-Z]*+(.com/|.ca/|.gov/))+([a-zA-Z/]*[/])!

注: 末尾にファイルがない URL でこれを使用する場合、ディレクトリにはまだスラッシュが必要です。そうしないと、最後のディレクトリも削除されます。

于 2012-08-23T19:01:49.547 に答える
0

URLから $_GET 変数を削除したい場合

?hello=somethin&something=somethingelse

以下はうまくいくかもしれません:

$fullurl = $_SERVER['REQUEST_URI'];
$urlarray = explode($fullurl, "?");
$urlnoget = $urlarray[0];

これは、URL を ? ごとにビットに分解します。ありませんか?$_GET url をクリアするため、実際のファイル/fooldr 名で使用します。

JavaScript の使用を検討したことはありますか?

もっと簡単な方法があれば申し訳ありませんが、これが私が知っていることです。

于 2012-08-23T21:33:35.413 に答える