0

この文字列として文字通り解釈される php のマクロのような文字列の定義が必要ですが、defs.php ファイルではなく、文字列が配置されている行とファイルを参照する必要があります...

define ("REDIRECT_FROM"," (".`____FILE____`." line:".`____LINE____`.")");

redirectTo("login.php",REDIRECT_FROM);

次のようになります。

redirected from abc.php line: 59

私が明確だったことを願っています。(リダイレクトredirectTo()元はもちろん関数に実装されています)

ありがとう!

4

2 に答える 2

3

これを行うことはできませんdefine()-マクロではなく定数を設定します。

考えられる解決策は、関数とバックトレースを使用することです。

function called_from(){
  $trace = debug_backtrace();
  $item = $trace[0];
  return " ({$item['file']} line:{$item['line']})";
}

次に、次のように呼び出します。

redirectTo("login.php", called_from());

このロジックを関数に組み込むこともできますredirectTo()

例:http ://codepad.org/CGUXWgAB

于 2012-04-08T19:34:18.687 に答える
0

私はそれが可能だとは思いません、そしてそれはとにかくこれをする良い方法でもありません。redirectTo()で解析を実行し、http://php.net/manual/en/function.debug-backtrace.phpを使用してコールスタックをバックトラックできます

于 2012-04-08T19:33:59.807 に答える