Drupal。インストールのフォルダー引数なしで現在のURLからパスエイリアスを取得する
-
24-10-2019 - |
質問
インストールのフォルダー引数なしで、現在のページパスエイリアスを取得したいと思います。私が使用しています:
drupal_get_path_alias(request_uri())
しかし、これはインストールを返します/何でも/実際の/パス そして、私は取得したいです 実際の/パス 何があっても インストール/何でも は。
前もって感謝します :)
解決
それを見つけた。それは実際に両方の提案の組み合わせでした:
$current_path = drupal_get_path_alias($_GET["q"]);
ありがとう。
更新:以前のソリューションが常に機能するとは限りません
代替方法を使用することを提案した人が次のとおりです。
str_replace(base_path(), '', drupal_get_path_alias(request_uri(), 1));
しかし、わずかに高価なstr_replaceを使用せずに同じことをする方法はありますか?
ありがとう
他のヒント
あなたがいるノードのパス?
http://api.drupal.org/api/function/drupal_get_path_alias/6
if ($node || (arg(0) == 'node' && arg(2) != 'edit')) {
$system_path = 'node/'.arg(1);
$current_path = drupal_get_path_alias($system_path);
}
そのコードはノードページで発射され、ページエイリアスを伝えます。
詳細については、$ _getをダンプして、「Q」クエリ文字列値を確認できます。
たぶん、このようなbase_path()とstr_replaceを使用できます。
str_replace (base_path(), '', drupal_get_path_alias(request_uri()), 1);
base_pathはデータベースに保存されます。
$current_page_url = drupal_get_path_alias( implode( '/', arg() ) );
また、機能します
やってみました $_GET['q']
?
base_path()が単なる「/」ではないときに発生する問題を避けるために、私は代わりに完全なURLのためにふっくらとする傾向があります。
$url = (($_SERVER['HTTPS'])?"https://":"http://") . $_SERVER['HTTP_HOST'] . url($_GET['q']);
またはさらに簡単に:
$url = url($_GET['q'], array('absolute'=>true));
最速のソリューション。
substr(drupal_get_path_alias(request_uri(), 1), strlen(base_path()));
それを議論に渡す
$arg = explode('/', substr(drupal_get_path_alias(request_uri(), 1), strlen(base_path())));