インストールのフォルダー引数なしで現在のページ パス エイリアスを取得したいと思います。私は使用しています:
drupal_get_path_alias(request_uri())
しかし、これはインストール/何でも/実際の/パスを返します。インストールが何であれ、実際の/パスのみを取得したいと思います。
前もって感謝します :)
インストールのフォルダー引数なしで現在のページ パス エイリアスを取得したいと思います。私は使用しています:
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' クエリ文字列の値を確認してください。
$current_page_url = drupal_get_path_alias( implode( '/', arg() ) );
も動作します
おそらく、次のように base_path() と str_replace を使用できます。
str_replace (base_path(), '', drupal_get_path_alias(request_uri()), 1);
base_path はデータベースに保存されます。
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())));
試しました$_GET['q']
か?