Как извлечь подстроки с помощью PHP - PullRequest
0 голосов
/ 27 марта 2010

PHP вопрос новичка.

Мне нужно сохранить пути к изображениям в базе данных для администратора.

../../../../assets/images/subfolder/myimage.jpg

Однако мне нужны следующие пути к изображению для внешнего интерфейса.

assets/images/subfolder/myimage.jpg

Каков наилучший способ изменить это с помощью PHP?

Я думал о substr (), но мне интересно, есть ли лучшие способы.

Заранее спасибо.

Ответы [ 4 ]

0 голосов
/ 27 марта 2010

Я предлагаю это

$path = "../../../../assets/images/subfolder/myimage.jpg";
$root = "../../../../";

$root_len = strlen($root);

if(substr($path, 0, $root_len) == $root){
    echo substr($path, $root_len);
} else {
    //not comparable
}

Таким образом, вы имеете своего рода контроль над тем, какой каталог считать корневым для ваших изображений

0 голосов
/ 27 марта 2010

Если ../../../../ исправлено, то substr будет работать. Если нет, попробуйте что-то вроде этого:

newpath=substr(strpos(path, "assets"));
0 голосов
/ 27 марта 2010

Сначала это может показаться странным выбором, но вы можете использовать ltrim . В следующем примере все ../ будут удалены с начала $path. Точки во втором аргументе должны быть экранированы, потому что в противном случае PHP будет рассматривать их как диапазон.

$path = ltrim('../../../../assets/images/subfolder/myimage.jpg', '\\.\\./');

$path будет тогда:

assets/images/subfolder/myimage.jpg
0 голосов
/ 27 марта 2010

Вы должны сохранить свой путь к изображению в прикладной переменной и получить доступ как от администратора, так и от внешнего интерфейса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...