3


0

PHPはフルパスの一部のみを取得します

フルパスの一部のみを減算する方法を知りたい:

現在のフォルダーの完全なパスを取得します。

$dbc_root = getcwd(); // That will return let's say "/home/USER/public_html/test2"

「/ public_html / test2」のみを選択したい

どうすればいいの? ありがとうございます。

7 Answer


4


メソッドに関連するパスを確認する必要があると思います:

pathinfo() - Returns information about a file path
dirname() - Returns directory name component of path
basename() - Returns filename component of path

これらのいずれかで解決策を見つけることができるはずです。


1


フォーマットの修正方法に依存します。 最も簡単な形式:

$dbc_root = str_replace('/home/USER', '', getcwd());

`public_html`の後にすべてを取得する必要がある場合:

preg_match('/public_html.*$/', getcwd(), $match);
$dbc_root = $match;


1


= 0) $offset++; // to adjust for the leading /
  return implode('/', array_slice(explode('/', $p), $offset, $length));
}

echo pieces('/a/b/c/d', 0, 1); // 'a'
echo pieces('/a/b/c/d', 0, 2); // 'a/b'
echo pieces('/a/b/c/d', -2); // 'c/d'
echo pieces('/a/b/c/d', -2, 1); // 'c'
?>


0


破棄したいパスの部分が何であるかがわかっている場合は、単純にstr_replaceを実行できます。

$dbc_root = str_replace('/home/USER/', '', $dbc_root);


0


`/ home / USER`を空の文字列で置き換えることができます:

$path=str_replace("/home/USER", "", getcwd());


0


    $dbc_root = getcwd(); // That will return let's say "/home/USER/public_html/test2"
    $dbc_root .= str_replace('/home/USER', '', $dbc_root); // Remember to replace USER with the correct username in your file ;-)

この後、 `$ dbc_root`は/ home / USERなしである必要があります

このために新しい変数を作成したい場合は、テストしませんでした…​ あなたが試すことができます:

   $slim_dbc_root = str_replace('/home/USER', '', $dbc_root);

これが正しい方向に役立つことを願っています


0


この「/ home / pophub / public_html /」を試してください。これはgetcwd()から削除するテキストです

$dir = getcwd();
$dir1 = str_replace('/home/pophub/public_html/', '/', $dir);
echo $dir1;