PHP Получить только часть полного пути - PullRequest
3 голосов
/ 11 марта 2010

Я хотел бы знать, как я могу вычесть только часть полного пути:

Я получаю полный путь к текущей папке:

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

Я хочу выбрать только "/ public_html / test2"

Как я могу это сделать? Спасибо!

Ответы [ 7 ]

4 голосов
/ 11 марта 2010

Я думаю, вы должны проверить методы, связанные с путем:

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

Вы сможете найти решение с помощью одного из них.

1 голос
/ 11 марта 2010
<?php
function pieces($p, $offset, $length = null)
{
  if ($offset >= 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'
?>
1 голос
/ 11 марта 2010

Зависит от того, насколько фиксирован формат. В простейшем виде:

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

Если вам нужно получить все после public_html:

preg_match('/public_html.*$/', getcwd(), $match);
$dbc_root = $match;
0 голосов
/ 07 февраля 2016

Попробуйте это "/ home / pophub / public_html /" - это текст, который вы удаляете из getcwd ()

$dir = getcwd();
$dir1 = str_replace('/home/pophub/public_html/', '/', $dir);
echo $dir1;
0 голосов
/ 27 января 2015
    $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 голосов
/ 11 марта 2010

Вы можете заменить /home/USER пустой строкой:

$path=str_replace("/home/USER", "", getcwd());
0 голосов
/ 11 марта 2010

Ну, если вы знаете, какую часть пути вы хотите отбросить, вы можете просто сделать str_replace:

$dbc_root = str_replace('/home/USER/', '', $dbc_root);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...